prune 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }