prune 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/CHANGELOG.ja.txt +16 -0
  2. data/CHANGELOG.txt +16 -0
  3. data/MIT-LICENSE.ja.txt +24 -0
  4. data/MIT-LICENSE.txt +20 -0
  5. data/Manifest.txt +77 -0
  6. data/PostInstall.txt +4 -0
  7. data/README.ja.rdoc +39 -0
  8. data/README.rdoc +39 -0
  9. data/Rakefile +28 -0
  10. data/demo/english_fonts.rb +66 -0
  11. data/demo/japanese_encodings_euc_jp.rb +27 -0
  12. data/demo/japanese_encodings_shift_jis.rb +27 -0
  13. data/demo/japanese_fonts.rb +54 -0
  14. data/demo/tables.rb +52 -0
  15. data/demo/text_decoration.rb +55 -0
  16. data/lib/prune.rb +90 -0
  17. data/lib/prune/constants.rb +39 -0
  18. data/lib/prune/document.rb +101 -0
  19. data/lib/prune/elements/base.rb +55 -0
  20. data/lib/prune/elements/catalog.rb +51 -0
  21. data/lib/prune/elements/font.rb +38 -0
  22. data/lib/prune/elements/font_descriptor.rb +38 -0
  23. data/lib/prune/elements/info.rb +44 -0
  24. data/lib/prune/elements/outlines.rb +19 -0
  25. data/lib/prune/elements/page.rb +115 -0
  26. data/lib/prune/elements/pages.rb +29 -0
  27. data/lib/prune/elements/procedure_sets.rb +22 -0
  28. data/lib/prune/elements/stream.rb +34 -0
  29. data/lib/prune/errors.rb +73 -0
  30. data/lib/prune/fonts/base.rb +92 -0
  31. data/lib/prune/fonts/base_en.rb +38 -0
  32. data/lib/prune/fonts/base_ja.rb +129 -0
  33. data/lib/prune/fonts/en/courier.rb +37 -0
  34. data/lib/prune/fonts/en/helvetica.rb +168 -0
  35. data/lib/prune/fonts/en/symbol.rb +60 -0
  36. data/lib/prune/fonts/en/times_roman.rb +168 -0
  37. data/lib/prune/fonts/en/zapf_dingbats.rb +60 -0
  38. data/lib/prune/fonts/ja/ms_gothic.rb +55 -0
  39. data/lib/prune/fonts/ja/ms_mincho.rb +55 -0
  40. data/lib/prune/fonts/ja/ms_p_gothic.rb +55 -0
  41. data/lib/prune/fonts/ja/ms_p_mincho.rb +55 -0
  42. data/lib/prune/fonts/ja/ms_pr_gothic.rb +55 -0
  43. data/lib/prune/fonts/ja/ms_ui_gothic.rb +55 -0
  44. data/lib/prune/functions.rb +18 -0
  45. data/lib/prune/p_objects/aliases.rb +37 -0
  46. data/lib/prune/p_objects/base.rb +45 -0
  47. data/lib/prune/p_objects/p_array.rb +62 -0
  48. data/lib/prune/p_objects/p_dictionary.rb +83 -0
  49. data/lib/prune/p_objects/p_hexadecimal_string.rb +27 -0
  50. data/lib/prune/p_objects/p_literal_string.rb +25 -0
  51. data/lib/prune/p_objects/p_name.rb +45 -0
  52. data/lib/prune/p_objects/p_stream.rb +29 -0
  53. data/lib/prune/parsers/base.rb +13 -0
  54. data/lib/prune/parsers/document/page/table/tr_parser.rb +77 -0
  55. data/lib/prune/parsers/document/page/table_parser.rb +32 -0
  56. data/lib/prune/parsers/document/page_parser.rb +91 -0
  57. data/lib/prune/parsers/document/property_parser.rb +45 -0
  58. data/lib/prune/parsers/document_parser.rb +26 -0
  59. data/lib/prune/shapes/base.rb +52 -0
  60. data/lib/prune/shapes/line.rb +55 -0
  61. data/lib/prune/shapes/rectangle.rb +64 -0
  62. data/lib/prune/shapes/text_box.rb +223 -0
  63. data/prune.gemspec +37 -0
  64. data/script/console +10 -0
  65. data/script/console.cmd +1 -0
  66. data/script/destroy +14 -0
  67. data/script/destroy.cmd +1 -0
  68. data/script/generate +14 -0
  69. data/script/generate.cmd +1 -0
  70. data/spec/prune/p_objects/p_array_spec.rb +46 -0
  71. data/spec/prune/p_objects/p_dictionary_spec.rb +61 -0
  72. data/spec/prune/p_objects/p_stream_spec.rb +29 -0
  73. data/spec/prune_spec.rb +38 -0
  74. data/spec/spec.opts +1 -0
  75. data/spec/spec_helper.rb +11 -0
  76. data/tasks/prune.rake +38 -0
  77. data/tasks/rspec.rake +21 -0
  78. metadata +181 -0
