hpdf 2.0.8-mswin32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. data/History +57 -0
  2. data/License +25 -0
  3. data/README +136 -0
  4. data/docs/annotation_handling.html +503 -0
  5. data/docs/api.css +115 -0
  6. data/docs/api_reference.html +112 -0
  7. data/docs/bindings.html +242 -0
  8. data/docs/compile_your_program.html +365 -0
  9. data/docs/default.css +115 -0
  10. data/docs/destination_handling.html +620 -0
  11. data/docs/document_handling.html +4751 -0
  12. data/docs/documentation.html +110 -0
  13. data/docs/encoder_handling.html +428 -0
  14. data/docs/error_handling.html +1609 -0
  15. data/docs/examples.html +702 -0
  16. data/docs/ext_gstate.html +407 -0
  17. data/docs/font_handling.html +669 -0
  18. data/docs/fonts.html +978 -0
  19. data/docs/graphics.html +1210 -0
  20. data/docs/handles.html +204 -0
  21. data/docs/how_to_use.html +371 -0
  22. data/docs/image/Thumbs.db +0 -0
  23. data/docs/image/character_map.png +0 -0
  24. data/docs/image/encoding_list.png +0 -0
  25. data/docs/image/extgtate.png +0 -0
  26. data/docs/image/figure1.png +0 -0
  27. data/docs/image/figure10.png +0 -0
  28. data/docs/image/figure11.png +0 -0
  29. data/docs/image/figure12.png +0 -0
  30. data/docs/image/figure13.png +0 -0
  31. data/docs/image/figure14.png +0 -0
  32. data/docs/image/figure15.png +0 -0
  33. data/docs/image/figure16.png +0 -0
  34. data/docs/image/figure17.png +0 -0
  35. data/docs/image/figure18.png +0 -0
  36. data/docs/image/figure19.png +0 -0
  37. data/docs/image/figure2.png +0 -0
  38. data/docs/image/figure20.png +0 -0
  39. data/docs/image/figure21.png +0 -0
  40. data/docs/image/figure22.png +0 -0
  41. data/docs/image/figure23.png +0 -0
  42. data/docs/image/figure24.png +0 -0
  43. data/docs/image/figure25.png +0 -0
  44. data/docs/image/figure26.png +0 -0
  45. data/docs/image/figure27.png +0 -0
  46. data/docs/image/figure28.png +0 -0
  47. data/docs/image/figure3.png +0 -0
  48. data/docs/image/figure4.png +0 -0
  49. data/docs/image/figure5.png +0 -0
  50. data/docs/image/figure6.png +0 -0
  51. data/docs/image/figure7.png +0 -0
  52. data/docs/image/figure8.png +0 -0
  53. data/docs/image/figure9.png +0 -0
  54. data/docs/image/font_demo.png +0 -0
  55. data/docs/image/harulogo.png +0 -0
  56. data/docs/image/image_demo.png +0 -0
  57. data/docs/image/jpfont_demo.png +0 -0
  58. data/docs/image/line_demo.png +0 -0
  59. data/docs/image/png_demo.png +0 -0
  60. data/docs/image/text_annot.png +0 -0
  61. data/docs/image/text_demo.png +0 -0
  62. data/docs/image/text_demo2.png +0 -0
  63. data/docs/image/tt_font.png +0 -0
  64. data/docs/image_handling.html +505 -0
  65. data/docs/index.html +305 -0
  66. data/docs/install.html +243 -0
  67. data/docs/outline_handling.html +229 -0
  68. data/docs/page_handling.html +2647 -0
  69. data/docs/page_operator.html +2640 -0
  70. data/docs/useful_links.html +203 -0
  71. data/examples/arc_demo.rb +82 -0
  72. data/examples/demo.rb +91 -0
  73. data/examples/encryption.rb +41 -0
  74. data/examples/ext_gstater_demo.rb +171 -0
  75. data/examples/font_demo.rb +67 -0
  76. data/examples/jpfont_demo.rb +122 -0
  77. data/examples/line_demo.rb +301 -0
  78. data/examples/slide_show_demo.rb +139 -0
  79. data/examples/text_demo2.rb +189 -0
  80. data/examples/ttfont_demo.rb +106 -0
  81. data/lib/hpdf.so +0 -0
  82. data/tests/arc_demo.rb +82 -0
  83. data/tests/demo.rb +91 -0
  84. data/tests/encryption.rb +41 -0
  85. data/tests/ext_gstater_demo.rb +171 -0
  86. data/tests/font_demo.rb +67 -0
  87. data/tests/line_demo.rb +301 -0
  88. data/tests/slide_show_demo.rb +139 -0
  89. data/tests/test_all_examples.rb +31 -0
  90. data/tests/text_demo2.rb +189 -0
  91. metadata +137 -0
@@ -0,0 +1,139 @@
1
+ #
2
+ # << Haru Free PDF Library 2.0.6 >> -- slideshow_demo.rb
3
+ #
4
+ # http://libharu.sourceforge.net/
5
+ #
6
+ # Copyright (c) 1999-2006 Takeshi Kanno
7
+ #
8
+ # Permission to use, copy, modify, distribute and sell this software
9
+ # and its documentation for any purpose is hereby granted without fee,
10
+ # provided that the above copyright notice appear in all copies and
11
+ # that both that copyright notice and this permission notice appear
12
+ # in supporting documentation.
13
+ # It is provided "as is" without express or implied warranty.
14
+ #
15
+
16
+ require "hpdf"
17
+
18
+ RAND_MAX = 255
19
+
20
+ def print_page(page, caption, font, style, prev, next_p)
21
+
22
+ r = rand
23
+ g = rand
24
+ b = rand
25
+
26
+ page.set_width(800)
27
+ page.set_height(600)
28
+
29
+ page.set_rgb_fill(r, g, b)
30
+ page.rectangle(0, 0, 800, 600)
31
+ page.fill()
32
+
33
+ page.set_rgb_fill(1 - r, 1 - b, 1 - b)
34
+ page.set_font_and_size(font, 30)
35
+
36
+ page.begin_text()
37
+ page.set_text_matrix(0.8, 0.0, 0.0, 1.0, 0.0, 0.0);
38
+ page.text_out(50, 530, caption)
39
+
40
+ page.set_text_matrix(1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
41
+ page.set_font_and_size(font, 20)
42
+ page.text_out(55, 300, "Type \"Ctrl+L\" in order to return from full screen mode.")
43
+ page.end_text()
44
+
45
+ page.set_slide_show(style, 5, 1)
46
+ page.set_font_and_size(font, 20)
47
+
48
+ if (next_p != nil)
49
+ page.begin_text()
50
+ page.text_out(680, 50, "Next=>")
51
+ page.end_text()
52
+
53
+ dst = next_p.create_destination()
54
+ dst.set_fit()
55
+ annot = page.create_link_annot(680, 50, 680, 70, dst)
56
+ annot.set_border_style(0, 0, 0)
57
+ annot.set_highlight_mode(HPDFDoc::HPDF_ANNOT_INVERT_BOX)
58
+ end
59
+
60
+ if (prev != nil)
61
+ page.begin_text()
62
+ page.text_out(50, 50, "<=Prev")
63
+ page.end_text()
64
+
65
+ dst = prev.create_destination()
66
+ dst.set_fit()
67
+ annot = page.create_link_annot(50, 50, 110, 70, dst)
68
+ annot.set_border_style(0, 0, 0)
69
+ annot.set_highlight_mode(HPDFDoc::HPDF_ANNOT_INVERT_BOX)
70
+ end
71
+
72
+ end
73
+
74
+
75
+ pdf = HPDFDoc.new
76
+
77
+ font = pdf.get_font("Courier", nil)
78
+ page_0 = pdf.add_page()
79
+ page_1 = pdf.add_page()
80
+ page_2 = pdf.add_page()
81
+ page_3 = pdf.add_page()
82
+ page_4 = pdf.add_page()
83
+ page_5 = pdf.add_page()
84
+ page_6 = pdf.add_page()
85
+ page_7 = pdf.add_page()
86
+ page_8 = pdf.add_page()
87
+ page_9 = pdf.add_page()
88
+ page_10 = pdf.add_page()
89
+ page_11 = pdf.add_page()
90
+ page_12 = pdf.add_page()
91
+ page_13 = pdf.add_page()
92
+ page_14 = pdf.add_page()
93
+ page_15 = pdf.add_page()
94
+ page_16 = pdf.add_page()
95
+
96
+ print_page(page_0, "HPDFDoc::HPDF_TS_WIPE_RIGHT", font,
97
+ HPDFDoc::HPDF_TS_WIPE_RIGHT, nil, page_1);
98
+ print_page(page_1, "HPDFDoc::HPDF_TS_WIPE_UP", font,
99
+ HPDFDoc::HPDF_TS_WIPE_UP, page_0, page_2);
100
+ print_page(page_2, "HPDFDoc::HPDF_TS_WIPE_LEFT", font,
101
+ HPDFDoc::HPDF_TS_WIPE_LEFT, page_1, page_3);
102
+ print_page(page_3, "HPDFDoc::HPDF_TS_WIPE_DOWN", font,
103
+ HPDFDoc::HPDF_TS_WIPE_DOWN, page_2, page_4);
104
+ print_page(page_4, "HPDFDoc::HPDF_TS_BARN_DOORS_HORIZONTAL_OUT", font,
105
+ HPDFDoc::HPDF_TS_BARN_DOORS_HORIZONTAL_OUT, page_3, page_5);
106
+ print_page(page_5, "HPDFDoc::HPDF_TS_BARN_DOORS_HORIZONTAL_IN", font,
107
+ HPDFDoc::HPDF_TS_BARN_DOORS_HORIZONTAL_IN, page_4, page_6);
108
+ print_page(page_6, "HPDFDoc::HPDF_TS_BARN_DOORS_VERTICAL_OUT", font,
109
+ HPDFDoc::HPDF_TS_BARN_DOORS_VERTICAL_OUT, page_5, page_7);
110
+ print_page(page_7, "HPDFDoc::HPDF_TS_BARN_DOORS_VERTICAL_IN", font,
111
+ HPDFDoc::HPDF_TS_BARN_DOORS_VERTICAL_IN, page_6, page_8);
112
+ print_page(page_8, "HPDFDoc::HPDF_TS_BOX_OUT", font,
113
+ HPDFDoc::HPDF_TS_BOX_OUT, page_7, page_9);
114
+ print_page(page_9, "HPDFDoc::HPDF_TS_BOX_IN", font,
115
+ HPDFDoc::HPDF_TS_BOX_IN, page_8, page_10);
116
+ print_page(page_10, "HPDFDoc::HPDF_TS_BLINDS_HORIZONTAL", font,
117
+ HPDFDoc::HPDF_TS_BLINDS_HORIZONTAL, page_9, page_11);
118
+ print_page(page_11, "HPDFDoc::HPDF_TS_BLINDS_VERTICAL", font,
119
+ HPDFDoc::HPDF_TS_BLINDS_VERTICAL, page_10, page_12);
120
+ print_page(page_12, "HPDFDoc::HPDF_TS_DISSOLVE", font,
121
+ HPDFDoc::HPDF_TS_DISSOLVE, page_11, page_13);
122
+ print_page(page_13, "HPDFDoc::HPDF_TS_GLITTER_RIGHT", font,
123
+ HPDFDoc::HPDF_TS_GLITTER_RIGHT, page_12, page_14);
124
+ print_page(page_14, "HPDFDoc::HPDF_TS_GLITTER_DOWN", font,
125
+ HPDFDoc::HPDF_TS_GLITTER_DOWN, page_13, page_15);
126
+ print_page(page_15, "HPDFDoc::HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT", font,
127
+ HPDFDoc::HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT, page_14, page_16);
128
+ print_page(page_16, "HPDFDoc::HPDF_TS_REPLACE", font,
129
+ HPDFDoc::HPDF_TS_REPLACE, page_15, nil);
130
+
131
+ pdf.set_page_mode(HPDFDoc::HPDF_PAGE_MODE_FULL_SCREEN)
132
+
133
+ if $demo_output_filename
134
+ file_name= $demo_output_filename
135
+ else
136
+ file_name= $0 + ".pdf"
137
+ end
138
+
139
+ pdf.save_to_file(file_name)
@@ -0,0 +1,189 @@
1
+ #
2
+ # << Haru Free PDF Library 2.0.0 >> -- text_demo2.rb
3
+ #
4
+ # Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
5
+ #
6
+ # Permission to use, copy, modify, distribute and sell this software
7
+ # and its documentation for any purpose is hereby granted without fee,
8
+ # provided that the above copyright notice appear in all copies and
9
+ # that both that copyright notice and this permission notice appear
10
+ # in supporting documentation.
11
+ # It is provided "as is" without express or implied warranty.
12
+ #
13
+
14
+ require "hpdf"
15
+
16
+ samp_text = "The quick brown fox jumps over the lazy dog. "
17
+
18
+ pdf = HPDFDoc.new
19
+
20
+ page = pdf.add_page
21
+ page.set_size(HPDFDoc::HPDF_PAGE_SIZE_A5, HPDFDoc::HPDF_PAGE_PORTRAIT)
22
+ height = page.get_height
23
+
24
+ font = pdf.get_font("Helvetica", nil)
25
+ page.set_text_leading(20)
26
+
27
+ # HPDF_TALIGN_LEFT
28
+ left = 25
29
+ top = 545
30
+ right = 200
31
+ bottom = top - 40
32
+
33
+ page.rectangle(left, bottom, right - left, top - bottom)
34
+ page.stroke
35
+
36
+ page.begin_text
37
+ page.set_font_and_size(font, 10)
38
+ page.text_out(left, top + 3, "HPDF_TALIGN_LEFT")
39
+
40
+ page.set_font_and_size(font, 13)
41
+ page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_LEFT)
42
+ page.end_text
43
+
44
+ # HPDF_TALIGN_RIGHT
45
+ left = 220
46
+ right = 395
47
+
48
+ page.rectangle(left, bottom, right - left, top - bottom)
49
+ page.stroke
50
+
51
+ page.begin_text
52
+ page.set_font_and_size(font, 10)
53
+ page.text_out(left, top + 3, "HPDF_TALIGN_RIGHT")
54
+
55
+ page.set_font_and_size(font, 13)
56
+ page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_RIGHT)
57
+ page.end_text
58
+
59
+ # HPDF_TALIGN_CENTER
60
+ left = 25
61
+ top = 475
62
+ right = 200
63
+ bottom = top - 40
64
+
65
+ page.rectangle(left, bottom, right - left, top - bottom)
66
+ page.stroke
67
+
68
+ page.begin_text
69
+ page.set_font_and_size(font, 10)
70
+ page.text_out(left, top + 3, "HPDF_TALIGN_CENTER")
71
+
72
+ page.set_font_and_size(font, 13)
73
+ page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_CENTER)
74
+ page.end_text
75
+
76
+ # HPDF_TALIGN_JUSTIFY
77
+ left = 220
78
+ right = 395
79
+
80
+ page.rectangle(left, bottom, right - left, top - bottom)
81
+ page.stroke
82
+
83
+ page.begin_text
84
+ page.set_font_and_size(font, 10)
85
+ page.text_out(left, top + 3, "HPDF_TALIGN_JUSTIFY")
86
+
87
+ page.set_font_and_size(font, 13)
88
+ page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_JUSTIFY)
89
+ page.end_text
90
+
91
+
92
+ # Skewed coordinate system
93
+
94
+ angle1 = 5.0
95
+ angle2 = 10.0
96
+ rad1 = angle1 / 180 * 3.141592
97
+ rad2 = angle2 / 180 * 3.141592
98
+
99
+ page.gsave
100
+
101
+ page.concat(1, Math.tan(rad1), Math.tan(rad2), 1, 25, 350)
102
+ left = 0
103
+ top = 40
104
+ right = 175
105
+ bottom = 0
106
+
107
+ page.rectangle(left, bottom, right - left,
108
+ top - bottom)
109
+ page.stroke
110
+
111
+ page.begin_text
112
+
113
+ page.set_font_and_size(font, 10)
114
+ page.text_out(left, top + 3, "Skewed coordinate system")
115
+
116
+ page.set_font_and_size(font, 13)
117
+ page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_LEFT)
118
+
119
+ page.end_text
120
+
121
+ page.grestore
122
+
123
+
124
+ # Rotated coordinate system
125
+ page.gsave
126
+
127
+ angle1 = 5.0
128
+ rad1 = angle1 / 180 * 3.141592
129
+
130
+ page.concat(Math.cos(rad1), Math.sin(rad1), -Math.sin(rad1), Math.cos(rad1), 220, 350)
131
+ left = 0
132
+ top = 40
133
+ right = 175
134
+ bottom = 0
135
+
136
+ page.rectangle(left, bottom, right - left,
137
+ top - bottom)
138
+ page.stroke
139
+
140
+ page.begin_text
141
+
142
+ page.set_font_and_size(font, 10)
143
+ page.text_out(left, top + 3, "Rotated coordinate system")
144
+
145
+ page.set_font_and_size(font, 13)
146
+ page.text_rect(left, top, right, bottom, samp_text, HPDFDoc::HPDF_TALIGN_LEFT)
147
+
148
+ page.end_text
149
+
150
+ page.grestore
151
+
152
+
153
+ # text along a circle
154
+ page.set_gray_stroke(0)
155
+ page.circle(210, 190, 145)
156
+ page.circle(210, 190, 113)
157
+ page.stroke
158
+
159
+ angle1 = 360.0 / samp_text.length
160
+ angle2 = 180.0
161
+
162
+ page.begin_text
163
+ font = pdf.get_font("Courier-Bold", nil)
164
+ page.set_font_and_size(font, 30)
165
+
166
+ i = 0
167
+ while i < samp_text.length
168
+ rad1 = (angle2 - 90) / 180 * 3.141592
169
+ rad2 = angle2 / 180 * 3.141592
170
+
171
+ x = 210.0 + Math.cos(rad2) * 122
172
+ y = 190.0 + Math.sin(rad2) * 122
173
+
174
+ page.set_text_matrix(Math.cos(rad1), Math.sin(rad1), -Math.sin(rad1), Math.cos(rad1), x, y)
175
+
176
+ page.show_text(samp_text[i, 1])
177
+ angle2 -= angle1
178
+ i = i + 1
179
+ end
180
+
181
+ page.end_text
182
+
183
+ if $demo_output_filename
184
+ file_name= $demo_output_filename
185
+ else
186
+ file_name= $0 + ".pdf"
187
+ end
188
+
189
+ pdf.save_to_file(file_name)
@@ -0,0 +1,106 @@
1
+ #
2
+ # << Haru Free PDF Library 2.0.2 >> -- ttfont_demo.rb
3
+ #
4
+ # http://libharu.sourceforge.net/
5
+ #
6
+ # Copyright (c) 1999-2006 Takeshi Kanno
7
+ #
8
+ # Permission to use, copy, modify, distribute and sell this software
9
+ # and its documentation for any purpose is hereby granted without fee,
10
+ # provided that the above copyright notice appear in all copies and
11
+ # that both that copyright notice and this permission notice appear
12
+ # in supporting documentation.
13
+ # It is provided "as is" without express or implied warranty.
14
+ #
15
+
16
+ require "hpdf"
17
+
18
+ SAMP_TXT = "The quick brown fox jumps over the lazy dog."
19
+
20
+ font_name = ARGV.shift
21
+ flg = ARGV.shift
22
+
23
+ if !font_name
24
+ print 'usage: ttfont_demo.rb [path to font file] -E(embedding font).'
25
+ exit(1)
26
+ end
27
+
28
+ pdf = HPDFDoc.new
29
+
30
+ pdf.set_compression_mode(HPDFDoc::HPDF_COMP_ALL)
31
+
32
+ # Add a new page object. #
33
+ page = pdf.add_page
34
+
35
+ title_font = pdf.get_font("Helvetica", nil)
36
+
37
+ if (flg == "-E")
38
+ embed = HPDFDoc::HPDF_TRUE
39
+ else
40
+ embed = HPDFDoc::HPDF_FALSE
41
+ end
42
+
43
+ detail_font_name = pdf.load_ttfont_from_file(font_name, embed)
44
+ print font_name, ' load OK.[', detail_font_name, ']'
45
+
46
+ detail_font = pdf.get_font(detail_font_name, nil)
47
+
48
+ page.set_font_and_size(title_font, 10)
49
+
50
+ page.begin_text
51
+
52
+ # Move the position of the text to top of the page. #
53
+ page.move_text_pos(10, 190)
54
+ page.show_text(detail_font_name)
55
+
56
+ if (embed)
57
+ page.show_text("(Embedded Subset)")
58
+ end
59
+
60
+ page.set_font_and_size(detail_font, 15)
61
+ page.move_text_pos(10, -20)
62
+ page.show_text("abcdefghijklmnopqrstuvwxyz")
63
+ page.move_text_pos(0, -20)
64
+ page.show_text("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
65
+ page.move_text_pos(0, -20)
66
+ page.show_text("1234567890")
67
+ page.move_text_pos(0, -20)
68
+
69
+ page.set_font_and_size(detail_font, 10)
70
+ page.show_text(SAMP_TXT)
71
+ page.move_text_pos(0, -18)
72
+
73
+ page.set_font_and_size(detail_font, 16)
74
+ page.show_text(SAMP_TXT)
75
+ page.move_text_pos(0, -27)
76
+
77
+ page.set_font_and_size(detail_font, 23)
78
+ page.show_text(SAMP_TXT)
79
+ page.move_text_pos(0, -36)
80
+
81
+ page.set_font_and_size(detail_font, 30)
82
+ page.show_text(SAMP_TXT)
83
+ page.move_text_pos(0, -36)
84
+
85
+ tw = page.text_width(SAMP_TXT)
86
+ page_height = 210
87
+ page_width = tw + 40
88
+
89
+ page.set_width(page_width)
90
+ page.set_height(page_height)
91
+
92
+ # Finish to print text. #
93
+ page.end_text
94
+
95
+ page.set_line_width(0.5)
96
+
97
+ page.move_to(10, page_height - 25)
98
+ page.line_to(page_width - 10, page_height - 25)
99
+ page.stroke
100
+
101
+ page.move_to(10, page_height - 85)
102
+ page.line_to(page_width - 10, page_height - 85)
103
+ page.stroke
104
+
105
+ file_name= $0 + ".pdf"
106
+ pdf.save_to_file(file_name)
data/lib/hpdf.so ADDED
Binary file
data/tests/arc_demo.rb ADDED
@@ -0,0 +1,82 @@
1
+ #
2
+ # << Haru Free PDF Library 2.0.2 >> -- arc_demo.rb
3
+ #
4
+ # http://libharu.sourceforge.net/
5
+ #
6
+ # Copyright (c) 1999-2006 Takeshi Kanno
7
+ #
8
+ # Permission to use, copy, modify, distribute and sell this software
9
+ # and its documentation for any purpose is hereby granted without fee,
10
+ # provided that the above copyright notice appear in all copies and
11
+ # that both that copyright notice and this permission notice appear
12
+ # in supporting documentation.
13
+ # It is provided "as is" without express or implied warranty.
14
+ #
15
+
16
+ require "hpdf"
17
+
18
+ pdf = HPDFDoc.new
19
+
20
+ # add a new page object. #
21
+ page = pdf.add_page
22
+
23
+ page.set_height(220)
24
+ page.set_width(200)
25
+
26
+ # draw pie chart
27
+ #
28
+ # A: 45% Red
29
+ # B: 25% Blue
30
+ # C: 15% green
31
+ # D: other yellow
32
+ #
33
+
34
+ # A #
35
+ page.set_rgb_fill(1.0, 0, 0)
36
+ page.move_to(100, 100)
37
+ page.line_to(100, 180)
38
+ page.arc(100, 100, 80, 0, 360 * 0.45)
39
+ pos = page.get_current_pos
40
+ page.line_to(100, 100)
41
+ page.fill
42
+
43
+ # B #
44
+ page.set_rgb_fill(0, 0, 1.0)
45
+ page.move_to(100, 100)
46
+ page.line_to(pos[0], pos[1])
47
+ page.arc(100, 100, 80, 360 * 0.45, 360 * 0.7)
48
+ pos = page.get_current_pos
49
+ page.line_to(100, 100)
50
+ page.fill
51
+
52
+ # C #
53
+ page.set_rgb_fill(0, 1.0, 0)
54
+ page.move_to(100, 100)
55
+ page.line_to(pos[0], pos[1])
56
+ page.arc(100, 100, 80, 360 * 0.7, 360 * 0.85)
57
+ pos = page.get_current_pos
58
+ page.line_to(100, 100)
59
+ page.fill
60
+
61
+ # D #
62
+ page.set_rgb_fill(1.0, 1.0, 0)
63
+ page.move_to(100, 100)
64
+ page.line_to(pos[0], pos[1])
65
+ page.arc(100, 100, 80, 360 * 0.85, 360)
66
+ pos = page.get_current_pos
67
+ page.line_to(100, 100)
68
+ page.fill
69
+
70
+ # draw center circle #
71
+ page.set_gray_stroke(0)
72
+ page.set_gray_fill(1)
73
+ page.circle(100, 100, 30)
74
+ page.fill
75
+
76
+ if $demo_output_filename
77
+ file_name= $demo_output_filename
78
+ else
79
+ file_name= $0 + ".pdf"
80
+ end
81
+
82
+ pdf.save_to_file(file_name)