@@ -0,0 +1,16 @@
1
+ === 0.0.4
2
+ * バグフィックス
3
+ * テーブルのパラメータの修正
4
+
5
+ === 0.0.3
6
+ * 新機能
7
+ * ページにmarginの概念を導入
8
+
9
+ === 0.0.2
10
+ * バグフィックス
11
+ * rdoc生成時に止まる現象を修正
12
+
13
+ === 0.0.1
14
+ * 新機能
15
+ * 最初のリリース
16
+
@@ -0,0 +1,16 @@
1
+ === 0.0.4
2
+ * Bug fix
3
+ * Fixed table parameters.
4
+
5
+ === 0.0.3
6
+ * New features
7
+ * Added :margin to page options.
8
+
9
+ === 0.0.2
10
+ * Bug fix
11
+ * Fixed bug at rdoc making.
12
+
13
+ === 0.0.1
14
+ * New features
15
+ * Initial release.
16
+
@@ -0,0 +1,24 @@
1
+ Copyright (c) 2009- 友尻祐介
2
+
3
+ 以下に定める条件に従い、本ソフトウェアおよび関連文書のファイル
4
+ (以下「ソフトウェア」)の複製を取得するすべての人に対し、
5
+ ソフトウェアを無制限に扱うことを無償で許可します。
6
+ これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、
7
+ サブライセンス、および/または販売する権利、およびソフトウェアを
8
+ 提供する相手に同じことを許可する権利も無制限に含まれます。
9
+
10
+ 上記の著作権表示および本許諾表示を、ソフトウェアのすべての複製
11
+ または重要な部分に記載するものとします。
12
+
13
+ ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、
14
+ 何らの保証もなく提供されます。ここでいう保証とは、商品性、
15
+ 特定の目的への適合性、および権利非侵害についての保証も含みますが、
16
+ それに限定されるものではありません。 作者または著作権者は、契約行為、
17
+ 不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、
18
+ あるいはソフトウェアの使用またはその他の扱いによって生じる
19
+ 一切の請求、損害、その他の義務について何らの責任も負わないものとします。
20
+
21
+ ※Open Source Group Japan(http://opensource.jp/)により頒布されている
22
+ MITライセンスの日本語訳に準拠しています。
23
+ 本文書は参考のために添付したもので、法的に有効なのは英語のライセンス
24
+ 文書であることに留意してください。
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009- Yusuke Tomojiri
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,77 @@
1
+ CHANGELOG.ja.txt
2
+ CHANGELOG.txt
3
+ MIT-LICENSE.ja.txt
4
+ MIT-LICENSE.txt
5
+ Manifest.txt
6
+ PostInstall.txt
7
+ README.ja.rdoc
8
+ README.rdoc
9
+ Rakefile
10
+ demo/english_fonts.rb
11
+ demo/japanese_encodings_euc_jp.rb
12
+ demo/japanese_encodings_shift_jis.rb
13
+ demo/japanese_fonts.rb
14
+ demo/tables.rb
15
+ demo/text_decoration.rb
16
+ lib/prune.rb
17
+ lib/prune/constants.rb
18
+ lib/prune/document.rb
19
+ lib/prune/elements/base.rb
20
+ lib/prune/elements/catalog.rb
21
+ lib/prune/elements/font.rb
22
+ lib/prune/elements/font_descriptor.rb
23
+ lib/prune/elements/info.rb
24
+ lib/prune/elements/outlines.rb
25
+ lib/prune/elements/page.rb
26
+ lib/prune/elements/pages.rb
27
+ lib/prune/elements/procedure_sets.rb
28
+ lib/prune/elements/stream.rb
29
+ lib/prune/errors.rb
30
+ lib/prune/fonts/base.rb
31
+ lib/prune/fonts/base_en.rb
32
+ lib/prune/fonts/base_ja.rb
33
+ lib/prune/fonts/en/courier.rb
34
+ lib/prune/fonts/en/helvetica.rb
35
+ lib/prune/fonts/en/symbol.rb
36
+ lib/prune/fonts/en/times_roman.rb
37
+ lib/prune/fonts/en/zapf_dingbats.rb
38
+ lib/prune/fonts/ja/ms_gothic.rb
39
+ lib/prune/fonts/ja/ms_mincho.rb
40
+ lib/prune/fonts/ja/ms_p_gothic.rb
41
+ lib/prune/fonts/ja/ms_p_mincho.rb
42
+ lib/prune/fonts/ja/ms_pr_gothic.rb
43
+ lib/prune/fonts/ja/ms_ui_gothic.rb
44
+ lib/prune/functions.rb
45
+ lib/prune/p_objects/aliases.rb
46
+ lib/prune/p_objects/base.rb
47
+ lib/prune/p_objects/p_array.rb
48
+ lib/prune/p_objects/p_dictionary.rb
49
+ lib/prune/p_objects/p_hexadecimal_string.rb
50
+ lib/prune/p_objects/p_literal_string.rb
51
+ lib/prune/p_objects/p_name.rb
52
+ lib/prune/p_objects/p_stream.rb
53
+ lib/prune/parsers/base.rb
54
+ lib/prune/parsers/document/page/table/tr_parser.rb
55
+ lib/prune/parsers/document/page/table_parser.rb
56
+ lib/prune/parsers/document/page_parser.rb
57
+ lib/prune/parsers/document/property_parser.rb
58
+ lib/prune/parsers/document_parser.rb
59
+ lib/prune/shapes/base.rb
60
+ lib/prune/shapes/line.rb
61
+ lib/prune/shapes/rectangle.rb
62
+ lib/prune/shapes/text_box.rb
63
+ prune.gemspec
64
+ script/console
65
+ script/console.cmd
66
+ script/destroy
67
+ script/destroy.cmd
68
+ script/generate
69
+ script/generate.cmd
70
+ spec/prune/p_objects/p_array_spec.rb
71
+ spec/prune/p_objects/p_dictionary_spec.rb
72
+ spec/prune/p_objects/p_stream_spec.rb
73
+ spec/prune_spec.rb
74
+ spec/spec.opts
75
+ spec/spec_helper.rb
76
+ tasks/prune.rake
77
+ tasks/rspec.rake
@@ -0,0 +1,4 @@
1
+
2
+ Some examples are included in "demo" directory.
3
+ For more information on prune, see http://prune.rubyforge.org
4
+
@@ -0,0 +1,39 @@
1
+ = Prune (プルーン)
2
+
3
+ * http://wiki.github.com/ytsheep0808/prune
4
+
5
+ == DESCRIPTION:
6
+
7
+ Prune(プルーン)はPDF文書をRubyで作成するためのライブラリです。
8
+
9
+ == FEATURES:
10
+
11
+ * 日本語をフルサポートしています。
12
+ * 文書と表組みの処理に特化しています。
13
+
14
+ == SYNOPSIS:
15
+
16
+ require "prune"
17
+
18
+ Prune.pdf("synopsis_jp.pdf"){
19
+ property{
20
+ title "Synopsis"
21
+ subject "Demonstration document for Prune."
22
+ author "Prune"
23
+ language "ja-JP"
24
+ }
25
+
26
+ page(:A4W, :font => {:name => :ms_gothic, :size => 30}){
27
+ div "サンプルです。"
28
+ div "他の使い方の例はdemoディレクトリを見てください。"
29
+ }
30
+ }
31
+
32
+ == REQUIREMENTS:
33
+
34
+ * ruby 1.8
35
+
36
+ == INSTALL:
37
+
38
+ * sudo gem install prune
39
+
@@ -0,0 +1,39 @@
1
+ = Prune
2
+
3
+ * http://wiki.github.com/ytsheep0808/prune
4
+
5
+ == DESCRIPTION:
6
+
7
+ Prune is a library to build pdf documents in Ruby.
8
+
9
+ == FEATURES:
10
+
11
+ * Supports full japanese pdf.
12
+ * Specialized for texts and tables.
13
+
14
+ == SYNOPSIS:
15
+
16
+ require "prune"
17
+
18
+ Prune.pdf("synopsys.pdf"){
19
+ property{
20
+ title "Synopsis"
21
+ subject "Demonstration document for Prune."
22
+ author "Prune"
23
+ language "en-US"
24
+ }
25
+
26
+ page(:A4W, :font => {:name => :helvetica, :size => 30}){
27
+ div "Sample text."
28
+ div "Please see demo directory for more examples."
29
+ }
30
+ }
31
+
32
+ == REQUIREMENTS:
33
+
34
+ * ruby 1.8
35
+
36
+ == INSTALL:
37
+
38
+ * sudo gem install prune
39
+
@@ -0,0 +1,28 @@
1
+ # -*- coding:utf-8 -*-
2
+ require 'rubygems'
3
+ gem 'hoe', '>= 2.1.0'
4
+ require 'hoe'
5
+ require 'fileutils'
6
+ require './lib/prune'
7
+
8
+ Hoe.plugin :newgem
9
+ # Hoe.plugin :website
10
+ # Hoe.plugin :cucumberfeatures
11
+
12
+ # Generate all the Rake tasks
13
+ # Run 'rake -T' to see list of generated tasks (from gem root directory)
14
+ $hoe = Hoe.spec 'prune' do
15
+ self.developer 'tomojiri', 'ytsheep0808@gmail.com'
16
+ self.post_install_message = 'PostInstall.txt'
17
+ self.rubyforge_name = self.name # TODO this is default value
18
+ # self.extra_deps = [['activesupport','>= 2.0.2']]
19
+
20
+ end
21
+
22
+ require 'newgem/tasks'
23
+ Dir['tasks/**/*.rake'].each { |t| load t }
24
+
25
+ # TODO - want other tests/tasks run by default? Add them to the list
26
+ # remove_task :default
27
+ # task :default => [:spec, :features]
28
+
@@ -0,0 +1,66 @@
1
+ # -*- coding:utf-8 -*-
2
+ require "prune"
3
+
4
+ Prune.pdf("english_fonts.pdf"){
5
+ property{
6
+ title "English fonts"
7
+ subject "Demonstration document for Prune."
8
+ author "Prune"
9
+ language "en-US"
10
+ }
11
+
12
+ alphabets = "abcdefghijklmnopqrstuvwxyz"
13
+ numbers = "0123456789"
14
+ sample = alphabets + " " + numbers + "\n" + alphabets.upcase
15
+
16
+ page(:A4W, :font => {:name => :helvetica, :size => 30}){
17
+ div "* Courier"
18
+ div sample, :font => {:name => :courier}
19
+ br
20
+ div "* Courier Bold"
21
+ div sample, :font => {:name => :courier, :bold => true}
22
+ br
23
+ div "* Courier Italic"
24
+ div sample, :font => {:name => :courier, :italic => true}
25
+ br
26
+ div "* Courier Bold Italic"
27
+ div sample, :font => {:name => :courier, :bold => true, :italic => true}
28
+ }
29
+
30
+ page(:A4W, :font => {:name => :helvetica, :size => 30}){
31
+ div "* Helvetica"
32
+ div sample
33
+ br
34
+ div "* Helvetica Bold"
35
+ div sample, :font => {:bold => true}
36
+ br
37
+ div "* Helvetica Italic"
38
+ div sample, :font => {:italic => true}
39
+ br
40
+ div "* Helvetica Italic"
41
+ div sample, :font => {:bold => true, :italic => true}
42
+ }
43
+
44
+ page(:A4W, :font => {:name => :helvetica, :size => 30}){
45
+ div "* Times Roman"
46
+ div sample, :font => {:name => :times_roman}
47
+ br
48
+ div "* Times Roman Bold"
49
+ div sample, :font => {:name => :times_roman, :bold => true}
50
+ br
51
+ div "* Times Roman Italic"
52
+ div sample, :font => {:name => :times_roman, :italic => true}
53
+ br
54
+ div "* Times Roman Bold Italic"
55
+ div sample,
56
+ :font => {:name => :times_roman, :bold => true, :italic => true}
57
+ }
58
+
59
+ page(:A4W, :font => {:name => :helvetica, :size => 30}){
60
+ div "* Symbol"
61
+ div sample, :font => {:name => :symbol}
62
+ br
63
+ div "* Zapf Dingbats"
64
+ div sample, :font => {:name => :zapf_dingbats}
65
+ }
66
+ }
@@ -0,0 +1,27 @@
1
+ # -*- coding:euc-jp -*-
2
+ require "prune"
3
+
4
+ Prune.pdf("japanese_encodings_euc_jp.pdf"){
5
+ property{
6
+ title "Japanese encodings EUC-JP"
7
+ subject "Demonstration document for Prune."
8
+ author "Prune"
9
+ language "ja-JP"
10
+ }
11
+
12
+ hiragana = "�����������������������������������ĤƤȤʤˤ̤ͤ�\n"\
13
+ "�ϤҤդؤۤޤߤ���������������"
14
+ katakana = "�����������������������������������ĥƥȥʥ˥̥ͥ�\n"\
15
+ "�ϥҥեإۥޥߥ���������������"
16
+ alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
17
+ numbers = "�����󻰻͸�ϻ��Ȭ�彽ɴ��������"
18
+ sentence = "Prune�����ܸ�����������ϤǤ���PDF�饤�֥��Ǥ���"
19
+ sample = [
20
+ hiragana, katakana, alphabets, numbers, sentence
21
+ ].join("\n") + "\n"
22
+
23
+ page(:A4W, :font => {:name => :ms_gothic, :bold => true, :size => 20}){
24
+ div "EUC�Ǥ����ܸ����"
25
+ div sample, :font => {:bold => false}
26
+ }
27
+ }
@@ -0,0 +1,27 @@
1
+ # -*- coding:shift_jis -*-
2
+ require "prune"
3
+
4
+ Prune.pdf("japanese_encodings_shift_jis.pdf"){
5
+ property{
6
+ title "Japanese encodings Shift JIS"
7
+ subject "Demonstration document for Prune."
8
+ author "Prune"
9
+ language "ja-JP"
10
+ }
11
+
12
+ hiragana = "�����������������������������������‚ĂƂȂɂʂ˂�\n"\
13
+ "�͂Ђӂւق܂݂ނ߂��������������"
14
+ katakana = "�A�C�E�G�I�J�L�N�P�R�T�V�X�Z�\�^�`�c�e�g�i�j�k�l�m\n"\
15
+ "�n�q�t�w�z�}�~����������������������������"
16
+ alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
17
+ numbers = "����O�l�ܘZ������\�S�疜����"
18
+ sentence = "Prune�͓��{��𐳂����o�͂ł���PDF���C�u�����ł��B"
19
+ sample = [
20
+ hiragana, katakana, alphabets, numbers, sentence
21
+ ].join("\n") + "\n"
22
+
23
+ page(:A4W, :font => {:name => :ms_gothic, :bold => true, :size => 20}){
24
+ div "Shift-JIS�ł̓��{��o��"
25
+ div sample, :font => {:bold => false}
26
+ }
27
+ }
@@ -0,0 +1,54 @@
1
+ # -*- coding:utf-8 -*-
2
+ require "prune"
3
+
4
+ Prune.pdf("japanese_fonts.pdf"){
5
+ property{
6
+ title "Japanese fonts"
7
+ subject "Demonstration document for Prune."
8
+ author "Prune"
9
+ language "ja-JP"
10
+ }
11
+
12
+ hiragana = "あいうえおかきくけこさしすせそたちつてとなにぬねの\n"\
13
+ "はひふへほまみむめもやゆよらりるれろわをん"
14
+ katakana = "アイウエオカキクケコサシスセソタチツテトナニヌネノ\n"\
15
+ "ハヒフヘホマミムメモヤユヨラリルレロワヲン"
16
+ alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
17
+ numbers = "零一二三四五六七八九十百千万億兆"
18
+ sentence = "Pruneは日本語を正しく出力できるPDFライブラリです。"
19
+ sample = [
20
+ hiragana, katakana, alphabets, numbers, sentence
21
+ ].join("\n") + "\n"
22
+
23
+ page(:A4W, :font => {:name => :ms_gothic, :bold => true, :size => 25}){
24
+ div "MSゴシック"
25
+ div sample, :font => {:bold => false}
26
+ br
27
+ div "MSゴシック+太字"
28
+ div sample
29
+ }
30
+
31
+ page(:A4W, :font => {:name => :ms_gothic, :bold => true, :size => 25}){
32
+ div "MSゴシック+斜体"
33
+ div sample, :font => {:bold => false, :italic => true}
34
+ br
35
+ div "MSゴシック+太字+斜体"
36
+ div sample, :font => {:italic => true}
37
+ }
38
+
39
+ page(:A4W, :font => {:name => :ms_gothic, :bold => true, :size => 25}){
40
+ div "MS明朝"
41
+ div sample, :font => {:name => :ms_mincho, :bold => false}
42
+ br
43
+ div "MS明朝+太字"
44
+ div sample, :font => {:name => :ms_mincho}
45
+ }
46
+
47
+ page(:A4W, :font => {:name => :ms_gothic, :bold => true, :size => 25}){
48
+ div "MS明朝+斜体"
49
+ div sample, :font => {:name => :ms_mincho, :bold => false, :italic => true}
50
+ br
51
+ div "MS明朝+太字+斜体"
52
+ div sample, :font => {:name => :ms_mincho, :italic => true}
53
+ }
54
+ }