hpdf 2.0.8

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 (101) hide show
  1. data/History +57 -0
  2. data/License +25 -0
  3. data/README +165 -0
  4. data/examples/arc_demo.rb +82 -0
  5. data/examples/demo.rb +92 -0
  6. data/examples/encryption.rb +41 -0
  7. data/examples/ext_gstater_demo.rb +171 -0
  8. data/examples/font_demo.rb +67 -0
  9. data/examples/jpfont_demo.rb +122 -0
  10. data/examples/line_demo.rb +301 -0
  11. data/examples/slide_show_demo.rb +139 -0
  12. data/examples/text_demo2.rb +189 -0
  13. data/examples/ttfont_demo.rb +106 -0
  14. data/ext/extconf.rb +6 -0
  15. data/ext/hpdf.c +3779 -0
  16. data/ext/hpdf_annotation.c +415 -0
  17. data/ext/hpdf_array.c +344 -0
  18. data/ext/hpdf_binary.c +117 -0
  19. data/ext/hpdf_boolean.c +47 -0
  20. data/ext/hpdf_catalog.c +354 -0
  21. data/ext/hpdf_destination.c +339 -0
  22. data/ext/hpdf_dict.c +488 -0
  23. data/ext/hpdf_doc.c +2020 -0
  24. data/ext/hpdf_doc_png.c +137 -0
  25. data/ext/hpdf_encoder.c +2991 -0
  26. data/ext/hpdf_encoder_cns.c +36359 -0
  27. data/ext/hpdf_encoder_cnt.c +15307 -0
  28. data/ext/hpdf_encoder_jp.c +16125 -0
  29. data/ext/hpdf_encoder_kr.c +27978 -0
  30. data/ext/hpdf_encrypt.c +632 -0
  31. data/ext/hpdf_encryptdict.c +240 -0
  32. data/ext/hpdf_error.c +114 -0
  33. data/ext/hpdf_ext_gstate.c +150 -0
  34. data/ext/hpdf_font.c +229 -0
  35. data/ext/hpdf_font_cid.c +1030 -0
  36. data/ext/hpdf_font_tt.c +406 -0
  37. data/ext/hpdf_font_type1.c +391 -0
  38. data/ext/hpdf_fontdef.c +56 -0
  39. data/ext/hpdf_fontdef_base14.c +4506 -0
  40. data/ext/hpdf_fontdef_cid.c +194 -0
  41. data/ext/hpdf_fontdef_cns.c +471 -0
  42. data/ext/hpdf_fontdef_cnt.c +250 -0
  43. data/ext/hpdf_fontdef_jp.c +1904 -0
  44. data/ext/hpdf_fontdef_kr.c +1572 -0
  45. data/ext/hpdf_fontdef_tt.c +2230 -0
  46. data/ext/hpdf_fontdef_type1.c +524 -0
  47. data/ext/hpdf_gstate.c +119 -0
  48. data/ext/hpdf_image.c +568 -0
  49. data/ext/hpdf_image_png.c +424 -0
  50. data/ext/hpdf_info.c +164 -0
  51. data/ext/hpdf_list.c +333 -0
  52. data/ext/hpdf_mmgr.c +243 -0
  53. data/ext/hpdf_name.c +71 -0
  54. data/ext/hpdf_null.c +31 -0
  55. data/ext/hpdf_number.c +49 -0
  56. data/ext/hpdf_objects.c +172 -0
  57. data/ext/hpdf_outline.c +329 -0
  58. data/ext/hpdf_page_label.c +74 -0
  59. data/ext/hpdf_page_operator.c +2764 -0
  60. data/ext/hpdf_pages.c +1508 -0
  61. data/ext/hpdf_real.c +61 -0
  62. data/ext/hpdf_streams.c +1435 -0
  63. data/ext/hpdf_string.c +189 -0
  64. data/ext/hpdf_utils.c +438 -0
  65. data/ext/hpdf_xref.c +348 -0
  66. data/ext/include/hpdf.h +1227 -0
  67. data/ext/include/hpdf_annotation.h +74 -0
  68. data/ext/include/hpdf_catalog.h +81 -0
  69. data/ext/include/hpdf_conf.h +76 -0
  70. data/ext/include/hpdf_consts.h +549 -0
  71. data/ext/include/hpdf_destination.h +41 -0
  72. data/ext/include/hpdf_doc.h +159 -0
  73. data/ext/include/hpdf_encoder.h +311 -0
  74. data/ext/include/hpdf_encrypt.h +156 -0
  75. data/ext/include/hpdf_encryptdict.h +66 -0
  76. data/ext/include/hpdf_error.h +201 -0
  77. data/ext/include/hpdf_ext_gstate.h +38 -0
  78. data/ext/include/hpdf_font.h +112 -0
  79. data/ext/include/hpdf_fontdef.h +403 -0
  80. data/ext/include/hpdf_gstate.h +80 -0
  81. data/ext/include/hpdf_image.h +72 -0
  82. data/ext/include/hpdf_info.h +48 -0
  83. data/ext/include/hpdf_list.h +85 -0
  84. data/ext/include/hpdf_mmgr.h +82 -0
  85. data/ext/include/hpdf_objects.h +587 -0
  86. data/ext/include/hpdf_outline.h +74 -0
  87. data/ext/include/hpdf_page_label.h +35 -0
  88. data/ext/include/hpdf_pages.h +128 -0
  89. data/ext/include/hpdf_streams.h +276 -0
  90. data/ext/include/hpdf_types.h +488 -0
  91. data/ext/include/hpdf_utils.h +161 -0
  92. data/tests/arc_demo.rb +82 -0
  93. data/tests/demo.rb +91 -0
  94. data/tests/encryption.rb +41 -0
  95. data/tests/ext_gstater_demo.rb +171 -0
  96. data/tests/font_demo.rb +67 -0
  97. data/tests/line_demo.rb +301 -0
  98. data/tests/slide_show_demo.rb +139 -0
  99. data/tests/test_all_examples.rb +31 -0
  100. data/tests/text_demo2.rb +189 -0
  101. metadata +147 -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
+ require 'rubygems'
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
+ require 'rubygems'
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
+ require 'rubygems'
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)
@@ -0,0 +1,6 @@
1
+ # Then create the makefile for the extension. Rubygems will handle the rest.
2
+ require 'mkmf'
3
+ $CPPFLAGS = $CPPFLAGS + " -I./include"
4
+ $LDFLAGS = $LDFLAGS + " -L./"
5
+ $LIBS = $LIBS + " -lpng -lz"
6
+ create_makefile 'hpdf'
@@ -0,0 +1,3779 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.5 >> -- hpdf.c
3
+ *
4
+ * URL 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
+ * 2006.08.03 update.
16
+ */
17
+
18
+ #include "ruby.h"
19
+ #include "rubyio.h"
20
+
21
+ #include "hpdf.h"
22
+ #include "hpdf_conf.h"
23
+ #include "hpdf_utils.h"
24
+ #include "hpdf_pages.h"
25
+
26
+ #include <stdlib.h>
27
+ #include <stdio.h>
28
+
29
+ static VALUE rb_cHPDFDoc;
30
+ static VALUE rb_cHPDFPage;
31
+ static VALUE rb_cHPDFImage;
32
+ static VALUE rb_cHPDFFont;
33
+ static VALUE rb_cHPDFOutline;
34
+ static VALUE rb_cHPDFEncoder;
35
+ static VALUE rb_cHPDFDestination;
36
+ static VALUE rb_cHPDFAnnotation;
37
+ static VALUE rb_cHPDFExtGState;
38
+ static VALUE rb_eHPDFError;
39
+
40
+ static void
41
+ hpdf_free (HPDF_Doc pdf);
42
+
43
+
44
+ static void
45
+ hpdf_error_handler (HPDF_STATUS error_no,
46
+ HPDF_STATUS detail_no,
47
+ void *user_data)
48
+ {
49
+ char msg[256];
50
+
51
+ snprintf(msg, 256, "ERROR 0x%04X-0x%04X", error_no, detail_no);
52
+
53
+ rb_raise(rb_eHPDFError, msg);
54
+ }
55
+
56
+
57
+ static VALUE
58
+ hpdf_new ()
59
+ {
60
+ HPDF_Doc pdf = HPDF_New(hpdf_error_handler, NULL);
61
+
62
+ HPDF_PTRACE(("hpdf_new pdf=%p\n", pdf));
63
+
64
+ if (!pdf)
65
+ rb_raise(rb_eHPDFError, "cannot create HPDF_Doc object.");
66
+
67
+ return Data_Wrap_Struct (rb_cHPDFDoc, 0, hpdf_free, pdf);
68
+ }
69
+
70
+ static void
71
+ hpdf_free (HPDF_Doc pdf)
72
+ {
73
+ HPDF_PTRACE(("hpdf_free pdf=%p\n", pdf));
74
+
75
+ HPDF_Free (pdf);
76
+ }
77
+
78
+ static VALUE
79
+ hpdf_new_doc (VALUE obj)
80
+ {
81
+ HPDF_Doc pdf;
82
+ HPDF_STATUS ret;
83
+
84
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
85
+
86
+ HPDF_PTRACE(("hpdf_new_doc pdf=%p\n", pdf));
87
+
88
+ ret = HPDF_NewDoc(pdf);
89
+
90
+ return INT2NUM(ret);
91
+ }
92
+
93
+ static VALUE
94
+ hpdf_free_doc (VALUE obj)
95
+ {
96
+ HPDF_Doc pdf;
97
+
98
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
99
+
100
+ HPDF_PTRACE(("hpdf_free_doc pdf=%p\n", pdf));
101
+
102
+ HPDF_FreeDoc(pdf);
103
+
104
+ return Qnil;
105
+ }
106
+
107
+ static VALUE
108
+ hpdf_has_doc (VALUE obj)
109
+ {
110
+ HPDF_Doc pdf;
111
+ HPDF_STATUS ret;
112
+
113
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
114
+
115
+ HPDF_PTRACE(("hpdf_has_doc pdf=%p\n", pdf));
116
+
117
+ ret = HPDF_HasDoc(pdf);
118
+
119
+ return INT2NUM(ret);
120
+ }
121
+
122
+ static VALUE
123
+ hpdf_free_doc_all (VALUE obj)
124
+ {
125
+ HPDF_Doc pdf;
126
+
127
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
128
+
129
+ HPDF_PTRACE(("hpdf_free_doc_all pdf=%p\n", pdf));
130
+
131
+ HPDF_FreeDocAll(pdf);
132
+
133
+ return Qnil;
134
+ }
135
+
136
+ static VALUE
137
+ hpdf_save_to_file (VALUE obj, VALUE file_name)
138
+ {
139
+ HPDF_Doc pdf;
140
+ HPDF_STATUS ret;
141
+
142
+ Check_Type(file_name, T_STRING);
143
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
144
+
145
+ HPDF_PTRACE(("hpdf_save_to_file pdf=%p\n", pdf));
146
+
147
+ ret = HPDF_SaveToFile(pdf, STR2CSTR(file_name));
148
+
149
+ return INT2NUM(ret);
150
+ }
151
+
152
+ static VALUE
153
+ hpdf_get_error (VALUE obj)
154
+ {
155
+ HPDF_Doc pdf;
156
+ HPDF_STATUS ret;
157
+
158
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
159
+
160
+ HPDF_PTRACE(("hpdf_get_error pdf=%p\n", pdf));
161
+
162
+ ret = HPDF_GetError(pdf);
163
+
164
+ return INT2NUM(ret);
165
+ }
166
+
167
+ static VALUE
168
+ hpdf_reset_error (VALUE obj)
169
+ {
170
+ HPDF_Doc pdf;
171
+
172
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
173
+
174
+ HPDF_PTRACE(("hpdf_reset_error pdf=%p\n", pdf));
175
+
176
+ HPDF_ResetError(pdf);
177
+
178
+ return Qnil;
179
+ }
180
+
181
+ static VALUE
182
+ hpdf_set_page_configuration (VALUE obj, VALUE page_per_pages)
183
+ {
184
+ HPDF_Doc pdf;
185
+ HPDF_STATUS ret;
186
+ HPDF_UINT i;
187
+
188
+ i = NUM2INT(page_per_pages);
189
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
190
+
191
+ HPDF_PTRACE(("hpdf_set_page_configuration pdf=%p\n", pdf));
192
+
193
+ ret = HPDF_SetPagesConfiguration(pdf, i);
194
+
195
+ return INT2NUM(ret);
196
+ }
197
+
198
+ static VALUE
199
+ hpdf_get_page_by_index (VALUE obj, VALUE index)
200
+ {
201
+ HPDF_Page page;
202
+ HPDF_Doc pdf;
203
+ HPDF_UINT i;
204
+
205
+ i = NUM2INT(index);
206
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
207
+
208
+ HPDF_PTRACE(("hpdf_get_page_by_index pdf=%p\n", pdf));
209
+
210
+ page = HPDF_GetPageByIndex(pdf, i);
211
+
212
+ return Data_Wrap_Struct (rb_cHPDFPage, 0, 0, page);
213
+ }
214
+
215
+ static VALUE
216
+ hpdf_get_page_layout (VALUE obj)
217
+ {
218
+ HPDF_Doc pdf;
219
+ HPDF_UINT layout;
220
+
221
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
222
+
223
+ HPDF_PTRACE(("hpdf_get_page_layout pdf=%p\n", pdf));
224
+
225
+ layout = HPDF_GetPageLayout(pdf);
226
+
227
+ return INT2NUM(layout);
228
+ }
229
+
230
+ static VALUE
231
+ hpdf_set_page_layout (VALUE obj, VALUE layout)
232
+ {
233
+ HPDF_Doc pdf;
234
+ HPDF_STATUS ret;
235
+ HPDF_UINT i;
236
+
237
+ i = NUM2INT(layout);
238
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
239
+
240
+ HPDF_PTRACE(("hpdf_set_page_layout pdf=%p\n", pdf));
241
+
242
+ ret = HPDF_SetPageLayout(pdf, i);
243
+
244
+ return INT2NUM(ret);
245
+ }
246
+
247
+ static VALUE
248
+ hpdf_get_page_mode (VALUE obj)
249
+ {
250
+ HPDF_Doc pdf;
251
+ HPDF_UINT mode;
252
+
253
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
254
+
255
+ HPDF_PTRACE(("hpdf_get_page_mode pdf=%p\n", pdf));
256
+
257
+ mode = HPDF_GetPageMode(pdf);
258
+
259
+ return INT2NUM(mode);
260
+ }
261
+
262
+ static VALUE
263
+ hpdf_set_page_mode (VALUE obj, VALUE mode)
264
+ {
265
+ HPDF_Doc pdf;
266
+ HPDF_STATUS ret;
267
+ HPDF_UINT i;
268
+
269
+ i = NUM2INT(mode);
270
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
271
+
272
+ HPDF_PTRACE(("hpdf_set_page_mode pdf=%p\n", pdf));
273
+
274
+ ret = HPDF_SetPageMode(pdf, i);
275
+
276
+ return INT2NUM(ret);
277
+ }
278
+
279
+ static VALUE
280
+ hpdf_set_open_action (VALUE obj, VALUE action)
281
+ {
282
+ HPDF_Doc pdf;
283
+ HPDF_Destination dst;
284
+ HPDF_STATUS ret;
285
+
286
+ if (HPDF_StrCmp(rb_obj_classname(action), "HPDFDestination") != 0)
287
+ rb_raise(rb_eHPDFError, "invalid argument(1).");
288
+
289
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
290
+ Data_Get_Struct(action, HPDF_Array_Rec, dst);
291
+
292
+ HPDF_PTRACE(("hpdf_set_open_action pdf=%p\n", pdf));
293
+
294
+ ret = HPDF_SetOpenAction(pdf, dst);
295
+
296
+ return INT2NUM(ret);
297
+ }
298
+
299
+ static VALUE
300
+ hpdf_get_viewer_preference (VALUE obj)
301
+ {
302
+ HPDF_Doc pdf;
303
+ HPDF_UINT mode;
304
+
305
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
306
+
307
+ HPDF_PTRACE(("hpdf_get_viewer_preference pdf=%p\n", pdf));
308
+
309
+ mode = HPDF_GetViewerPreference(pdf);
310
+
311
+ return INT2NUM(mode);
312
+ }
313
+
314
+ static VALUE
315
+ hpdf_set_viewer_preference (VALUE obj, VALUE value)
316
+ {
317
+ HPDF_Doc pdf;
318
+ HPDF_STATUS ret;
319
+ HPDF_UINT i;
320
+
321
+ i = NUM2INT(value);
322
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
323
+
324
+ HPDF_PTRACE(("hpdf_set_viewer_preference pdf=%p\n", pdf));
325
+
326
+ ret = HPDF_SetViewerPreference(pdf, i);
327
+
328
+ return INT2NUM(ret);
329
+ }
330
+
331
+ static VALUE
332
+ hpdf_get_current_page (VALUE obj)
333
+ {
334
+ HPDF_Page page;
335
+ HPDF_Doc pdf;
336
+
337
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
338
+
339
+ HPDF_PTRACE(("hpdf_get_current_page pdf=%p\n", pdf));
340
+
341
+ page = HPDF_GetCurrentPage(pdf);
342
+
343
+ return Data_Wrap_Struct (rb_cHPDFPage, 0, 0, page);
344
+ }
345
+
346
+ static VALUE
347
+ hpdf_add_page (VALUE obj)
348
+ {
349
+ HPDF_Page page;
350
+ HPDF_Doc pdf;
351
+
352
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
353
+
354
+ HPDF_PTRACE(("hpdf_add_page pdf=%p\n", pdf));
355
+
356
+ page = HPDF_AddPage(pdf);
357
+
358
+ return Data_Wrap_Struct (rb_cHPDFPage, 0, 0, page);
359
+ }
360
+
361
+ static VALUE
362
+ hpdf_insert_page (VALUE obj, VALUE page)
363
+ {
364
+ HPDF_Page target;
365
+ HPDF_Page new_page;
366
+ HPDF_Doc pdf;
367
+
368
+ if (HPDF_StrCmp(rb_obj_classname(page), "HPDFPage") != 0)
369
+ rb_raise(rb_eHPDFError, "invalid argument(1).");
370
+
371
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
372
+ Data_Get_Struct(page, HPDF_Dict_Rec, target);
373
+
374
+ printf("@page=%p\n", target);
375
+ HPDF_PTRACE(("hpdf_insert_page pdf=%p\n", pdf));
376
+
377
+ new_page = HPDF_InsertPage(pdf, target);
378
+
379
+ return Data_Wrap_Struct (rb_cHPDFPage, 0, 0, new_page);
380
+ }
381
+
382
+ static VALUE
383
+ hpdf_page_set_width (VALUE obj, VALUE width)
384
+ {
385
+ HPDF_Page page;
386
+ HPDF_STATUS ret;
387
+ HPDF_REAL f;
388
+
389
+ f = NUM2DBL(width);
390
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
391
+
392
+ HPDF_PTRACE(("hpdf_page_set_width page=%p\n", page));
393
+
394
+ ret = HPDF_Page_SetWidth(page, f);
395
+
396
+ return INT2NUM(ret);
397
+ }
398
+
399
+ static VALUE
400
+ hpdf_page_set_height (VALUE obj, VALUE height)
401
+ {
402
+ HPDF_Page page;
403
+ HPDF_STATUS ret;
404
+ HPDF_REAL f;
405
+
406
+ f = NUM2DBL(height);
407
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
408
+
409
+ HPDF_PTRACE(("hpdf_page_set_height page=%p\n", page));
410
+
411
+ ret = HPDF_Page_SetHeight(page, f);
412
+
413
+ return INT2NUM(ret);
414
+ }
415
+
416
+ static VALUE
417
+ hpdf_page_set_size (VALUE obj, VALUE size, VALUE direction)
418
+ {
419
+ HPDF_Page page;
420
+ HPDF_STATUS ret;
421
+ HPDF_INT i1;
422
+ HPDF_INT i2;
423
+
424
+ i1 = NUM2INT(size);
425
+ i2 = NUM2INT(direction);
426
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
427
+
428
+ HPDF_PTRACE(("hpdf_page_set_size page=%p\n", page));
429
+
430
+ ret = HPDF_Page_SetSize(page, i1, i2);
431
+
432
+ return INT2NUM(ret);
433
+ }
434
+
435
+ static VALUE
436
+ hpdf_page_set_rotate (VALUE obj, VALUE angle)
437
+ {
438
+ HPDF_Page page;
439
+ HPDF_STATUS ret;
440
+ HPDF_INT i;
441
+
442
+ i = NUM2INT(angle);
443
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
444
+
445
+ HPDF_PTRACE(("hpdf_page_set_rotate page=%p\n", page));
446
+
447
+ ret = HPDF_Page_SetRotate(page, i);
448
+
449
+ return INT2NUM(ret);
450
+ }
451
+
452
+ static VALUE
453
+ hpdf_get_font (VALUE obj, VALUE font_name, VALUE encoding_name)
454
+ {
455
+ HPDF_Font font;
456
+ HPDF_Doc pdf;
457
+ const char *s1;
458
+ const char *s2;
459
+
460
+ s1 = STR2CSTR(font_name);
461
+
462
+ if (encoding_name == Qnil)
463
+ s2 = NULL;
464
+ else {
465
+ s2 = STR2CSTR(encoding_name);
466
+
467
+ if (HPDF_StrLen(s2, -1) == 0)
468
+ s2 = NULL;
469
+ }
470
+
471
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
472
+
473
+ HPDF_PTRACE(("hpdf_get_font pdf=%p\n", pdf));
474
+
475
+ font = HPDF_GetFont(pdf, s1, s2);
476
+
477
+ return Data_Wrap_Struct (rb_cHPDFFont, 0, 0, font);
478
+ }
479
+
480
+ static VALUE
481
+ hpdf_load_type1font_from_file (VALUE obj, VALUE afm, VALUE pfa)
482
+ {
483
+ const char* font_name;
484
+ HPDF_Doc pdf;
485
+ const char *s1;
486
+ const char *s2;
487
+
488
+ s1 = STR2CSTR(afm);
489
+ s2 = STR2CSTR(pfa);
490
+
491
+ if (HPDF_StrLen(s2, -1) == 0)
492
+ s2 = NULL;
493
+
494
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
495
+
496
+ HPDF_PTRACE(("hpdf_load_type1font_from_file pdf=%p\n", pdf));
497
+
498
+ font_name = HPDF_LoadType1FontFromFile(pdf, s1, s2);
499
+
500
+ return rb_str_new2(font_name);
501
+ }
502
+
503
+ static VALUE
504
+ hpdf_load_ttfont_from_file (VALUE obj, VALUE file_name, VALUE embedding)
505
+ {
506
+ const char* font_name;
507
+ HPDF_Doc pdf;
508
+ const char *s;
509
+ HPDF_INT i;
510
+
511
+ s = STR2CSTR(file_name);
512
+ i = NUM2INT(embedding);
513
+
514
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
515
+
516
+ HPDF_PTRACE(("hpdf_load_ttfont_from_file pdf=%p\n", pdf));
517
+
518
+ font_name = HPDF_LoadTTFontFromFile(pdf, s, i);
519
+
520
+ return rb_str_new2(font_name);
521
+ }
522
+
523
+ static VALUE
524
+ hpdf_load_ttfont_from_file2 (VALUE obj, VALUE file_name, VALUE index, VALUE embedding)
525
+ {
526
+ const char* font_name;
527
+ HPDF_Doc pdf;
528
+ const char *s;
529
+ HPDF_INT i1;
530
+ HPDF_INT i2;
531
+
532
+ s = STR2CSTR(file_name);
533
+ i1 = NUM2INT(index);
534
+ i2 = NUM2INT(embedding);
535
+
536
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
537
+
538
+ HPDF_PTRACE(("hpdf_load_ttfont_from_file2 pdf=%p\n", pdf));
539
+
540
+ font_name = HPDF_LoadTTFontFromFile2(pdf, s, i1, i2);
541
+
542
+ return rb_str_new2(font_name);
543
+ }
544
+
545
+ static VALUE
546
+ hpdf_add_page_label (VALUE obj, VALUE page_num, VALUE style, VALUE first_page, VALUE prefix)
547
+ {
548
+ HPDF_Doc pdf;
549
+ HPDF_STATUS ret;
550
+ HPDF_INT i1;
551
+ HPDF_INT i2;
552
+ HPDF_INT i3;
553
+ const char *s;
554
+
555
+ i1 = NUM2INT(page_num);
556
+ i2 = NUM2INT(style);
557
+ i3 = NUM2INT(first_page);
558
+ s = STR2CSTR(prefix);
559
+
560
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
561
+
562
+ HPDF_PTRACE(("hpdf_add_page_label pdf=%p\n", pdf));
563
+
564
+ ret = HPDF_AddPageLabel(pdf, i1, i2, i3, s);
565
+
566
+ return INT2NUM(ret);
567
+ }
568
+
569
+ static VALUE
570
+ hpdf_use_jp_fonts (VALUE obj)
571
+ {
572
+ HPDF_Doc pdf;
573
+ HPDF_STATUS ret;
574
+
575
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
576
+
577
+ HPDF_PTRACE(("hpdf_use_jp_fonts pdf=%p\n", pdf));
578
+
579
+ ret = HPDF_UseJPFonts(pdf);
580
+
581
+ return INT2NUM(ret);
582
+ }
583
+
584
+ static VALUE
585
+ hpdf_use_kr_fonts (VALUE obj)
586
+ {
587
+ HPDF_Doc pdf;
588
+ HPDF_STATUS ret;
589
+
590
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
591
+
592
+ HPDF_PTRACE(("hpdf_use_kr_fonts pdf=%p\n", pdf));
593
+
594
+ ret = HPDF_UseKRFonts(pdf);
595
+
596
+ return INT2NUM(ret);
597
+ }
598
+
599
+ static VALUE
600
+ hpdf_use_cns_fonts (VALUE obj)
601
+ {
602
+ HPDF_Doc pdf;
603
+ HPDF_STATUS ret;
604
+
605
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
606
+
607
+ HPDF_PTRACE(("hpdf_use_cns_fonts pdf=%p\n", pdf));
608
+
609
+ ret = HPDF_UseCNSFonts(pdf);
610
+
611
+ return INT2NUM(ret);
612
+ }
613
+
614
+ static VALUE
615
+ hpdf_use_cnt_fonts (VALUE obj)
616
+ {
617
+ HPDF_Doc pdf;
618
+ HPDF_STATUS ret;
619
+
620
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
621
+
622
+ HPDF_PTRACE(("hpdf_use_cnt_fonts pdf=%p\n", pdf));
623
+
624
+ ret = HPDF_UseCNSFonts(pdf);
625
+
626
+ return INT2NUM(ret);
627
+ }
628
+
629
+
630
+ static VALUE
631
+ hpdf_create_outline (VALUE obj, VALUE parent, VALUE title, VALUE encoder)
632
+ {
633
+ HPDF_Doc pdf;
634
+ HPDF_Outline outline1 = NULL;
635
+ HPDF_Outline outline2;
636
+ HPDF_Encoder e = NULL;
637
+ const char *s;
638
+
639
+ if (HPDF_StrCmp(rb_obj_classname(parent), "HPDFOutline") == 0)
640
+ Data_Get_Struct(parent, HPDF_Dict_Rec, outline1);
641
+
642
+ if (HPDF_StrCmp(rb_obj_classname(encoder), "HPDFEncoder") == 0)
643
+ Data_Get_Struct(encoder, HPDF_Encoder_Rec, e);
644
+
645
+ s = STR2CSTR(title);
646
+
647
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
648
+
649
+ HPDF_PTRACE(("hpdf_create_outline pdf=%p\n", pdf));
650
+
651
+ outline2 = HPDF_CreateOutline(pdf, outline1, s, e);
652
+
653
+ return Data_Wrap_Struct (rb_cHPDFOutline, 0, 0, outline2);
654
+ }
655
+
656
+
657
+ static VALUE
658
+ hpdf_outline_set_opend (VALUE obj, VALUE opend)
659
+ {
660
+ HPDF_Outline outline;
661
+ HPDF_STATUS ret;
662
+ HPDF_INT i;
663
+
664
+ Data_Get_Struct(obj, HPDF_Dict_Rec, outline);
665
+ i = NUM2INT(opend);
666
+
667
+ HPDF_PTRACE(("hpdf_outline_set_opend outline=%p\n", outline));
668
+
669
+ ret = HPDF_Outline_SetOpened(outline, i);
670
+
671
+ return INT2NUM(ret);
672
+ }
673
+
674
+ static VALUE
675
+ hpdf_outline_set_destination (VALUE obj, VALUE dest)
676
+ {
677
+ HPDF_Outline outline;
678
+ HPDF_Destination d;
679
+ HPDF_STATUS ret;
680
+
681
+ if (HPDF_StrCmp(rb_obj_classname(dest), "HPDFDestination") != 0)
682
+ rb_raise(rb_eHPDFError, "invalid argument(1).");
683
+
684
+ Data_Get_Struct(obj, HPDF_Dict_Rec, outline);
685
+ Data_Get_Struct(dest, HPDF_Array_Rec, d);
686
+
687
+ HPDF_PTRACE(("hpdf_outline_set_destination outline=%p\n", outline));
688
+
689
+ ret = HPDF_Outline_SetDestination(outline, d);
690
+
691
+ return INT2NUM(ret);
692
+ }
693
+
694
+
695
+ static VALUE
696
+ hpdf_page_create_destination (VALUE obj)
697
+ {
698
+ HPDF_Page page;
699
+ HPDF_Destination d;
700
+
701
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
702
+
703
+ HPDF_PTRACE(("hpdf_page_create_destination page=%p\n", page));
704
+
705
+ d = HPDF_Page_CreateDestination(page);
706
+
707
+ return Data_Wrap_Struct (rb_cHPDFDestination, 0, 0, d);
708
+ }
709
+
710
+ static VALUE
711
+ hpdf_destination_set_xyz (VALUE obj, VALUE left, VALUE top, VALUE zoom)
712
+ {
713
+ HPDF_Destination d;
714
+ HPDF_STATUS ret;
715
+ HPDF_INT i1;
716
+ HPDF_INT i2;
717
+ HPDF_INT i3;
718
+
719
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
720
+ i1 = NUM2INT(left);
721
+ i2 = NUM2INT(top);
722
+ i3 = NUM2INT(zoom);
723
+
724
+ HPDF_PTRACE(("hpdf_destination_set_xyz destination=%p\n", d));
725
+
726
+ ret = HPDF_Destination_SetXYZ(d, i1, i2, i3);
727
+
728
+ return INT2NUM(ret);
729
+ }
730
+
731
+ static VALUE
732
+ hpdf_destination_set_fit (VALUE obj)
733
+ {
734
+ HPDF_Destination d;
735
+ HPDF_STATUS ret;
736
+
737
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
738
+
739
+ HPDF_PTRACE(("hpdf_destination_set_fit destination=%p\n", d));
740
+
741
+ ret = HPDF_Destination_SetFit(d);
742
+
743
+ return INT2NUM(ret);
744
+ }
745
+
746
+ static VALUE
747
+ hpdf_destination_set_fit_h (VALUE obj, VALUE top)
748
+ {
749
+ HPDF_Destination d;
750
+ HPDF_STATUS ret;
751
+ HPDF_INT i1;
752
+
753
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
754
+ i1 = NUM2INT(top);
755
+
756
+ HPDF_PTRACE(("hpdf_destination_set_fit_h destination=%p\n", d));
757
+
758
+ ret = HPDF_Destination_SetFitH(d, i1);
759
+
760
+ return INT2NUM(ret);
761
+ }
762
+
763
+ static VALUE
764
+ hpdf_destination_set_fit_v (VALUE obj, VALUE left)
765
+ {
766
+ HPDF_Destination d;
767
+ HPDF_STATUS ret;
768
+ HPDF_INT i1;
769
+
770
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
771
+ i1 = NUM2INT(left);
772
+
773
+ HPDF_PTRACE(("hpdf_destination_set_fit_v destination=%p\n", d));
774
+
775
+ ret = HPDF_Destination_SetFitV(d, i1);
776
+
777
+ return INT2NUM(ret);
778
+ }
779
+
780
+ static VALUE
781
+ hpdf_destination_set_fit_b (VALUE obj)
782
+ {
783
+ HPDF_Destination d;
784
+ HPDF_STATUS ret;
785
+
786
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
787
+
788
+ HPDF_PTRACE(("hpdf_destination_set_fit_b destination=%p\n", d));
789
+
790
+ ret = HPDF_Destination_SetFitB(d);
791
+
792
+ return INT2NUM(ret);
793
+ }
794
+
795
+ static VALUE
796
+ hpdf_destination_set_fit_bh (VALUE obj, VALUE top)
797
+ {
798
+ HPDF_Destination d;
799
+ HPDF_STATUS ret;
800
+ HPDF_INT i1;
801
+
802
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
803
+ i1 = NUM2INT(top);
804
+
805
+ HPDF_PTRACE(("hpdf_destination_set_fit_bh destination=%p\n", d));
806
+
807
+ ret = HPDF_Destination_SetFitBH(d, i1);
808
+
809
+ return INT2NUM(ret);
810
+ }
811
+
812
+ static VALUE
813
+ hpdf_destination_set_fit_bv (VALUE obj, VALUE left)
814
+ {
815
+ HPDF_Destination d;
816
+ HPDF_STATUS ret;
817
+ HPDF_INT i1;
818
+
819
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
820
+ i1 = NUM2INT(left);
821
+
822
+ HPDF_PTRACE(("hpdf_destination_set_fit_bv destination=%p\n", d));
823
+
824
+ ret = HPDF_Destination_SetFitBV(d, i1);
825
+
826
+ return INT2NUM(ret);
827
+ }
828
+
829
+
830
+ static VALUE
831
+ hpdf_destination_set_fit_r (VALUE obj, VALUE left, VALUE bottom, VALUE right, VALUE top)
832
+ {
833
+ HPDF_Destination d;
834
+ HPDF_STATUS ret;
835
+ HPDF_INT i1;
836
+ HPDF_INT i2;
837
+ HPDF_INT i3;
838
+ HPDF_INT i4;
839
+
840
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
841
+ i1 = NUM2INT(left);
842
+ i2 = NUM2INT(bottom);
843
+ i3 = NUM2INT(right);
844
+ i4 = NUM2INT(top);
845
+
846
+ HPDF_PTRACE(("hpdf_destination_set_fit_r destination=%p\n", d));
847
+
848
+ ret = HPDF_Destination_SetFitR(d, i1, i2, i3, i4);
849
+
850
+ return INT2NUM(ret);
851
+ }
852
+
853
+ static VALUE
854
+ hpdf_get_encoder (VALUE obj, VALUE encoding_name)
855
+ {
856
+ HPDF_Encoder encoder;
857
+ HPDF_Doc pdf;
858
+ const char *s1;
859
+
860
+ s1 = STR2CSTR(encoding_name);
861
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
862
+
863
+ HPDF_PTRACE(("hpdf_get_encoder pdf=%p\n", pdf));
864
+
865
+ encoder = HPDF_GetEncoder(pdf, s1);
866
+
867
+ return Data_Wrap_Struct (rb_cHPDFEncoder, 0, 0, encoder);
868
+ }
869
+
870
+ static VALUE
871
+ hpdf_get_current_encoder (VALUE obj)
872
+ {
873
+ HPDF_Encoder encoder;
874
+ HPDF_Doc pdf;
875
+
876
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
877
+
878
+ HPDF_PTRACE(("hpdf_get_current_encoder pdf=%p\n", pdf));
879
+
880
+ encoder = HPDF_GetCurrentEncoder(pdf);
881
+
882
+ return Data_Wrap_Struct (rb_cHPDFEncoder, 0, 0, encoder);
883
+ }
884
+
885
+ static VALUE
886
+ hpdf_set_current_encoder (VALUE obj, VALUE encoding_name)
887
+ {
888
+ HPDF_Doc pdf;
889
+ HPDF_STATUS ret;
890
+ const char *s1;
891
+
892
+ s1 = STR2CSTR(encoding_name);
893
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
894
+
895
+ HPDF_PTRACE(("hpdf_set_current_encoder pdf=%p\n", pdf));
896
+
897
+ ret = HPDF_SetCurrentEncoder(pdf, s1);
898
+
899
+ return INT2NUM(ret);
900
+ }
901
+
902
+ static VALUE
903
+ hpdf_encoder_get_type (VALUE obj)
904
+ {
905
+ HPDF_Encoder encoder;
906
+ HPDF_STATUS ret;
907
+
908
+ Data_Get_Struct(obj, HPDF_Encoder_Rec, encoder);
909
+
910
+ HPDF_PTRACE(("hpdf_encoder_get_type encoder=%p\n", encoder));
911
+
912
+ ret = HPDF_Encoder_GetType(encoder);
913
+
914
+ return INT2NUM(ret);
915
+ }
916
+
917
+ static VALUE
918
+ hpdf_encoder_get_byte_type (VALUE obj, VALUE text, VALUE index)
919
+ {
920
+ HPDF_Encoder encoder;
921
+ const char *s;
922
+ HPDF_INT i;
923
+ HPDF_STATUS ret;
924
+
925
+ s = STR2CSTR(text);
926
+ i = NUM2INT(index);
927
+
928
+ Data_Get_Struct(obj, HPDF_Encoder_Rec, encoder);
929
+
930
+ HPDF_PTRACE(("hpdf_encoder_get_byte_type encoder=%p\n", encoder));
931
+
932
+ ret = HPDF_Encoder_GetByteType(encoder, s, i);
933
+
934
+ return INT2NUM(ret);
935
+ }
936
+
937
+ static VALUE
938
+ hpdf_encoder_get_unicode (VALUE obj, VALUE code)
939
+ {
940
+ HPDF_Encoder encoder;
941
+ HPDF_INT i;
942
+ HPDF_STATUS ret;
943
+
944
+ i = NUM2INT(code);
945
+
946
+ Data_Get_Struct(obj, HPDF_Encoder_Rec, encoder);
947
+
948
+ HPDF_PTRACE(("hpdf_encoder_get_unicode encoder=%p\n", encoder));
949
+
950
+ ret = HPDF_Encoder_GetUnicode(encoder, i);
951
+
952
+ return INT2NUM(ret);
953
+ }
954
+
955
+ static VALUE
956
+ hpdf_encoder_get_writing_mode (VALUE obj)
957
+ {
958
+ HPDF_Encoder encoder;
959
+ HPDF_STATUS ret;
960
+
961
+ Data_Get_Struct(obj, HPDF_Encoder_Rec, encoder);
962
+
963
+ HPDF_PTRACE(("hpdf_encoder_get_writing_mode encoder=%p\n", encoder));
964
+
965
+ ret = HPDF_Encoder_GetWritingMode(encoder);
966
+
967
+ return INT2NUM(ret);
968
+ }
969
+
970
+ static VALUE
971
+ hpdf_use_jp_encodings (VALUE obj)
972
+ {
973
+ HPDF_Doc pdf;
974
+ HPDF_STATUS ret;
975
+
976
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
977
+
978
+ HPDF_PTRACE(("hpdf_use_jp_encodings pdf=%p\n", pdf));
979
+
980
+ ret = HPDF_UseJPEncodings(pdf);
981
+
982
+ return INT2NUM(ret);
983
+ }
984
+
985
+ static VALUE
986
+ hpdf_use_kr_encodings (VALUE obj)
987
+ {
988
+ HPDF_Doc pdf;
989
+ HPDF_STATUS ret;
990
+
991
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
992
+
993
+ HPDF_PTRACE(("hpdf_use_kr_encodings pdf=%p\n", pdf));
994
+
995
+ ret = HPDF_UseKREncodings(pdf);
996
+
997
+ return INT2NUM(ret);
998
+ }
999
+
1000
+ static VALUE
1001
+ hpdf_use_cns_encodings (VALUE obj)
1002
+ {
1003
+ HPDF_Doc pdf;
1004
+ HPDF_STATUS ret;
1005
+
1006
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1007
+
1008
+ HPDF_PTRACE(("hpdf_use_cns_encodings pdf=%p\n", pdf));
1009
+
1010
+ ret = HPDF_UseCNSEncodings(pdf);
1011
+
1012
+ return INT2NUM(ret);
1013
+ }
1014
+
1015
+ static VALUE
1016
+ hpdf_use_cnt_encodings (VALUE obj)
1017
+ {
1018
+ HPDF_Doc pdf;
1019
+ HPDF_STATUS ret;
1020
+
1021
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1022
+
1023
+ HPDF_PTRACE(("hpdf_use_cnt_encodings pdf=%p\n", pdf));
1024
+
1025
+ ret = HPDF_UseCNTEncodings(pdf);
1026
+
1027
+ return INT2NUM(ret);
1028
+ }
1029
+
1030
+ static VALUE
1031
+ hpdf_page_create_text_annot (VALUE obj, VALUE left, VALUE bottom, VALUE right, VALUE top, VALUE text, VALUE encoder)
1032
+ {
1033
+ HPDF_Page page;
1034
+ HPDF_Rect rect;
1035
+ HPDF_Encoder e = NULL;
1036
+ const char *s;
1037
+ HPDF_Annotation annot;
1038
+
1039
+ if (HPDF_StrCmp(rb_obj_classname(encoder), "HPDFEncoder") == 0)
1040
+ Data_Get_Struct(encoder, HPDF_Encoder_Rec, e);
1041
+
1042
+ s = STR2CSTR(text);
1043
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1044
+ rect.left = NUM2INT(left);
1045
+ rect.bottom = NUM2INT(bottom);
1046
+ rect.right = NUM2INT(right);
1047
+ rect.top = NUM2INT(top);
1048
+
1049
+ HPDF_PTRACE(("hpdf_page_create_text_annot page=%p\n", page));
1050
+
1051
+ annot = HPDF_Page_CreateTextAnnot(page, rect, s, e);
1052
+
1053
+ return Data_Wrap_Struct (rb_cHPDFAnnotation, 0, 0, annot);
1054
+ }
1055
+
1056
+
1057
+ static VALUE
1058
+ hpdf_page_create_link_annot (VALUE obj, VALUE left, VALUE bottom, VALUE right, VALUE top, VALUE dest)
1059
+ {
1060
+ HPDF_Page page;
1061
+ HPDF_Rect rect;
1062
+ HPDF_Destination d = NULL;
1063
+ HPDF_Annotation annot;
1064
+
1065
+ if (HPDF_StrCmp(rb_obj_classname(dest), "HPDFDestination") == 0)
1066
+ Data_Get_Struct(dest, HPDF_Array_Rec, d);
1067
+
1068
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1069
+ rect.left = NUM2INT(left);
1070
+ rect.bottom = NUM2INT(bottom);
1071
+ rect.right = NUM2INT(right);
1072
+ rect.top = NUM2INT(top);
1073
+
1074
+ HPDF_PTRACE(("hpdf_page_create_link_annot page=%p\n", page));
1075
+
1076
+ annot = HPDF_Page_CreateLinkAnnot(page, rect, d);
1077
+
1078
+ return Data_Wrap_Struct (rb_cHPDFAnnotation, 0, 0, annot);
1079
+ }
1080
+
1081
+ static VALUE
1082
+ hpdf_page_create_uri_link_annot (VALUE obj, VALUE left, VALUE bottom, VALUE right, VALUE top, VALUE uri)
1083
+ {
1084
+ HPDF_Page page;
1085
+ HPDF_Rect rect;
1086
+ const char *s;
1087
+ HPDF_Annotation annot;
1088
+
1089
+ s = STR2CSTR(uri);
1090
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1091
+ rect.left = NUM2INT(left);
1092
+ rect.bottom = NUM2INT(bottom);
1093
+ rect.right = NUM2INT(right);
1094
+ rect.top = NUM2INT(top);
1095
+
1096
+ HPDF_PTRACE(("hpdf_page_create_uri_link_annot page=%p\n", page));
1097
+
1098
+ annot = HPDF_Page_CreateURILinkAnnot(page, rect, s);
1099
+
1100
+ return Data_Wrap_Struct (rb_cHPDFAnnotation, 0, 0, annot);
1101
+ }
1102
+
1103
+ static VALUE
1104
+ hpdf_linkannot_set_highlight_mode (VALUE obj, VALUE mode)
1105
+ {
1106
+ HPDF_Annotation annot;
1107
+ HPDF_STATUS ret;
1108
+ HPDF_INT i;
1109
+
1110
+ Data_Get_Struct(obj, HPDF_Dict_Rec, annot);
1111
+ i = NUM2INT(mode);
1112
+
1113
+ HPDF_PTRACE(("hpdf_linkannot_set_highlight_mode annot=%p\n", annot));
1114
+
1115
+ ret = HPDF_LinkAnnot_SetHighlightMode(annot, i);
1116
+
1117
+ return INT2NUM(ret);
1118
+ }
1119
+
1120
+ static VALUE
1121
+ hpdf_linkannot_set_border_style (VALUE obj, VALUE width, VALUE dash_on, VALUE dash_off)
1122
+ {
1123
+ HPDF_Annotation annot;
1124
+ HPDF_STATUS ret;
1125
+ HPDF_INT i1;
1126
+ HPDF_INT i2;
1127
+ HPDF_INT i3;
1128
+
1129
+ Data_Get_Struct(obj, HPDF_Dict_Rec, annot);
1130
+ i1 = NUM2INT(width);
1131
+ i2 = NUM2INT(dash_on);
1132
+ i3 = NUM2INT(dash_off);
1133
+
1134
+ HPDF_PTRACE(("hpdf_linkannot_set_border_style annot=%p\n", annot));
1135
+
1136
+ ret = HPDF_LinkAnnot_SetBorderStyle(annot, i1, i2, i3);
1137
+
1138
+ return INT2NUM(ret);
1139
+ }
1140
+
1141
+ static VALUE
1142
+ hpdf_textannot_set_icon (VALUE obj, VALUE icon)
1143
+ {
1144
+ HPDF_Annotation annot;
1145
+ HPDF_STATUS ret;
1146
+ HPDF_INT i;
1147
+
1148
+ Data_Get_Struct(obj, HPDF_Dict_Rec, annot);
1149
+ i = NUM2INT(icon);
1150
+
1151
+ HPDF_PTRACE(("hpdf_textannot_set_highlight_mode annot=%p\n", annot));
1152
+
1153
+ ret = HPDF_TextAnnot_SetIcon(annot, i);
1154
+
1155
+ return INT2NUM(ret);
1156
+ }
1157
+
1158
+ static VALUE
1159
+ hpdf_textannot_set_opened (VALUE obj, VALUE opened)
1160
+ {
1161
+ HPDF_Annotation annot;
1162
+ HPDF_STATUS ret;
1163
+ HPDF_INT i;
1164
+
1165
+ Data_Get_Struct(obj, HPDF_Dict_Rec, annot);
1166
+ i = NUM2INT(opened);
1167
+
1168
+ HPDF_PTRACE(("hpdf_textannot_set_opened annot=%p\n", annot));
1169
+
1170
+ ret = HPDF_TextAnnot_SetOpened(annot, i);
1171
+
1172
+ return INT2NUM(ret);
1173
+ }
1174
+
1175
+ static VALUE
1176
+ hpdf_load_png_image_from_file (VALUE obj, VALUE file_name)
1177
+ {
1178
+ HPDF_Doc pdf;
1179
+ HPDF_Image image;
1180
+ const char *s;
1181
+
1182
+ s = STR2CSTR(file_name);
1183
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1184
+
1185
+ HPDF_PTRACE(("hpdf_load_png_image_from_file pdf=%p\n", pdf));
1186
+
1187
+ image = HPDF_LoadPngImageFromFile(pdf, s);
1188
+
1189
+ return Data_Wrap_Struct (rb_cHPDFImage, 0, 0, image);
1190
+ }
1191
+
1192
+
1193
+ static VALUE
1194
+ hpdf_load_jpeg_image_from_file (VALUE obj, VALUE file_name)
1195
+ {
1196
+ HPDF_Doc pdf;
1197
+ HPDF_Image image;
1198
+ const char *s;
1199
+
1200
+ s = STR2CSTR(file_name);
1201
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1202
+
1203
+ HPDF_PTRACE(("hpdf_load_png_image_from_file pdf=%p\n", pdf));
1204
+
1205
+ image = HPDF_LoadJpegImageFromFile(pdf, s);
1206
+
1207
+ return Data_Wrap_Struct (rb_cHPDFImage, 0, 0, image);
1208
+ }
1209
+
1210
+
1211
+ static VALUE
1212
+ hpdf_image_get_size (VALUE obj)
1213
+ {
1214
+ HPDF_Image image;
1215
+ HPDF_Point p;
1216
+ VALUE ret;
1217
+ VALUE x;
1218
+ VALUE y;
1219
+
1220
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1221
+
1222
+ HPDF_PTRACE(("hpdf_image_get_size image=%p\n", image));
1223
+
1224
+ p = HPDF_Image_GetSize(image);
1225
+
1226
+ ret = rb_ary_new();
1227
+ x = rb_float_new(p.x);
1228
+ y = rb_float_new(p.y);
1229
+ rb_ary_push(ret, x);
1230
+ rb_ary_push(ret, y);
1231
+
1232
+ return ret;
1233
+ }
1234
+
1235
+
1236
+ static VALUE
1237
+ hpdf_image_get_width (VALUE obj)
1238
+ {
1239
+ HPDF_Image image;
1240
+ HPDF_UINT i;
1241
+
1242
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1243
+
1244
+ HPDF_PTRACE(("hpdf_image_get_width image=%p\n", image));
1245
+
1246
+ i = HPDF_Image_GetWidth(image);
1247
+
1248
+ return INT2NUM(i);
1249
+ }
1250
+
1251
+
1252
+ static VALUE
1253
+ hpdf_image_get_height (VALUE obj)
1254
+ {
1255
+ HPDF_Image image;
1256
+ HPDF_UINT i;
1257
+
1258
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1259
+
1260
+ HPDF_PTRACE(("hpdf_image_get_height image=%p\n", image));
1261
+
1262
+ i = HPDF_Image_GetHeight(image);
1263
+
1264
+ return INT2NUM(i);
1265
+ }
1266
+
1267
+ static VALUE
1268
+ hpdf_image_get_bits_per_component (VALUE obj)
1269
+ {
1270
+ HPDF_Image image;
1271
+ HPDF_UINT i;
1272
+
1273
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1274
+
1275
+ HPDF_PTRACE(("hpdf_encoder_get_unicode image=%p\n", image));
1276
+
1277
+ i = HPDF_Image_GetBitsPerComponent(image);
1278
+
1279
+ return INT2NUM(i);
1280
+ }
1281
+
1282
+ static VALUE
1283
+ hpdf_image_get_color_space (VALUE obj)
1284
+ {
1285
+ const char* ret;
1286
+ HPDF_Image image;
1287
+
1288
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1289
+
1290
+ HPDF_PTRACE(("hpdf_image_get_color_space image=%p\n", image));
1291
+
1292
+ ret = HPDF_Image_GetColorSpace(image);
1293
+
1294
+ return rb_str_new2(ret);
1295
+ }
1296
+
1297
+ static VALUE
1298
+ hpdf_image_set_color_mask (VALUE obj, VALUE rmin, VALUE rmax, VALUE gmin, VALUE gmax, VALUE bmin, VALUE bmax)
1299
+ {
1300
+ HPDF_Image image;
1301
+ HPDF_STATUS ret;
1302
+ HPDF_INT i1;
1303
+ HPDF_INT i2;
1304
+ HPDF_INT i3;
1305
+ HPDF_INT i4;
1306
+ HPDF_INT i5;
1307
+ HPDF_INT i6;
1308
+
1309
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1310
+ i1 = NUM2INT(rmin);
1311
+ i2 = NUM2INT(rmax);
1312
+ i3 = NUM2INT(gmin);
1313
+ i4 = NUM2INT(gmax);
1314
+ i5 = NUM2INT(bmin);
1315
+ i6 = NUM2INT(bmax);
1316
+
1317
+ HPDF_PTRACE(("hpdf_image_set_color_mask image=%p\n", image));
1318
+
1319
+ ret = HPDF_Image_SetColorMask(image, i1, i2, i3, i4, i5, i6);
1320
+
1321
+ return INT2NUM(ret);
1322
+ }
1323
+
1324
+ static VALUE
1325
+ hpdf_image_set_mask_image (VALUE obj, VALUE mask_image)
1326
+ {
1327
+ HPDF_Image image1;
1328
+ HPDF_Image image2;
1329
+ HPDF_STATUS ret;
1330
+
1331
+ if (HPDF_StrCmp(rb_obj_classname(mask_image), "HPDFImage") != 0)
1332
+ rb_raise(rb_eHPDFError, "invalid argument(1).");
1333
+
1334
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image1);
1335
+ Data_Get_Struct(mask_image, HPDF_Dict_Rec, image2);
1336
+
1337
+ HPDF_PTRACE(("hpdf_image_set_mask_image image=%p\n", image1));
1338
+
1339
+ ret = HPDF_Image_SetMaskImage(image1, image2);
1340
+
1341
+ return INT2NUM(ret);
1342
+ }
1343
+
1344
+ static VALUE
1345
+ hpdf_set_info_attr (VALUE obj, VALUE type, VALUE value)
1346
+ {
1347
+ HPDF_Doc pdf;
1348
+ const char *s;
1349
+ HPDF_INT i;
1350
+ HPDF_STATUS ret;
1351
+
1352
+ i = NUM2INT(type);
1353
+ s = STR2CSTR(value);
1354
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1355
+
1356
+ HPDF_PTRACE(("hpdf_set_info_attr pdf=%p\n", pdf));
1357
+
1358
+ ret = HPDF_SetInfoAttr(pdf, i, s);
1359
+
1360
+ return INT2NUM(ret);
1361
+ }
1362
+
1363
+ static VALUE
1364
+ hpdf_get_info_attr (VALUE obj, VALUE type)
1365
+ {
1366
+ HPDF_Doc pdf;
1367
+ HPDF_INT i;
1368
+ const char *ret;
1369
+
1370
+ i = NUM2INT(type);
1371
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1372
+
1373
+ HPDF_PTRACE(("hpdf_get_info_attr pdf=%p\n", pdf));
1374
+
1375
+ ret = HPDF_GetInfoAttr(pdf, i);
1376
+
1377
+ return rb_str_new2(ret);
1378
+ }
1379
+
1380
+ static VALUE
1381
+ hpdf_set_info_date_attr (VALUE obj, VALUE type, VALUE year, VALUE month, VALUE day, VALUE hour, VALUE minutes, VALUE seconds, VALUE ind, VALUE off_hour, VALUE off_minuttes)
1382
+ {
1383
+ HPDF_Doc pdf;
1384
+ const char *s;
1385
+ HPDF_INT tp;
1386
+ HPDF_Date dt;
1387
+ HPDF_STATUS ret;
1388
+
1389
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1390
+ s = STR2CSTR(ind);
1391
+ if (HPDF_StrLen(s, -1) != 1 || s[0] != '+' || s[0] != '-' || s[0] != 'Z')
1392
+ rb_raise(rb_eHPDFError, "The eighth argument must be either of '+','-','Z',' '.");
1393
+
1394
+ tp = NUM2INT(type);
1395
+ dt.year = NUM2INT(year);
1396
+ dt.month = NUM2INT(month);
1397
+ dt.day = NUM2INT(day);
1398
+ dt.hour = NUM2INT(hour);
1399
+ dt.minutes = NUM2INT(minutes);
1400
+ dt.seconds = NUM2INT(seconds);
1401
+ dt.ind = s[0];
1402
+ dt.off_hour = NUM2INT(off_hour);
1403
+ dt.off_minutes = NUM2INT(off_minuttes);
1404
+
1405
+ HPDF_PTRACE(("hpdf_set_info_attr pdf=%p\n", pdf));
1406
+
1407
+ ret = HPDF_SetInfoDateAttr(pdf, tp, dt);
1408
+
1409
+ return INT2NUM(ret);
1410
+ }
1411
+
1412
+ static VALUE
1413
+ hpdf_set_password (VALUE obj, VALUE owner_passwd, VALUE user_passwd)
1414
+ {
1415
+ HPDF_Doc pdf;
1416
+ const char *s1;
1417
+ const char *s2;
1418
+ HPDF_STATUS ret;
1419
+
1420
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1421
+ s1 = STR2CSTR(owner_passwd);
1422
+ s2 = STR2CSTR(user_passwd);
1423
+
1424
+ HPDF_PTRACE(("hpdf_set_password pdf=%p\n", pdf));
1425
+
1426
+ ret = HPDF_SetPassword(pdf, s1, s2);
1427
+
1428
+ return INT2NUM(ret);
1429
+ }
1430
+
1431
+ static VALUE
1432
+ hpdf_set_permission (VALUE obj, VALUE permission)
1433
+ {
1434
+ HPDF_Doc pdf;
1435
+ HPDF_INT i;
1436
+ HPDF_STATUS ret;
1437
+
1438
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1439
+ i = NUM2INT(permission);
1440
+
1441
+ HPDF_PTRACE(("hpdf_set_permission pdf=%p\n", pdf));
1442
+
1443
+ ret = HPDF_SetPermission(pdf, i);
1444
+
1445
+ return INT2NUM(ret);
1446
+ }
1447
+
1448
+ static VALUE
1449
+ hpdf_set_encryption_mode (VALUE obj, VALUE mode, VALUE key_len)
1450
+ {
1451
+ HPDF_Doc pdf;
1452
+ HPDF_INT i1;
1453
+ HPDF_INT i2;
1454
+ HPDF_STATUS ret;
1455
+
1456
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1457
+ i1 = NUM2INT(mode);
1458
+ i2 = NUM2INT(key_len);
1459
+
1460
+ HPDF_PTRACE(("hpdf_set_encryption_mode pdf=%p\n", pdf));
1461
+
1462
+ ret = HPDF_SetEncryptionMode(pdf, i1, i2);
1463
+
1464
+ return INT2NUM(ret);
1465
+ }
1466
+
1467
+ static VALUE
1468
+ hpdf_set_compression_mode (VALUE obj, VALUE mode)
1469
+ {
1470
+ HPDF_Doc pdf;
1471
+ HPDF_INT i;
1472
+ HPDF_STATUS ret;
1473
+
1474
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1475
+ i = NUM2INT(mode);
1476
+
1477
+ HPDF_PTRACE(("hpdf_set_compression_mode pdf=%p\n", pdf));
1478
+
1479
+ ret = HPDF_SetCompressionMode(pdf, i);
1480
+
1481
+ return INT2NUM(ret);
1482
+ }
1483
+
1484
+
1485
+ static VALUE
1486
+ hpdf_page_text_width (VALUE obj, VALUE text)
1487
+ {
1488
+ HPDF_Page page;
1489
+ HPDF_REAL f;
1490
+ const char *s;
1491
+
1492
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1493
+ s = STR2CSTR(text);
1494
+
1495
+ HPDF_PTRACE(("hpdf_page_text_width page=%p\n", page));
1496
+
1497
+ f = HPDF_Page_TextWidth(page, s);
1498
+
1499
+ return rb_float_new(f);
1500
+ }
1501
+
1502
+ static VALUE
1503
+ hpdf_page_measure_text (VALUE obj, VALUE text, VALUE width, VALUE wordwrap)
1504
+ {
1505
+ HPDF_Page page;
1506
+ const char *s;
1507
+ HPDF_INT i1;
1508
+ HPDF_INT i2;
1509
+ HPDF_INT ret;
1510
+
1511
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1512
+ s = STR2CSTR(text);
1513
+ i1 = NUM2INT(width);
1514
+ i2 = NUM2INT(wordwrap);
1515
+
1516
+ HPDF_PTRACE(("hpdf_page_test_width page=%p\n", page));
1517
+
1518
+ ret = HPDF_Page_MeasureText(page, s, i1, i2, NULL);
1519
+
1520
+ return INT2NUM(ret);
1521
+ }
1522
+
1523
+
1524
+ static VALUE
1525
+ hpdf_create_ext_gstate (VALUE obj)
1526
+ {
1527
+ HPDF_Doc pdf;
1528
+ HPDF_ExtGState gstate;
1529
+
1530
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1531
+
1532
+ HPDF_PTRACE(("hpdf_create_ext_gstate pdf=%p\n", pdf));
1533
+
1534
+ gstate = HPDF_CreateExtGState(pdf);
1535
+
1536
+ return Data_Wrap_Struct (rb_cHPDFExtGState, 0, 0, gstate);
1537
+ }
1538
+
1539
+
1540
+ static VALUE
1541
+ hpdf_ext_gstate_set_alpha_stroke (VALUE obj, VALUE value)
1542
+ {
1543
+ HPDF_ExtGState gstate;
1544
+ HPDF_STATUS ret;
1545
+ HPDF_REAL f;
1546
+
1547
+ f = NUM2DBL(value);
1548
+ Data_Get_Struct(obj, HPDF_Dict_Rec, gstate);
1549
+
1550
+ HPDF_PTRACE(("hpdf_ext_gstate_set_alpha_stroke page=%p\n", gstate));
1551
+
1552
+ ret = HPDF_ExtGState_SetAlphaStroke(gstate, f);
1553
+
1554
+ return INT2NUM(ret);
1555
+ }
1556
+
1557
+
1558
+ static VALUE
1559
+ hpdf_ext_gstate_set_alpha_fill (VALUE obj, VALUE value)
1560
+ {
1561
+ HPDF_ExtGState gstate;
1562
+ HPDF_STATUS ret;
1563
+ HPDF_REAL f;
1564
+
1565
+ f = NUM2DBL(value);
1566
+ Data_Get_Struct(obj, HPDF_Dict_Rec, gstate);
1567
+
1568
+ HPDF_PTRACE(("hpdf_ext_gstate_set_alpha_fill page=%p\n", gstate));
1569
+
1570
+ ret = HPDF_ExtGState_SetAlphaFill(gstate, f);
1571
+
1572
+ return INT2NUM(ret);
1573
+ }
1574
+
1575
+
1576
+ static VALUE
1577
+ hpdf_ext_gstate_set_blend_mode (VALUE obj, VALUE mode)
1578
+ {
1579
+ HPDF_ExtGState gstate;
1580
+ HPDF_STATUS ret;
1581
+ HPDF_INT i;
1582
+
1583
+ i = NUM2INT(mode);
1584
+ Data_Get_Struct(obj, HPDF_Dict_Rec, gstate);
1585
+
1586
+ HPDF_PTRACE(("hpdf_ext_gstate_set_blend_mode page=%p\n", gstate));
1587
+
1588
+ ret = HPDF_ExtGState_SetBlendMode(gstate, i);
1589
+
1590
+ return INT2NUM(ret);
1591
+ }
1592
+
1593
+
1594
+ static VALUE
1595
+ hpdf_page_set_ext_gstate (VALUE obj, VALUE gstate)
1596
+ {
1597
+ HPDF_Page page;
1598
+ HPDF_STATUS ret;
1599
+ HPDF_ExtGState gs;
1600
+
1601
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1602
+ Data_Get_Struct(gstate, HPDF_Dict_Rec, gs);
1603
+
1604
+ HPDF_PTRACE(("hpdf_page_set_ext_gstate page=%p\n", page));
1605
+
1606
+ ret = HPDF_Page_SetExtGState(page, gs);
1607
+
1608
+ return INT2NUM(ret);
1609
+ }
1610
+
1611
+
1612
+ static VALUE
1613
+ hpdf_page_get_width (VALUE obj)
1614
+ {
1615
+ HPDF_Page page;
1616
+ HPDF_REAL f;
1617
+
1618
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1619
+
1620
+ HPDF_PTRACE(("hpdf_page_get_width page=%p\n", page));
1621
+
1622
+ f = HPDF_Page_GetWidth(page);
1623
+
1624
+ return rb_float_new(f);
1625
+ }
1626
+
1627
+ static VALUE
1628
+ hpdf_page_get_height (VALUE obj)
1629
+ {
1630
+ HPDF_Page page;
1631
+ HPDF_REAL f;
1632
+
1633
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1634
+
1635
+ HPDF_PTRACE(("hpdf_page_get_height page=%p\n", page));
1636
+
1637
+ f = HPDF_Page_GetHeight(page);
1638
+
1639
+ return rb_float_new(f);
1640
+ }
1641
+
1642
+ static VALUE
1643
+ hpdf_page_get_gmode (VALUE obj)
1644
+ {
1645
+ HPDF_Page page;
1646
+ HPDF_UINT16 ret;
1647
+
1648
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1649
+
1650
+ HPDF_PTRACE(("hpdf_page_get_gmode page=%p\n", page));
1651
+
1652
+ ret = HPDF_Page_GetGMode(page);
1653
+
1654
+ return INT2NUM(ret);
1655
+ }
1656
+
1657
+ static VALUE
1658
+ hpdf_page_get_current_pos (VALUE obj)
1659
+ {
1660
+ HPDF_Page page;
1661
+ HPDF_Point p;
1662
+ VALUE ret;
1663
+ VALUE x;
1664
+ VALUE y;
1665
+
1666
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1667
+
1668
+ HPDF_PTRACE(("hpdf_page_get_current_pos page=%p\n", page));
1669
+
1670
+ p = HPDF_Page_GetCurrentPos(page);
1671
+
1672
+ ret = rb_ary_new();
1673
+ x = rb_float_new(p.x);
1674
+ y = rb_float_new(p.y);
1675
+ rb_ary_push(ret, x);
1676
+ rb_ary_push(ret, y);
1677
+
1678
+ return ret;
1679
+ }
1680
+
1681
+ static VALUE
1682
+ hpdf_page_get_current_text_pos (VALUE obj)
1683
+ {
1684
+ HPDF_Page page;
1685
+ HPDF_Point p;
1686
+ VALUE ret;
1687
+ VALUE x;
1688
+ VALUE y;
1689
+
1690
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1691
+
1692
+ HPDF_PTRACE(("hpdf_page_get_current_text_pos page=%p\n", page));
1693
+
1694
+ p = HPDF_Page_GetCurrentTextPos(page);
1695
+
1696
+ ret = rb_ary_new();
1697
+ x = rb_float_new(p.x);
1698
+ y = rb_float_new(p.y);
1699
+ rb_ary_push(ret, x);
1700
+ rb_ary_push(ret, y);
1701
+
1702
+ return ret;
1703
+ }
1704
+
1705
+ static VALUE
1706
+ hpdf_page_get_current_font (VALUE obj)
1707
+ {
1708
+ HPDF_Page page;
1709
+ HPDF_Font font;
1710
+
1711
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1712
+
1713
+ HPDF_PTRACE(("hpdf_page_get_current_font page=%p\n", page));
1714
+
1715
+ font = HPDF_Page_GetCurrentFont(page);
1716
+
1717
+ return Data_Wrap_Struct (rb_cHPDFFont, 0, 0, font);
1718
+ }
1719
+
1720
+ static VALUE
1721
+ hpdf_font_get_font_name (VALUE obj)
1722
+ {
1723
+ HPDF_Font font;
1724
+ const char* font_name;
1725
+
1726
+ Data_Get_Struct(obj, HPDF_Dict_Rec, font);
1727
+
1728
+ HPDF_PTRACE(("hpdf_font_get_font_name font=%p\n", font));
1729
+
1730
+ font_name = HPDF_Font_GetFontName(font);
1731
+
1732
+ return rb_str_new2(font_name);
1733
+ }
1734
+
1735
+ static VALUE
1736
+ hpdf_font_get_encoding_name (VALUE obj)
1737
+ {
1738
+ HPDF_Font font;
1739
+ const char* encoding_name;
1740
+
1741
+ Data_Get_Struct(obj, HPDF_Dict_Rec, font);
1742
+
1743
+ HPDF_PTRACE(("hpdf_font_get_encoding_name font=%p\n", font));
1744
+
1745
+ encoding_name = HPDF_Font_GetEncodingName(font);
1746
+
1747
+ return rb_str_new2(encoding_name);
1748
+ }
1749
+
1750
+ static VALUE
1751
+ hpdf_font_get_unicode_width (VALUE obj, VALUE code)
1752
+ {
1753
+ HPDF_Font font;
1754
+ HPDF_UINT i;
1755
+ HPDF_INT ret;
1756
+
1757
+ Data_Get_Struct(obj, HPDF_Dict_Rec, font);
1758
+ i = NUM2INT(code);
1759
+
1760
+ HPDF_PTRACE(("hpdf_font_get_unicode_width font=%p\n", font));
1761
+
1762
+ ret = HPDF_Font_GetUnicodeWidth(font, i);
1763
+
1764
+ return INT2NUM(ret);
1765
+ }
1766
+
1767
+ static VALUE
1768
+ hpdf_font_get_bbox (VALUE obj)
1769
+ {
1770
+ HPDF_Font font;
1771
+ HPDF_Rect rect;
1772
+ VALUE ret;
1773
+ VALUE left;
1774
+ VALUE bottom;
1775
+ VALUE right;
1776
+ VALUE top;
1777
+
1778
+ Data_Get_Struct(obj, HPDF_Dict_Rec, font);
1779
+
1780
+ HPDF_PTRACE(("hpdf_font_get_bbox font=%p\n", font));
1781
+
1782
+ rect = HPDF_Font_GetBBox(font);
1783
+
1784
+ ret = rb_ary_new();
1785
+ left = rb_float_new(rect.left);
1786
+ bottom = rb_float_new(rect.bottom);
1787
+ right = rb_float_new(rect.right);
1788
+ top = rb_float_new(rect.top);
1789
+ rb_ary_push(ret, left);
1790
+ rb_ary_push(ret, bottom);
1791
+ rb_ary_push(ret, right);
1792
+ rb_ary_push(ret, top);
1793
+
1794
+ return ret;
1795
+ }
1796
+
1797
+ static VALUE
1798
+ hpdf_font_get_ascent (VALUE obj)
1799
+ {
1800
+ HPDF_Font font;
1801
+ HPDF_INT i;
1802
+
1803
+ Data_Get_Struct(obj, HPDF_Dict_Rec, font);
1804
+
1805
+ HPDF_PTRACE(("hpdf_font_get_ascent font=%p\n", font));
1806
+
1807
+ i = HPDF_Font_GetAscent(font);
1808
+
1809
+ return NUM2INT(i);
1810
+ }
1811
+
1812
+ static VALUE
1813
+ hpdf_font_get_descent (VALUE obj)
1814
+ {
1815
+ HPDF_Font font;
1816
+ HPDF_INT i;
1817
+
1818
+ Data_Get_Struct(obj, HPDF_Dict_Rec, font);
1819
+
1820
+ HPDF_PTRACE(("hpdf_font_get_descent font=%p\n", font));
1821
+
1822
+ i = HPDF_Font_GetDescent(font);
1823
+
1824
+ return NUM2INT(i);
1825
+ }
1826
+
1827
+ static VALUE
1828
+ hpdf_font_get_x_height (VALUE obj)
1829
+ {
1830
+ HPDF_Font font;
1831
+ HPDF_UINT i;
1832
+
1833
+ Data_Get_Struct(obj, HPDF_Dict_Rec, font);
1834
+
1835
+ HPDF_PTRACE(("hpdf_font_get_x_height font=%p\n", font));
1836
+
1837
+ i = HPDF_Font_GetXHeight(font);
1838
+
1839
+ return NUM2INT(i);
1840
+ }
1841
+
1842
+ static VALUE
1843
+ hpdf_font_get_cap_height (VALUE obj)
1844
+ {
1845
+ HPDF_Font font;
1846
+ HPDF_UINT i;
1847
+
1848
+ Data_Get_Struct(obj, HPDF_Dict_Rec, font);
1849
+
1850
+ HPDF_PTRACE(("hpdf_font_get_cap_height font=%p\n", font));
1851
+
1852
+ i = HPDF_Font_GetCapHeight(font);
1853
+
1854
+ return NUM2INT(i);
1855
+ }
1856
+
1857
+ static VALUE
1858
+ hpdf_page_get_current_font_size (VALUE obj)
1859
+ {
1860
+ HPDF_Page page;
1861
+ HPDF_REAL f;
1862
+
1863
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1864
+
1865
+ HPDF_PTRACE(("hpdf_page_get_current_font_size page=%p\n", page));
1866
+
1867
+ f = HPDF_Page_GetCurrentFontSize(page);
1868
+
1869
+ return rb_float_new(f);
1870
+ }
1871
+
1872
+ static VALUE
1873
+ hpdf_page_get_trans_matrix (VALUE obj)
1874
+ {
1875
+ HPDF_Page page;
1876
+ HPDF_TransMatrix tm;
1877
+ VALUE ret;
1878
+ VALUE a;
1879
+ VALUE b;
1880
+ VALUE c;
1881
+ VALUE d;
1882
+ VALUE x;
1883
+ VALUE y;
1884
+
1885
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1886
+
1887
+ HPDF_PTRACE(("hpdf_page_get_trans_matrix page=%p\n", page));
1888
+
1889
+ tm = HPDF_Page_GetTransMatrix(page);
1890
+
1891
+ ret = rb_ary_new();
1892
+ a = rb_float_new(tm.a);
1893
+ b = rb_float_new(tm.b);
1894
+ c = rb_float_new(tm.c);
1895
+ d = rb_float_new(tm.d);
1896
+ x = rb_float_new(tm.x);
1897
+ y = rb_float_new(tm.y);
1898
+ rb_ary_push(ret, a);
1899
+ rb_ary_push(ret, b);
1900
+ rb_ary_push(ret, c);
1901
+ rb_ary_push(ret, d);
1902
+ rb_ary_push(ret, x);
1903
+ rb_ary_push(ret, y);
1904
+
1905
+ return ret;
1906
+ }
1907
+
1908
+ static VALUE
1909
+ hpdf_page_get_line_width (VALUE obj)
1910
+ {
1911
+ HPDF_Page page;
1912
+ HPDF_REAL f;
1913
+
1914
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1915
+
1916
+ HPDF_PTRACE(("hpdf_page_get_line_width page=%p\n", page));
1917
+
1918
+ f = HPDF_Page_GetLineWidth(page);
1919
+
1920
+ return rb_float_new(f);
1921
+ }
1922
+
1923
+
1924
+ static VALUE
1925
+ hpdf_page_get_line_cap (VALUE obj)
1926
+ {
1927
+ HPDF_Page page;
1928
+ HPDF_INT i;
1929
+
1930
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1931
+
1932
+ HPDF_PTRACE(("hpdf_page_get_line_cap page=%p\n", page));
1933
+
1934
+ i = HPDF_Page_GetLineCap(page);
1935
+
1936
+ return NUM2INT(i);
1937
+ }
1938
+
1939
+ static VALUE
1940
+ hpdf_page_get_line_join (VALUE obj)
1941
+ {
1942
+ HPDF_Page page;
1943
+ HPDF_INT i;
1944
+
1945
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1946
+
1947
+ HPDF_PTRACE(("hpdf_page_get_line_join page=%p\n", page));
1948
+
1949
+ i = HPDF_Page_GetLineJoin(page);
1950
+
1951
+ return NUM2INT(i);
1952
+ }
1953
+
1954
+ static VALUE
1955
+ hpdf_page_get_miter_limit (VALUE obj)
1956
+ {
1957
+ HPDF_Page page;
1958
+ HPDF_REAL f;
1959
+
1960
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1961
+
1962
+ HPDF_PTRACE(("hpdf_page_get_miter_limit page=%p\n", page));
1963
+
1964
+ f = HPDF_Page_GetMiterLimit(page);
1965
+
1966
+ return rb_float_new(f);
1967
+ }
1968
+
1969
+ static VALUE
1970
+ hpdf_page_get_dash (VALUE obj)
1971
+ {
1972
+ HPDF_Page page;
1973
+ HPDF_DashMode dm;
1974
+ VALUE ret;
1975
+ VALUE num_ptn;
1976
+ VALUE phase;
1977
+ HPDF_INT i;
1978
+
1979
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1980
+
1981
+ HPDF_PTRACE(("hpdf_page_get_dash page=%p\n", page));
1982
+
1983
+ dm = HPDF_Page_GetDash(page);
1984
+
1985
+ ret = rb_ary_new();
1986
+ num_ptn = NUM2INT(dm.num_ptn);
1987
+ rb_ary_push(ret, num_ptn);
1988
+
1989
+ for (i = 0; i < dm.num_ptn; i++) {
1990
+ VALUE ptn = NUM2INT(dm.ptn[i]);
1991
+ rb_ary_push(ret, ptn);
1992
+ }
1993
+
1994
+ phase = NUM2INT(dm.phase);
1995
+ rb_ary_push(ret, phase);
1996
+
1997
+ return ret;
1998
+ }
1999
+
2000
+ static VALUE
2001
+ hpdf_page_get_flat (VALUE obj)
2002
+ {
2003
+ HPDF_Page page;
2004
+ HPDF_REAL f;
2005
+
2006
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2007
+
2008
+ HPDF_PTRACE(("hpdf_page_get_flat page=%p\n", page));
2009
+
2010
+ f = HPDF_Page_GetFlat(page);
2011
+
2012
+ return rb_float_new(f);
2013
+ }
2014
+
2015
+ static VALUE
2016
+ hpdf_page_get_char_space (VALUE obj)
2017
+ {
2018
+ HPDF_Page page;
2019
+ HPDF_REAL f;
2020
+
2021
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2022
+
2023
+ HPDF_PTRACE(("hpdf_page_get_char_space page=%p\n", page));
2024
+
2025
+ f = HPDF_Page_GetCharSpace(page);
2026
+
2027
+ return rb_float_new(f);
2028
+ }
2029
+
2030
+ static VALUE
2031
+ hpdf_page_get_word_space (VALUE obj)
2032
+ {
2033
+ HPDF_Page page;
2034
+ HPDF_REAL f;
2035
+
2036
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2037
+
2038
+ HPDF_PTRACE(("hpdf_page_get_word_space page=%p\n", page));
2039
+
2040
+ f = HPDF_Page_GetWordSpace(page);
2041
+
2042
+ return rb_float_new(f);
2043
+ }
2044
+
2045
+ static VALUE
2046
+ hpdf_page_get_horizontal_scalling (VALUE obj)
2047
+ {
2048
+ HPDF_Page page;
2049
+ HPDF_REAL f;
2050
+
2051
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2052
+
2053
+ HPDF_PTRACE(("hpdf_page_get_horizontal_scalling page=%p\n", page));
2054
+
2055
+ f = HPDF_Page_GetHorizontalScalling(page);
2056
+
2057
+ return rb_float_new(f);
2058
+ }
2059
+
2060
+ static VALUE
2061
+ hpdf_page_get_text_leading (VALUE obj)
2062
+ {
2063
+ HPDF_Page page;
2064
+ HPDF_REAL f;
2065
+
2066
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2067
+
2068
+ HPDF_PTRACE(("hpdf_page_get_text_leading page=%p\n", page));
2069
+
2070
+ f = HPDF_Page_GetTextLeading(page);
2071
+
2072
+ return rb_float_new(f);
2073
+ }
2074
+
2075
+ static VALUE
2076
+ hpdf_page_get_text_rendering_mode (VALUE obj)
2077
+ {
2078
+ HPDF_Page page;
2079
+ HPDF_INT i;
2080
+
2081
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2082
+
2083
+ HPDF_PTRACE(("hpdf_page_get_text_rendering_mode page=%p\n", page));
2084
+
2085
+ i = HPDF_Page_GetTextRenderingMode(page);
2086
+
2087
+ return NUM2INT(i);
2088
+ }
2089
+
2090
+ static VALUE
2091
+ hpdf_page_get_text_raise (VALUE obj)
2092
+ {
2093
+ HPDF_Page page;
2094
+ HPDF_REAL f;
2095
+
2096
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2097
+
2098
+ HPDF_PTRACE(("hpdf_page_get_text_raise page=%p\n", page));
2099
+
2100
+ f = HPDF_Page_GetTextRaise(page);
2101
+
2102
+ return rb_float_new(f);
2103
+ }
2104
+
2105
+ static VALUE
2106
+ hpdf_page_get_rgb_fill (VALUE obj)
2107
+ {
2108
+ HPDF_Page page;
2109
+ HPDF_RGBColor c;
2110
+ VALUE ret;
2111
+ VALUE r;
2112
+ VALUE g;
2113
+ VALUE b;
2114
+
2115
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2116
+
2117
+ HPDF_PTRACE(("hpdf_page_get_rgb_fill page=%p\n", page));
2118
+
2119
+ c = HPDF_Page_GetRGBFill(page);
2120
+
2121
+ ret = rb_ary_new();
2122
+ r = rb_float_new(c.r);
2123
+ g = rb_float_new(c.g);
2124
+ b = rb_float_new(c.b);
2125
+ rb_ary_push(ret, r);
2126
+ rb_ary_push(ret, g);
2127
+ rb_ary_push(ret, b);
2128
+
2129
+ return ret;
2130
+ }
2131
+
2132
+ static VALUE
2133
+ hpdf_page_get_rgb_stroke (VALUE obj)
2134
+ {
2135
+ HPDF_Page page;
2136
+ HPDF_RGBColor col;
2137
+ VALUE ret;
2138
+ VALUE r;
2139
+ VALUE g;
2140
+ VALUE b;
2141
+
2142
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2143
+
2144
+ HPDF_PTRACE(("hpdf_page_get_rgb_stroke page=%p\n", page));
2145
+
2146
+ col = HPDF_Page_GetRGBStroke(page);
2147
+
2148
+ ret = rb_ary_new();
2149
+ r = rb_float_new(col.r);
2150
+ g = rb_float_new(col.g);
2151
+ b = rb_float_new(col.b);
2152
+ rb_ary_push(ret, r);
2153
+ rb_ary_push(ret, g);
2154
+ rb_ary_push(ret, b);
2155
+
2156
+ return ret;
2157
+ }
2158
+
2159
+ static VALUE
2160
+ hpdf_page_get_cmyk_fill (VALUE obj)
2161
+ {
2162
+ HPDF_Page page;
2163
+ HPDF_CMYKColor col;
2164
+ VALUE ret;
2165
+ VALUE c;
2166
+ VALUE m;
2167
+ VALUE y;
2168
+ VALUE k;
2169
+
2170
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2171
+
2172
+ HPDF_PTRACE(("hpdf_page_get_cmyk_fill page=%p\n", page));
2173
+
2174
+ col = HPDF_Page_GetCMYKFill(page);
2175
+
2176
+ ret = rb_ary_new();
2177
+ c = rb_float_new(col.c);
2178
+ m = rb_float_new(col.m);
2179
+ y = rb_float_new(col.y);
2180
+ k = rb_float_new(col.k);
2181
+ rb_ary_push(ret, c);
2182
+ rb_ary_push(ret, m);
2183
+ rb_ary_push(ret, y);
2184
+ rb_ary_push(ret, k);
2185
+
2186
+ return ret;
2187
+ }
2188
+
2189
+ static VALUE
2190
+ hpdf_page_get_cmyk_stroke (VALUE obj)
2191
+ {
2192
+ HPDF_Page page;
2193
+ HPDF_CMYKColor col;
2194
+ VALUE ret;
2195
+ VALUE c;
2196
+ VALUE m;
2197
+ VALUE y;
2198
+ VALUE k;
2199
+
2200
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2201
+
2202
+ HPDF_PTRACE(("hpdf_page_get_cmyk_stroke page=%p\n", page));
2203
+
2204
+ col = HPDF_Page_GetCMYKStroke(page);
2205
+
2206
+ ret = rb_ary_new();
2207
+ c = rb_float_new(col.c);
2208
+ m = rb_float_new(col.m);
2209
+ y = rb_float_new(col.y);
2210
+ k = rb_float_new(col.k);
2211
+ rb_ary_push(ret, c);
2212
+ rb_ary_push(ret, m);
2213
+ rb_ary_push(ret, y);
2214
+ rb_ary_push(ret, k);
2215
+
2216
+ return ret;
2217
+ }
2218
+
2219
+ static VALUE
2220
+ hpdf_page_get_gray_fill (VALUE obj)
2221
+ {
2222
+ HPDF_Page page;
2223
+ HPDF_REAL f;
2224
+
2225
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2226
+
2227
+ HPDF_PTRACE(("hpdf_page_get_gray_fill page=%p\n", page));
2228
+
2229
+ f = HPDF_Page_GetGrayFill(page);
2230
+
2231
+ return rb_float_new(f);
2232
+ }
2233
+
2234
+
2235
+ static VALUE
2236
+ hpdf_page_get_gray_stroke (VALUE obj)
2237
+ {
2238
+ HPDF_Page page;
2239
+ HPDF_REAL f;
2240
+
2241
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2242
+
2243
+ HPDF_PTRACE(("hpdf_page_get_gray_stroke page=%p\n", page));
2244
+
2245
+ f = HPDF_Page_GetGrayStroke(page);
2246
+
2247
+ return rb_float_new(f);
2248
+ }
2249
+
2250
+ static VALUE
2251
+ hpdf_page_get_stroking_color_space (VALUE obj)
2252
+ {
2253
+ HPDF_Page page;
2254
+ HPDF_INT i;
2255
+
2256
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2257
+
2258
+ HPDF_PTRACE(("hpdf_page_get_stroking_color_space page=%p\n", page));
2259
+
2260
+ i = HPDF_Page_GetStrokingColorSpace(page);
2261
+
2262
+ return NUM2INT(i);
2263
+ }
2264
+
2265
+ static VALUE
2266
+ hpdf_page_get_filling_color_space (VALUE obj)
2267
+ {
2268
+ HPDF_Page page;
2269
+ HPDF_INT i;
2270
+
2271
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2272
+
2273
+ HPDF_PTRACE(("hpdf_page_get_filling_color_space page=%p\n", page));
2274
+
2275
+ i = HPDF_Page_GetFillingColorSpace(page);
2276
+
2277
+ return NUM2INT(i);
2278
+ }
2279
+
2280
+ static VALUE
2281
+ hpdf_page_get_text_matrix (VALUE obj)
2282
+ {
2283
+ HPDF_Page page;
2284
+ HPDF_TransMatrix tm;
2285
+ VALUE ret;
2286
+ VALUE a;
2287
+ VALUE b;
2288
+ VALUE c;
2289
+ VALUE d;
2290
+ VALUE x;
2291
+ VALUE y;
2292
+
2293
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2294
+
2295
+ HPDF_PTRACE(("hpdf_page_get_text_matrix page=%p\n", page));
2296
+
2297
+ tm = HPDF_Page_GetTextMatrix(page);
2298
+
2299
+ ret = rb_ary_new();
2300
+ a = rb_float_new(tm.a);
2301
+ b = rb_float_new(tm.b);
2302
+ c = rb_float_new(tm.c);
2303
+ d = rb_float_new(tm.d);
2304
+ x = rb_float_new(tm.x);
2305
+ y = rb_float_new(tm.y);
2306
+ rb_ary_push(ret, a);
2307
+ rb_ary_push(ret, b);
2308
+ rb_ary_push(ret, c);
2309
+ rb_ary_push(ret, d);
2310
+ rb_ary_push(ret, x);
2311
+ rb_ary_push(ret, y);
2312
+
2313
+ return ret;
2314
+ }
2315
+
2316
+
2317
+ static VALUE
2318
+ hpdf_page_set_line_width (VALUE obj, VALUE line_width)
2319
+ {
2320
+ HPDF_Page page;
2321
+ HPDF_STATUS ret;
2322
+ HPDF_REAL f;
2323
+
2324
+ f = NUM2DBL(line_width);
2325
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2326
+
2327
+ HPDF_PTRACE(("hpdf_page_set_line_width page=%p\n", page));
2328
+
2329
+ ret = HPDF_Page_SetLineWidth(page, f);
2330
+
2331
+ return INT2NUM(ret);
2332
+ }
2333
+
2334
+ static VALUE
2335
+ hpdf_page_set_line_cap (VALUE obj, VALUE line_cap)
2336
+ {
2337
+ HPDF_Page page;
2338
+ HPDF_STATUS ret;
2339
+ HPDF_INT i;
2340
+
2341
+ i = NUM2INT(line_cap);
2342
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2343
+
2344
+ HPDF_PTRACE(("hpdf_page_set_line_cap page=%p\n", page));
2345
+
2346
+ ret = HPDF_Page_SetLineCap(page, i);
2347
+
2348
+ return INT2NUM(ret);
2349
+ }
2350
+
2351
+ static VALUE
2352
+ hpdf_page_set_line_join (VALUE obj, VALUE line_join)
2353
+ {
2354
+ HPDF_Page page;
2355
+ HPDF_STATUS ret;
2356
+ HPDF_REAL f;
2357
+
2358
+ f = NUM2DBL(line_join);
2359
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2360
+
2361
+ HPDF_PTRACE(("hpdf_page_set_line_join page=%p\n", page));
2362
+
2363
+ ret = HPDF_Page_SetLineCap(page, f);
2364
+
2365
+ return INT2NUM(ret);
2366
+ }
2367
+
2368
+ static VALUE
2369
+ hpdf_page_set_miter_limit (VALUE obj, VALUE miter_limit)
2370
+ {
2371
+ HPDF_Page page;
2372
+ HPDF_STATUS ret;
2373
+ HPDF_REAL f;
2374
+
2375
+ f = NUM2DBL(miter_limit);
2376
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2377
+
2378
+ HPDF_PTRACE(("hpdf_page_set_miter_limit page=%p\n", page));
2379
+
2380
+ ret = HPDF_Page_SetMiterLimit(page, f);
2381
+
2382
+ return INT2NUM(ret);
2383
+ }
2384
+
2385
+ static VALUE
2386
+ hpdf_page_set_dash (VALUE obj, VALUE ptn, VALUE phase)
2387
+ {
2388
+ HPDF_Page page;
2389
+ HPDF_STATUS ret;
2390
+ HPDF_UINT16 dash_ptn[8];
2391
+ HPDF_UINT num_ptn;
2392
+ VALUE *pptn;
2393
+ HPDF_UINT dash_phase;
2394
+ HPDF_UINT i;
2395
+
2396
+ if (TYPE(ptn) != T_ARRAY)
2397
+ rb_raise(rb_eHPDFError, "argument 1 must be an array.");
2398
+
2399
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2400
+
2401
+ HPDF_PTRACE(("hpdf_page_set_dash page=%p\n", page));
2402
+
2403
+ dash_phase = NUM2INT(phase);
2404
+ num_ptn = RARRAY(ptn)->len;
2405
+ if (!num_ptn) {
2406
+ ret = HPDF_Page_SetDash(page, NULL, 0, 0);
2407
+ return INT2NUM(ret);
2408
+ }
2409
+
2410
+ for (i = 0; i < 8; i++)
2411
+ dash_ptn[i] = 0;
2412
+
2413
+ pptn = RARRAY(ptn)->ptr;
2414
+ for (i = 0; i < num_ptn; i++) {
2415
+ dash_ptn[i] = NUM2INT(*pptn);
2416
+
2417
+ pptn++;
2418
+ }
2419
+
2420
+ ret = HPDF_Page_SetDash(page, dash_ptn, num_ptn, dash_phase);
2421
+
2422
+ return INT2NUM(ret);
2423
+ }
2424
+
2425
+ static VALUE
2426
+ hpdf_page_set_flat (VALUE obj, VALUE flatness)
2427
+ {
2428
+ HPDF_Page page;
2429
+ HPDF_STATUS ret;
2430
+ HPDF_REAL f;
2431
+
2432
+ f = NUM2DBL(flatness);
2433
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2434
+
2435
+ HPDF_PTRACE(("hpdf_page_set_flat page=%p\n", page));
2436
+
2437
+ ret = HPDF_Page_SetFlat(page, f);
2438
+
2439
+ return INT2NUM(ret);
2440
+ }
2441
+
2442
+
2443
+ static VALUE
2444
+ hpdf_page_gsave (VALUE obj)
2445
+ {
2446
+ HPDF_Page page;
2447
+ HPDF_STATUS ret;
2448
+
2449
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2450
+
2451
+ HPDF_PTRACE(("hpdf_page_gsave page=%p\n", page));
2452
+
2453
+ ret = HPDF_Page_GSave(page);
2454
+
2455
+ return INT2NUM(ret);
2456
+ }
2457
+
2458
+ static VALUE
2459
+ hpdf_page_grestore (VALUE obj)
2460
+ {
2461
+ HPDF_Page page;
2462
+ HPDF_STATUS ret;
2463
+
2464
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2465
+
2466
+ HPDF_PTRACE(("hpdf_page_grestore page=%p\n", page));
2467
+
2468
+ ret = HPDF_Page_GRestore(page);
2469
+
2470
+ return INT2NUM(ret);
2471
+ }
2472
+
2473
+ static VALUE
2474
+ hpdf_page_get_gstate_depth (VALUE obj)
2475
+ {
2476
+ HPDF_Page page;
2477
+ HPDF_UINT ret;
2478
+
2479
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2480
+
2481
+ HPDF_PTRACE(("hpdf_page_get_gstate_depth page=%p\n", page));
2482
+
2483
+ ret = HPDF_Page_GetGStateDepth(page);
2484
+
2485
+ return INT2NUM(ret);
2486
+ }
2487
+
2488
+
2489
+ static VALUE
2490
+ hpdf_page_concat (VALUE obj, VALUE a, VALUE b, VALUE c, VALUE d, VALUE x, VALUE y)
2491
+ {
2492
+ HPDF_Page page;
2493
+ HPDF_STATUS ret;
2494
+ HPDF_REAL f1;
2495
+ HPDF_REAL f2;
2496
+ HPDF_REAL f3;
2497
+ HPDF_REAL f4;
2498
+ HPDF_REAL f5;
2499
+ HPDF_REAL f6;
2500
+
2501
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2502
+ f1 = NUM2DBL(a);
2503
+ f2 = NUM2DBL(b);
2504
+ f3 = NUM2DBL(c);
2505
+ f4 = NUM2DBL(d);
2506
+ f5 = NUM2DBL(x);
2507
+ f6 = NUM2DBL(y);
2508
+
2509
+ HPDF_PTRACE(("hpdf_page_concat page=%p\n", page));
2510
+
2511
+ ret = HPDF_Page_Concat(page, f1, f2, f3, f4, f5, f6);
2512
+
2513
+ return INT2NUM(ret);
2514
+ }
2515
+
2516
+
2517
+ static VALUE
2518
+ hpdf_page_move_to (VALUE obj, VALUE x, VALUE y)
2519
+ {
2520
+ HPDF_Page page;
2521
+ HPDF_STATUS ret;
2522
+ HPDF_REAL f1;
2523
+ HPDF_REAL f2;
2524
+
2525
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2526
+ f1 = NUM2DBL(x);
2527
+ f2 = NUM2DBL(y);
2528
+
2529
+ HPDF_PTRACE(("hpdf_page_move_to page=%p\n", page));
2530
+
2531
+ ret = HPDF_Page_MoveTo(page, f1, f2);
2532
+
2533
+ return INT2NUM(ret);
2534
+ }
2535
+
2536
+ static VALUE
2537
+ hpdf_page_line_to (VALUE obj, VALUE x, VALUE y)
2538
+ {
2539
+ HPDF_Page page;
2540
+ HPDF_STATUS ret;
2541
+ HPDF_REAL f1;
2542
+ HPDF_REAL f2;
2543
+
2544
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2545
+ f1 = NUM2DBL(x);
2546
+ f2 = NUM2DBL(y);
2547
+
2548
+ HPDF_PTRACE(("hpdf_page_line_to page=%p\n", page));
2549
+
2550
+ ret = HPDF_Page_LineTo(page, f1, f2);
2551
+
2552
+ return INT2NUM(ret);
2553
+ }
2554
+
2555
+ static VALUE
2556
+ hpdf_page_curve_to (VALUE obj, VALUE x1, VALUE y1, VALUE x2, VALUE y2, VALUE x3, VALUE y3)
2557
+ {
2558
+ HPDF_Page page;
2559
+ HPDF_STATUS ret;
2560
+ HPDF_REAL f1;
2561
+ HPDF_REAL f2;
2562
+ HPDF_REAL f3;
2563
+ HPDF_REAL f4;
2564
+ HPDF_REAL f5;
2565
+ HPDF_REAL f6;
2566
+
2567
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2568
+ f1 = NUM2DBL(x1);
2569
+ f2 = NUM2DBL(y1);
2570
+ f3 = NUM2DBL(x2);
2571
+ f4 = NUM2DBL(y2);
2572
+ f5 = NUM2DBL(x3);
2573
+ f6 = NUM2DBL(y3);
2574
+
2575
+ HPDF_PTRACE(("hpdf_page_curve_to page=%p\n", page));
2576
+
2577
+ ret = HPDF_Page_CurveTo(page, f1, f2, f3, f4, f5, f6);
2578
+
2579
+ return INT2NUM(ret);
2580
+ }
2581
+
2582
+ static VALUE
2583
+ hpdf_page_curve_to2 (VALUE obj, VALUE x2, VALUE y2, VALUE x3, VALUE y3)
2584
+ {
2585
+ HPDF_Page page;
2586
+ HPDF_STATUS ret;
2587
+ HPDF_REAL f1;
2588
+ HPDF_REAL f2;
2589
+ HPDF_REAL f3;
2590
+ HPDF_REAL f4;
2591
+
2592
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2593
+ f1 = NUM2DBL(x2);
2594
+ f2 = NUM2DBL(y2);
2595
+ f3 = NUM2DBL(x3);
2596
+ f4 = NUM2DBL(y3);
2597
+
2598
+ HPDF_PTRACE(("hpdf_page_curve_to2 page=%p\n", page));
2599
+
2600
+ ret = HPDF_Page_CurveTo2(page, f1, f2, f3, f4);
2601
+
2602
+ return INT2NUM(ret);
2603
+ }
2604
+
2605
+ static VALUE
2606
+ hpdf_page_curve_to3 (VALUE obj, VALUE x1, VALUE y1, VALUE x3, VALUE y3)
2607
+ {
2608
+ HPDF_Page page;
2609
+ HPDF_STATUS ret;
2610
+ HPDF_REAL f1;
2611
+ HPDF_REAL f2;
2612
+ HPDF_REAL f3;
2613
+ HPDF_REAL f4;
2614
+
2615
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2616
+ f1 = NUM2DBL(x1);
2617
+ f2 = NUM2DBL(y1);
2618
+ f3 = NUM2DBL(x3);
2619
+ f4 = NUM2DBL(y3);
2620
+
2621
+ HPDF_PTRACE(("hpdf_page_curve_to3 page=%p\n", page));
2622
+
2623
+ ret = HPDF_Page_CurveTo3(page, f1, f2, f3, f4);
2624
+
2625
+ return INT2NUM(ret);
2626
+ }
2627
+
2628
+ static VALUE
2629
+ hpdf_page_close_path (VALUE obj)
2630
+ {
2631
+ HPDF_Page page;
2632
+ HPDF_STATUS ret;
2633
+
2634
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2635
+
2636
+ HPDF_PTRACE(("hpdf_page_close_path page=%p\n", page));
2637
+
2638
+ ret = HPDF_Page_ClosePath(page);
2639
+
2640
+ return INT2NUM(ret);
2641
+ }
2642
+
2643
+ static VALUE
2644
+ hpdf_page_rectangle (VALUE obj, VALUE x, VALUE y, VALUE width, VALUE height)
2645
+ {
2646
+ HPDF_Page page;
2647
+ HPDF_STATUS ret;
2648
+ HPDF_REAL f1;
2649
+ HPDF_REAL f2;
2650
+ HPDF_REAL f3;
2651
+ HPDF_REAL f4;
2652
+
2653
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2654
+ f1 = NUM2DBL(x);
2655
+ f2 = NUM2DBL(y);
2656
+ f3 = NUM2DBL(width);
2657
+ f4 = NUM2DBL(height);
2658
+
2659
+ HPDF_PTRACE(("hpdf_page_curve_to page=%p\n", page));
2660
+
2661
+ ret = HPDF_Page_Rectangle(page, f1, f2, f3, f4);
2662
+
2663
+ return INT2NUM(ret);
2664
+ }
2665
+
2666
+ static VALUE
2667
+ hpdf_page_stroke (VALUE obj)
2668
+ {
2669
+ HPDF_Page page;
2670
+ HPDF_STATUS ret;
2671
+
2672
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2673
+
2674
+ HPDF_PTRACE(("hpdf_page_stroke page=%p\n", page));
2675
+
2676
+ ret = HPDF_Page_Stroke(page);
2677
+
2678
+ return INT2NUM(ret);
2679
+ }
2680
+
2681
+ static VALUE
2682
+ hpdf_page_close_path_stroke (VALUE obj)
2683
+ {
2684
+ HPDF_Page page;
2685
+ HPDF_STATUS ret;
2686
+
2687
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2688
+
2689
+ HPDF_PTRACE(("hpdf_page_close_path_stroke page=%p\n", page));
2690
+
2691
+ ret = HPDF_Page_ClosePathStroke(page);
2692
+
2693
+ return INT2NUM(ret);
2694
+ }
2695
+
2696
+ static VALUE
2697
+ hpdf_page_fill (VALUE obj)
2698
+ {
2699
+ HPDF_Page page;
2700
+ HPDF_STATUS ret;
2701
+
2702
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2703
+
2704
+ HPDF_PTRACE(("hpdf_page_fill page=%p\n", page));
2705
+
2706
+ ret = HPDF_Page_Fill(page);
2707
+
2708
+ return INT2NUM(ret);
2709
+ }
2710
+
2711
+ static VALUE
2712
+ hpdf_page_eofill (VALUE obj)
2713
+ {
2714
+ HPDF_Page page;
2715
+ HPDF_STATUS ret;
2716
+
2717
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2718
+
2719
+ HPDF_PTRACE(("hpdf_page_eofill page=%p\n", page));
2720
+
2721
+ ret = HPDF_Page_Eofill(page);
2722
+
2723
+ return INT2NUM(ret);
2724
+ }
2725
+
2726
+ static VALUE
2727
+ hpdf_page_fill_stroke (VALUE obj)
2728
+ {
2729
+ HPDF_Page page;
2730
+ HPDF_STATUS ret;
2731
+
2732
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2733
+
2734
+ HPDF_PTRACE(("hpdf_page_fill_stroke page=%p\n", page));
2735
+
2736
+ ret = HPDF_Page_FillStroke(page);
2737
+
2738
+ return INT2NUM(ret);
2739
+ }
2740
+
2741
+ static VALUE
2742
+ hpdf_page_eofill_stroke (VALUE obj)
2743
+ {
2744
+ HPDF_Page page;
2745
+ HPDF_STATUS ret;
2746
+
2747
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2748
+
2749
+ HPDF_PTRACE(("hpdf_page_eofill_stroke page=%p\n", page));
2750
+
2751
+ ret = HPDF_Page_EofillStroke(page);
2752
+
2753
+ return INT2NUM(ret);
2754
+ }
2755
+
2756
+ static VALUE
2757
+ hpdf_page_close_path_fill_stroke (VALUE obj)
2758
+ {
2759
+ HPDF_Page page;
2760
+ HPDF_STATUS ret;
2761
+
2762
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2763
+
2764
+ HPDF_PTRACE(("hpdf_page_close_path_fill_stroke page=%p\n", page));
2765
+
2766
+ ret = HPDF_Page_ClosePathFillStroke(page);
2767
+
2768
+ return INT2NUM(ret);
2769
+ }
2770
+
2771
+ static VALUE
2772
+ hpdf_page_close_path_eofill_stroke (VALUE obj)
2773
+ {
2774
+ HPDF_Page page;
2775
+ HPDF_STATUS ret;
2776
+
2777
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2778
+
2779
+ HPDF_PTRACE(("hpdf_page_close_path_eofill_stroke page=%p\n", page));
2780
+
2781
+ ret = HPDF_Page_ClosePathEofillStroke(page);
2782
+
2783
+ return INT2NUM(ret);
2784
+ }
2785
+
2786
+ static VALUE
2787
+ hpdf_page_end_path (VALUE obj)
2788
+ {
2789
+ HPDF_Page page;
2790
+ HPDF_STATUS ret;
2791
+
2792
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2793
+
2794
+ HPDF_PTRACE(("hpdf_page_end_path page=%p\n", page));
2795
+
2796
+ ret = HPDF_Page_EndPath(page);
2797
+
2798
+ return INT2NUM(ret);
2799
+ }
2800
+
2801
+ static VALUE
2802
+ hpdf_page_clip (VALUE obj)
2803
+ {
2804
+ HPDF_Page page;
2805
+ HPDF_STATUS ret;
2806
+
2807
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2808
+
2809
+ HPDF_PTRACE(("hpdf_page_end_path page=%p\n", page));
2810
+
2811
+ ret = HPDF_Page_Clip(page);
2812
+
2813
+ return INT2NUM(ret);
2814
+ }
2815
+
2816
+ static VALUE
2817
+ hpdf_page_eoclip (VALUE obj)
2818
+ {
2819
+ HPDF_Page page;
2820
+ HPDF_STATUS ret;
2821
+
2822
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2823
+
2824
+ HPDF_PTRACE(("hpdf_page_eoclip page=%p\n", page));
2825
+
2826
+ ret = HPDF_Page_Eoclip(page);
2827
+
2828
+ return INT2NUM(ret);
2829
+ }
2830
+
2831
+ static VALUE
2832
+ hpdf_page_begin_text (VALUE obj)
2833
+ {
2834
+ HPDF_Page page;
2835
+ HPDF_STATUS ret;
2836
+
2837
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2838
+
2839
+ HPDF_PTRACE(("hpdf_page_begin_text page=%p\n", page));
2840
+
2841
+ ret = HPDF_Page_BeginText(page);
2842
+
2843
+ return INT2NUM(ret);
2844
+ }
2845
+
2846
+ static VALUE
2847
+ hpdf_page_end_text (VALUE obj)
2848
+ {
2849
+ HPDF_Page page;
2850
+ HPDF_STATUS ret;
2851
+
2852
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2853
+
2854
+ HPDF_PTRACE(("hpdf_page_end_text page=%p\n", page));
2855
+
2856
+ ret = HPDF_Page_EndText(page);
2857
+
2858
+ return INT2NUM(ret);
2859
+ }
2860
+
2861
+ static VALUE
2862
+ hpdf_page_set_char_space (VALUE obj, VALUE char_space)
2863
+ {
2864
+ HPDF_Page page;
2865
+ HPDF_STATUS ret;
2866
+ HPDF_REAL f;
2867
+
2868
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2869
+ f = NUM2DBL(char_space);
2870
+
2871
+ HPDF_PTRACE(("hpdf_page_set_char_space page=%p\n", page));
2872
+
2873
+ ret = HPDF_Page_SetCharSpace(page, f);
2874
+
2875
+ return INT2NUM(ret);
2876
+ }
2877
+
2878
+ static VALUE
2879
+ hpdf_page_set_word_space (VALUE obj, VALUE word_space)
2880
+ {
2881
+ HPDF_Page page;
2882
+ HPDF_STATUS ret;
2883
+ HPDF_REAL f;
2884
+
2885
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2886
+ f = NUM2DBL(word_space);
2887
+
2888
+ HPDF_PTRACE(("hpdf_page_set_word_space page=%p\n", page));
2889
+
2890
+ ret = HPDF_Page_SetWordSpace(page, f);
2891
+
2892
+ return INT2NUM(ret);
2893
+ }
2894
+
2895
+ static VALUE
2896
+ hpdf_page_set_horizontal_scalling (VALUE obj, VALUE scalling)
2897
+ {
2898
+ HPDF_Page page;
2899
+ HPDF_STATUS ret;
2900
+ HPDF_REAL f;
2901
+
2902
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2903
+ f = NUM2DBL(scalling);
2904
+
2905
+ HPDF_PTRACE(("hpdf_page_set_horizontal_scalling page=%p\n", page));
2906
+
2907
+ ret = HPDF_Page_SetHorizontalScalling(page, f);
2908
+
2909
+ return INT2NUM(ret);
2910
+ }
2911
+
2912
+ static VALUE
2913
+ hpdf_page_set_text_leading (VALUE obj, VALUE leading)
2914
+ {
2915
+ HPDF_Page page;
2916
+ HPDF_STATUS ret;
2917
+ HPDF_REAL f;
2918
+
2919
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2920
+ f = NUM2DBL(leading);
2921
+
2922
+ HPDF_PTRACE(("hpdf_page_set_text_leading page=%p\n", page));
2923
+
2924
+ ret = HPDF_Page_SetTextLeading(page, f);
2925
+
2926
+ return INT2NUM(ret);
2927
+ }
2928
+
2929
+ static VALUE
2930
+ hpdf_page_set_font_and_size (VALUE obj, VALUE font, VALUE size)
2931
+ {
2932
+ HPDF_Page page;
2933
+ HPDF_STATUS ret;
2934
+ HPDF_REAL f;
2935
+ HPDF_Font fo;
2936
+
2937
+ if (HPDF_StrCmp(rb_obj_classname(font), "HPDFFont") != 0)
2938
+ rb_raise(rb_eHPDFError, "invalid argument(1).");
2939
+
2940
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2941
+ Data_Get_Struct(font, HPDF_Dict_Rec, fo);
2942
+ f = NUM2DBL(size);
2943
+
2944
+ HPDF_PTRACE(("hpdf_page_set_text_leading page=%p\n", page));
2945
+
2946
+ ret = HPDF_Page_SetFontAndSize(page, fo, f);
2947
+
2948
+ return INT2NUM(ret);
2949
+ }
2950
+
2951
+ static VALUE
2952
+ hpdf_page_set_text_rendering_mode (VALUE obj, VALUE mode)
2953
+ {
2954
+ HPDF_Page page;
2955
+ HPDF_STATUS ret;
2956
+ HPDF_INT i;
2957
+
2958
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2959
+ i = NUM2INT(mode);
2960
+
2961
+ HPDF_PTRACE(("hpdf_page_set_text_leading page=%p\n", page));
2962
+
2963
+ ret = HPDF_Page_SetTextRenderingMode(page, i);
2964
+
2965
+ return INT2NUM(ret);
2966
+ }
2967
+
2968
+ static VALUE
2969
+ hpdf_page_set_text_raise (VALUE obj, VALUE raise)
2970
+ {
2971
+ HPDF_Page page;
2972
+ HPDF_STATUS ret;
2973
+ HPDF_REAL f;
2974
+
2975
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2976
+ f = NUM2DBL(raise);
2977
+
2978
+ HPDF_PTRACE(("hpdf_page_set_text_raise page=%p\n", page));
2979
+
2980
+ ret = HPDF_Page_SetTextRaise(page, f);
2981
+
2982
+ return INT2NUM(ret);
2983
+ }
2984
+
2985
+ static VALUE
2986
+ hpdf_page_move_text_pos (VALUE obj, VALUE x, VALUE y)
2987
+ {
2988
+ HPDF_Page page;
2989
+ HPDF_STATUS ret;
2990
+ HPDF_REAL f1;
2991
+ HPDF_REAL f2;
2992
+
2993
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
2994
+ f1 = NUM2DBL(x);
2995
+ f2 = NUM2DBL(y);
2996
+
2997
+ HPDF_PTRACE(("hpdf_page_move_text_pos page=%p\n", page));
2998
+
2999
+ ret = HPDF_Page_MoveTextPos(page, f1, f2);
3000
+
3001
+ return INT2NUM(ret);
3002
+ }
3003
+
3004
+
3005
+ static VALUE
3006
+ hpdf_page_move_text_pos2 (VALUE obj, VALUE x, VALUE y)
3007
+ {
3008
+ HPDF_Page page;
3009
+ HPDF_STATUS ret;
3010
+ HPDF_REAL f1;
3011
+ HPDF_REAL f2;
3012
+
3013
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3014
+ f1 = NUM2DBL(x);
3015
+ f2 = NUM2DBL(y);
3016
+
3017
+ HPDF_PTRACE(("hpdf_page_move_text_pos2 page=%p\n", page));
3018
+
3019
+ ret = HPDF_Page_MoveTextPos2(page, f1, f2);
3020
+
3021
+ return INT2NUM(ret);
3022
+ }
3023
+
3024
+
3025
+ static VALUE
3026
+ hpdf_page_set_text_matrix (VALUE obj, VALUE a, VALUE b, VALUE c, VALUE d, VALUE x, VALUE y)
3027
+ {
3028
+ HPDF_Page page;
3029
+ HPDF_STATUS ret;
3030
+ HPDF_REAL f1;
3031
+ HPDF_REAL f2;
3032
+ HPDF_REAL f3;
3033
+ HPDF_REAL f4;
3034
+ HPDF_REAL f5;
3035
+ HPDF_REAL f6;
3036
+
3037
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3038
+ f1 = NUM2DBL(a);
3039
+ f2 = NUM2DBL(b);
3040
+ f3 = NUM2DBL(c);
3041
+ f4 = NUM2DBL(d);
3042
+ f5 = NUM2DBL(x);
3043
+ f6 = NUM2DBL(y);
3044
+
3045
+ HPDF_PTRACE(("hpdf_page_set_text_matrix page=%p\n", page));
3046
+
3047
+ ret = HPDF_Page_SetTextMatrix(page, f1, f2, f3, f4, f5, f6);
3048
+
3049
+ return INT2NUM(ret);
3050
+ }
3051
+
3052
+ static VALUE
3053
+ hpdf_page_move_to_next_line (VALUE obj)
3054
+ {
3055
+ HPDF_Page page;
3056
+ HPDF_STATUS ret;
3057
+
3058
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3059
+
3060
+ HPDF_PTRACE(("hpdf_page_move_to_next_line page=%p\n", page));
3061
+
3062
+ ret = HPDF_Page_MoveToNextLine(page);
3063
+
3064
+ return INT2NUM(ret);
3065
+ }
3066
+
3067
+ static VALUE
3068
+ hpdf_page_show_text (VALUE obj, VALUE text)
3069
+ {
3070
+ HPDF_Page page;
3071
+ HPDF_STATUS ret;
3072
+ const char *s;
3073
+
3074
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3075
+ s = STR2CSTR(text);
3076
+
3077
+ HPDF_PTRACE(("hpdf_page_show_text page=%p\n", page));
3078
+
3079
+ ret = HPDF_Page_ShowText(page, s);
3080
+
3081
+ return INT2NUM(ret);
3082
+ }
3083
+
3084
+ static VALUE
3085
+ hpdf_page_show_text_next_line (VALUE obj, VALUE text)
3086
+ {
3087
+ HPDF_Page page;
3088
+ HPDF_STATUS ret;
3089
+ const char *s;
3090
+
3091
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3092
+ s = STR2CSTR(text);
3093
+
3094
+ HPDF_PTRACE(("hpdf_page_show_text_next_line page=%p\n", page));
3095
+
3096
+ ret = HPDF_Page_ShowTextNextLine(page, s);
3097
+
3098
+ return INT2NUM(ret);
3099
+ }
3100
+
3101
+ static VALUE
3102
+ hpdf_page_show_text_next_line_ex (VALUE obj, VALUE char_space, VALUE word_space, VALUE text)
3103
+ {
3104
+ HPDF_Page page;
3105
+ HPDF_STATUS ret;
3106
+ const char *s;
3107
+ HPDF_REAL f1;
3108
+ HPDF_REAL f2;
3109
+
3110
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3111
+ s = STR2CSTR(text);
3112
+ f1 = NUM2DBL(char_space);
3113
+ f2 = NUM2DBL(word_space);
3114
+
3115
+ HPDF_PTRACE(("hpdf_page_show_text_next_line_ex page=%p\n", page));
3116
+
3117
+ ret = HPDF_Page_ShowTextNextLineEx(page, f1, f2, s);
3118
+
3119
+ return INT2NUM(ret);
3120
+ }
3121
+
3122
+ static VALUE
3123
+ hpdf_page_set_gray_fill (VALUE obj, VALUE gray)
3124
+ {
3125
+ HPDF_Page page;
3126
+ HPDF_STATUS ret;
3127
+ HPDF_REAL f;
3128
+
3129
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3130
+ f = NUM2DBL(gray);
3131
+
3132
+ HPDF_PTRACE(("hpdf_page_set_gray_fill page=%p\n", page));
3133
+
3134
+ ret = HPDF_Page_SetGrayFill(page, f);
3135
+
3136
+ return INT2NUM(ret);
3137
+ }
3138
+
3139
+ static VALUE
3140
+ hpdf_page_set_gray_stroke (VALUE obj, VALUE gray)
3141
+ {
3142
+ HPDF_Page page;
3143
+ HPDF_STATUS ret;
3144
+ HPDF_REAL f;
3145
+
3146
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3147
+ f = NUM2DBL(gray);
3148
+
3149
+ HPDF_PTRACE(("hpdf_page_set_gray_stroke page=%p\n", page));
3150
+
3151
+ ret = HPDF_Page_SetGrayStroke(page, f);
3152
+
3153
+ return INT2NUM(ret);
3154
+ }
3155
+
3156
+ static VALUE
3157
+ hpdf_page_set_rgb_fill (VALUE obj, VALUE r, VALUE g, VALUE b)
3158
+ {
3159
+ HPDF_Page page;
3160
+ HPDF_STATUS ret;
3161
+ HPDF_REAL f1;
3162
+ HPDF_REAL f2;
3163
+ HPDF_REAL f3;
3164
+
3165
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3166
+ f1 = NUM2DBL(r);
3167
+ f2 = NUM2DBL(g);
3168
+ f3 = NUM2DBL(b);
3169
+
3170
+ HPDF_PTRACE(("hpdf_page_set_rgb_fill page=%p\n", page));
3171
+
3172
+ ret = HPDF_Page_SetRGBFill(page, f1, f2, f3);
3173
+
3174
+ return INT2NUM(ret);
3175
+ }
3176
+
3177
+ static VALUE
3178
+ hpdf_page_set_rgb_stroke (VALUE obj, VALUE r, VALUE g, VALUE b)
3179
+ {
3180
+ HPDF_Page page;
3181
+ HPDF_STATUS ret;
3182
+ HPDF_REAL f1;
3183
+ HPDF_REAL f2;
3184
+ HPDF_REAL f3;
3185
+
3186
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3187
+ f1 = NUM2DBL(r);
3188
+ f2 = NUM2DBL(g);
3189
+ f3 = NUM2DBL(b);
3190
+
3191
+ HPDF_PTRACE(("hpdf_page_set_rgb_stroke page=%p\n", page));
3192
+
3193
+ ret = HPDF_Page_SetRGBStroke(page, f1, f2, f3);
3194
+
3195
+ return INT2NUM(ret);
3196
+ }
3197
+
3198
+ static VALUE
3199
+ hpdf_page_set_cmyk_fill (VALUE obj, VALUE c, VALUE m, VALUE y, VALUE k)
3200
+ {
3201
+ HPDF_Page page;
3202
+ HPDF_STATUS ret;
3203
+ HPDF_REAL f1;
3204
+ HPDF_REAL f2;
3205
+ HPDF_REAL f3;
3206
+ HPDF_REAL f4;
3207
+
3208
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3209
+ f1 = NUM2DBL(c);
3210
+ f2 = NUM2DBL(m);
3211
+ f3 = NUM2DBL(y);
3212
+ f4 = NUM2DBL(k);
3213
+
3214
+ HPDF_PTRACE(("hpdf_page_set_cmyk_fill page=%p\n", page));
3215
+
3216
+ ret = HPDF_Page_SetCMYKFill(page, f1, f2, f3, f4);
3217
+
3218
+ return INT2NUM(ret);
3219
+ }
3220
+
3221
+ static VALUE
3222
+ hpdf_page_set_cmyk_stroke (VALUE obj, VALUE c, VALUE m, VALUE y, VALUE k)
3223
+ {
3224
+ HPDF_Page page;
3225
+ HPDF_STATUS ret;
3226
+ HPDF_REAL f1;
3227
+ HPDF_REAL f2;
3228
+ HPDF_REAL f3;
3229
+ HPDF_REAL f4;
3230
+
3231
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3232
+ f1 = NUM2DBL(c);
3233
+ f2 = NUM2DBL(m);
3234
+ f3 = NUM2DBL(y);
3235
+ f4 = NUM2DBL(k);
3236
+
3237
+ HPDF_PTRACE(("hpdf_page_set_cmyk_stroke page=%p\n", page));
3238
+
3239
+ ret = HPDF_Page_SetCMYKStroke(page, f1, f2, f3, f4);
3240
+
3241
+ return INT2NUM(ret);
3242
+ }
3243
+
3244
+ static VALUE
3245
+ hpdf_page_execute_xobject (VALUE obj, VALUE xobj)
3246
+ {
3247
+ HPDF_Page page;
3248
+ HPDF_STATUS ret;
3249
+ HPDF_Image img;
3250
+
3251
+ if (HPDF_StrCmp(rb_obj_classname(xobj), "HPDFImage") != 0)
3252
+ rb_raise(rb_eHPDFError, "invalid argument(1).");
3253
+
3254
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3255
+ Data_Get_Struct(xobj, HPDF_Dict_Rec, img);
3256
+
3257
+ HPDF_PTRACE(("hpdf_page_execute_xobject page=%p\n", page));
3258
+
3259
+ ret = HPDF_Page_ExecuteXObject(page, img);
3260
+
3261
+ return INT2NUM(ret);
3262
+ }
3263
+
3264
+ static VALUE
3265
+ hpdf_page_draw_image (VALUE obj, VALUE image, VALUE x, VALUE y, VALUE width, VALUE height)
3266
+ {
3267
+ HPDF_Page page;
3268
+ HPDF_STATUS ret;
3269
+ HPDF_Image img;
3270
+ HPDF_REAL f1;
3271
+ HPDF_REAL f2;
3272
+ HPDF_REAL f3;
3273
+ HPDF_REAL f4;
3274
+
3275
+ if (HPDF_StrCmp(rb_obj_classname(image), "HPDFImage") != 0)
3276
+ rb_raise(rb_eHPDFError, "invalid argument(1).");
3277
+
3278
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3279
+ Data_Get_Struct(image, HPDF_Dict_Rec, img);
3280
+ f1 = NUM2DBL(x);
3281
+ f2 = NUM2DBL(y);
3282
+ f3 = NUM2DBL(width);
3283
+ f4 = NUM2DBL(height);
3284
+
3285
+ HPDF_PTRACE(("hpdf_page_draw_image page=%p\n", page));
3286
+
3287
+ ret = HPDF_Page_DrawImage(page, img, f1, f2, f3, f4);
3288
+
3289
+ return INT2NUM(ret);
3290
+ }
3291
+
3292
+
3293
+ static VALUE
3294
+ hpdf_page_circle (VALUE obj, VALUE x, VALUE y, VALUE ray)
3295
+ {
3296
+ HPDF_Page page;
3297
+ HPDF_STATUS ret;
3298
+ HPDF_REAL f1;
3299
+ HPDF_REAL f2;
3300
+ HPDF_REAL f3;
3301
+
3302
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3303
+ f1 = NUM2DBL(x);
3304
+ f2 = NUM2DBL(y);
3305
+ f3 = NUM2DBL(ray);
3306
+
3307
+ HPDF_PTRACE(("hpdf_page_circle page=%p\n", page));
3308
+
3309
+ ret = HPDF_Page_Circle(page, f1, f2, f3);
3310
+
3311
+ return INT2NUM(ret);
3312
+ }
3313
+
3314
+ static VALUE
3315
+ hpdf_page_arc (VALUE obj, VALUE x, VALUE y, VALUE ray, VALUE ang1, VALUE ang2)
3316
+ {
3317
+ HPDF_Page page;
3318
+ HPDF_STATUS ret;
3319
+ HPDF_REAL f1;
3320
+ HPDF_REAL f2;
3321
+ HPDF_REAL f3;
3322
+ HPDF_REAL f4;
3323
+ HPDF_REAL f5;
3324
+
3325
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3326
+ f1 = NUM2DBL(x);
3327
+ f2 = NUM2DBL(y);
3328
+ f3 = NUM2DBL(ray);
3329
+ f4 = NUM2DBL(ang1);
3330
+ f5 = NUM2DBL(ang2);
3331
+
3332
+ HPDF_PTRACE(("hpdf_page_arc page=%p\n", page));
3333
+
3334
+ ret = HPDF_Page_Arc(page, f1, f2, f3, f4, f5);
3335
+
3336
+ return INT2NUM(ret);
3337
+ }
3338
+
3339
+ static VALUE
3340
+ hpdf_page_ellipse (VALUE obj, VALUE x, VALUE y, VALUE xray, VALUE yray)
3341
+ {
3342
+ HPDF_Page page;
3343
+ HPDF_STATUS ret;
3344
+ HPDF_REAL f1;
3345
+ HPDF_REAL f2;
3346
+ HPDF_REAL f3;
3347
+ HPDF_REAL f4;
3348
+
3349
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3350
+ f1 = NUM2DBL(x);
3351
+ f2 = NUM2DBL(y);
3352
+ f3 = NUM2DBL(xray);
3353
+ f4 = NUM2DBL(yray);
3354
+
3355
+ HPDF_PTRACE(("hpdf_page_ellipse page=%p\n", page));
3356
+
3357
+ ret = HPDF_Page_Ellipse(page, f1, f2, f3, f4);
3358
+
3359
+ return INT2NUM(ret);
3360
+ }
3361
+
3362
+ static VALUE
3363
+ hpdf_page_text_out (VALUE obj, VALUE xpos, VALUE ypos, VALUE text)
3364
+ {
3365
+ HPDF_Page page;
3366
+ HPDF_STATUS ret;
3367
+ const char *s;
3368
+ HPDF_REAL x;
3369
+ HPDF_REAL y;
3370
+
3371
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3372
+ s = STR2CSTR(text);
3373
+ x = NUM2DBL(xpos);
3374
+ y = NUM2DBL(ypos);
3375
+
3376
+ HPDF_PTRACE(("hpdf_page_text_out page=%p\n", page));
3377
+
3378
+ ret = HPDF_Page_TextOut(page, x, y, s);
3379
+
3380
+ return INT2NUM(ret);
3381
+ }
3382
+
3383
+ static VALUE
3384
+ hpdf_page_text_rect (VALUE obj, VALUE left, VALUE top, VALUE right, VALUE bottom, VALUE text, VALUE align)
3385
+
3386
+ {
3387
+ HPDF_Page page;
3388
+ HPDF_STATUS ret;
3389
+ const char *s;
3390
+ HPDF_REAL f1;
3391
+ HPDF_REAL f2;
3392
+ HPDF_REAL f3;
3393
+ HPDF_REAL f4;
3394
+ HPDF_UINT i1;
3395
+
3396
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3397
+ s = STR2CSTR(text);
3398
+ f1 = NUM2DBL(left);
3399
+ f2 = NUM2DBL(top);
3400
+ f3 = NUM2DBL(right);
3401
+ f4 = NUM2DBL(bottom);
3402
+ i1 = NUM2INT(align);
3403
+
3404
+ HPDF_PTRACE(("hpdf_page_text_rect page=%p\n", page));
3405
+
3406
+ ret = HPDF_Page_TextRect(page, f1, f2, f3, f4, s, i1, NULL);
3407
+
3408
+ return INT2NUM(ret);
3409
+ }
3410
+
3411
+ static VALUE
3412
+ hpdf_page_set_slide_show (VALUE obj, VALUE type, VALUE disp_time, VALUE trans_time)
3413
+
3414
+ {
3415
+ HPDF_Page page;
3416
+ HPDF_STATUS ret;
3417
+ HPDF_REAL f1;
3418
+ HPDF_REAL f2;
3419
+ HPDF_UINT i1;
3420
+
3421
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
3422
+ f1 = NUM2DBL(disp_time);
3423
+ f2 = NUM2DBL(trans_time);
3424
+ i1 = NUM2INT(type);
3425
+
3426
+ HPDF_PTRACE(("hpdf_page_set_slide_show page=%p\n", page));
3427
+
3428
+ ret = HPDF_Page_SetSlideShow(page, i1, f1, f2);
3429
+
3430
+ return INT2NUM(ret);
3431
+ }
3432
+
3433
+
3434
+
3435
+ void
3436
+ Init_hpdf()
3437
+ {
3438
+ rb_cHPDFDoc = rb_define_class("HPDFDoc", rb_cObject);
3439
+ rb_cHPDFPage = rb_define_class("HPDFPage", rb_cObject);
3440
+ rb_cHPDFImage = rb_define_class("HPDFImage", rb_cObject);
3441
+ rb_cHPDFFont = rb_define_class("HPDFFont", rb_cObject);
3442
+ rb_cHPDFOutline = rb_define_class("HPDFOutline", rb_cObject);
3443
+ rb_cHPDFEncoder = rb_define_class("HPDFEncoder", rb_cObject);
3444
+ rb_cHPDFDestination = rb_define_class("HPDFDestination", rb_cObject);
3445
+ rb_cHPDFAnnotation = rb_define_class("HPDFAnnotation", rb_cObject);
3446
+ rb_cHPDFExtGState = rb_define_class("HPDFExtGState", rb_cObject);
3447
+
3448
+
3449
+ rb_define_singleton_method(rb_cHPDFDoc, "new", hpdf_new, 0);
3450
+ rb_define_method(rb_cHPDFDoc, "new_doc", hpdf_new_doc, 0);
3451
+ rb_define_method(rb_cHPDFDoc, "free_doc", hpdf_free_doc, 0);
3452
+ rb_define_method(rb_cHPDFDoc, "has_doc", hpdf_has_doc, 0);
3453
+ rb_define_method(rb_cHPDFDoc, "free_doc_all", hpdf_free_doc_all, 0);
3454
+ rb_define_method(rb_cHPDFDoc, "save_to_file", hpdf_save_to_file, 1);
3455
+ rb_define_method(rb_cHPDFDoc, "get_error", hpdf_get_error, 0);
3456
+ rb_define_method(rb_cHPDFDoc, "reset_error", hpdf_reset_error, 0);
3457
+ rb_define_method(rb_cHPDFDoc, "set_page_configuration", hpdf_set_page_configuration, 1);
3458
+ rb_define_method(rb_cHPDFDoc, "get_page_by_index", hpdf_get_page_by_index, 1);
3459
+ rb_define_method(rb_cHPDFDoc, "get_page_layout", hpdf_get_page_layout, 0);
3460
+ rb_define_method(rb_cHPDFDoc, "set_page_layout", hpdf_set_page_layout, 1);
3461
+ rb_define_method(rb_cHPDFDoc, "get_page_mode", hpdf_get_page_mode, 0);
3462
+ rb_define_method(rb_cHPDFDoc, "set_page_mode", hpdf_set_page_mode, 1);
3463
+ rb_define_method(rb_cHPDFDoc, "set_open_action", hpdf_set_open_action, 1);
3464
+ rb_define_method(rb_cHPDFDoc, "get_viewer_preference", hpdf_get_viewer_preference, 0);
3465
+ rb_define_method(rb_cHPDFDoc, "set_viewer_preference", hpdf_set_viewer_preference, 1);
3466
+ rb_define_method(rb_cHPDFDoc, "get_current_page", hpdf_get_current_page, 0);
3467
+ rb_define_method(rb_cHPDFDoc, "add_page", hpdf_add_page, 0);
3468
+ rb_define_method(rb_cHPDFDoc, "insert_page", hpdf_insert_page, 1);
3469
+
3470
+ rb_define_method(rb_cHPDFPage, "set_width", hpdf_page_set_width, 1);
3471
+ rb_define_method(rb_cHPDFPage, "set_height", hpdf_page_set_height, 1);
3472
+ rb_define_method(rb_cHPDFPage, "set_size", hpdf_page_set_size, 2);
3473
+ rb_define_method(rb_cHPDFPage, "set_rotate", hpdf_page_set_rotate, 1);
3474
+
3475
+ rb_define_method(rb_cHPDFDoc, "get_font", hpdf_get_font, 2);
3476
+ rb_define_method(rb_cHPDFDoc, "load_type1font_from_file", hpdf_load_type1font_from_file, 2);
3477
+ rb_define_method(rb_cHPDFDoc, "load_ttfont_from_file", hpdf_load_ttfont_from_file, 2);
3478
+ rb_define_method(rb_cHPDFDoc, "load_ttfont_from_file2", hpdf_load_ttfont_from_file2, 3);
3479
+ rb_define_method(rb_cHPDFDoc, "add_page_label", hpdf_add_page_label, 4);
3480
+ rb_define_method(rb_cHPDFDoc, "use_jp_fonts", hpdf_use_jp_fonts, 0);
3481
+ rb_define_method(rb_cHPDFDoc, "use_kr_fonts", hpdf_use_kr_fonts, 0);
3482
+ rb_define_method(rb_cHPDFDoc, "use_cns_fonts", hpdf_use_cns_fonts, 0);
3483
+ rb_define_method(rb_cHPDFDoc, "use_cnt_fonts", hpdf_use_cnt_fonts, 0);
3484
+
3485
+ rb_define_method(rb_cHPDFDoc, "create_outline", hpdf_create_outline, 3);
3486
+ rb_define_method(rb_cHPDFOutline, "set_opend", hpdf_outline_set_opend, 1);
3487
+ rb_define_method(rb_cHPDFOutline, "set_destination", hpdf_outline_set_destination, 1);
3488
+
3489
+ rb_define_method(rb_cHPDFPage, "create_destination", hpdf_page_create_destination, 0);
3490
+ rb_define_method(rb_cHPDFDestination, "set_xyz", hpdf_destination_set_xyz, 3);
3491
+ rb_define_method(rb_cHPDFDestination, "set_fit", hpdf_destination_set_fit, 0);
3492
+ rb_define_method(rb_cHPDFDestination, "set_fit_h", hpdf_destination_set_fit_h, 1);
3493
+ rb_define_method(rb_cHPDFDestination, "set_fit_v", hpdf_destination_set_fit_v, 1);
3494
+ rb_define_method(rb_cHPDFDestination, "set_fit_r", hpdf_destination_set_fit_r, 4);
3495
+ rb_define_method(rb_cHPDFDestination, "set_fit_b", hpdf_destination_set_fit_b, 0);
3496
+ rb_define_method(rb_cHPDFDestination, "set_fit_bh", hpdf_destination_set_fit_bh, 1);
3497
+ rb_define_method(rb_cHPDFDestination, "set_fit_bv", hpdf_destination_set_fit_bv, 1);
3498
+
3499
+ rb_define_method(rb_cHPDFDoc, "get_encoder", hpdf_get_encoder, 1);
3500
+ rb_define_method(rb_cHPDFDoc, "get_current_encoder", hpdf_get_current_encoder, 0);
3501
+ rb_define_method(rb_cHPDFDoc, "set_current_encoder", hpdf_set_current_encoder, 1);
3502
+ rb_define_method(rb_cHPDFEncoder, "get_type", hpdf_encoder_get_type, 0);
3503
+ rb_define_method(rb_cHPDFEncoder, "get_byte_type", hpdf_encoder_get_byte_type, 1);
3504
+ rb_define_method(rb_cHPDFEncoder, "get_unicode", hpdf_encoder_get_unicode, 1);
3505
+ rb_define_method(rb_cHPDFEncoder, "get_writing_mode", hpdf_encoder_get_writing_mode, 0);
3506
+ rb_define_method(rb_cHPDFDoc, "use_jp_encodings", hpdf_use_jp_encodings, 0);
3507
+ rb_define_method(rb_cHPDFDoc, "use_kr_encodings", hpdf_use_kr_encodings, 0);
3508
+ rb_define_method(rb_cHPDFDoc, "use_cns_encodings", hpdf_use_cns_encodings, 0);
3509
+ rb_define_method(rb_cHPDFDoc, "use_cnt_encodings", hpdf_use_cnt_encodings, 0);
3510
+
3511
+ rb_define_method(rb_cHPDFPage, "create_text_annot", hpdf_page_create_text_annot, 6);
3512
+ rb_define_method(rb_cHPDFPage, "create_link_annot", hpdf_page_create_link_annot, 5);
3513
+ rb_define_method(rb_cHPDFPage, "create_uri_link_annot", hpdf_page_create_uri_link_annot, 5);
3514
+ rb_define_method(rb_cHPDFAnnotation, "set_highlight_mode", hpdf_linkannot_set_highlight_mode, 1);
3515
+ rb_define_method(rb_cHPDFAnnotation, "set_border_style", hpdf_linkannot_set_border_style, 3);
3516
+ rb_define_method(rb_cHPDFAnnotation, "set_icon", hpdf_textannot_set_icon, 1);
3517
+ rb_define_method(rb_cHPDFAnnotation, "set_opened", hpdf_textannot_set_opened, 1);
3518
+
3519
+ rb_define_method(rb_cHPDFDoc, "load_png_image_from_file", hpdf_load_png_image_from_file, 1);
3520
+ rb_define_method(rb_cHPDFDoc, "load_jpeg_image_from_file", hpdf_load_jpeg_image_from_file, 1);
3521
+ rb_define_method(rb_cHPDFImage, "get_size", hpdf_image_get_size, 0);
3522
+ rb_define_method(rb_cHPDFImage, "get_width", hpdf_image_get_width, 0);
3523
+ rb_define_method(rb_cHPDFImage, "get_height", hpdf_image_get_height, 0);
3524
+ rb_define_method(rb_cHPDFImage, "get_bits_per_component", hpdf_image_get_bits_per_component, 0);
3525
+ rb_define_method(rb_cHPDFImage, "get_color_space", hpdf_image_get_color_space, 0);
3526
+ rb_define_method(rb_cHPDFImage, "set_color_mask", hpdf_image_set_color_mask, 6);
3527
+ rb_define_method(rb_cHPDFImage, "set_mask_image", hpdf_image_set_mask_image, 1);
3528
+
3529
+ rb_define_method(rb_cHPDFDoc, "set_info_attr", hpdf_set_info_attr, 2);
3530
+ rb_define_method(rb_cHPDFDoc, "get_info_attr", hpdf_get_info_attr, 1);
3531
+ rb_define_method(rb_cHPDFDoc, "set_info_date_attr", hpdf_set_info_date_attr, 10);
3532
+ rb_define_method(rb_cHPDFDoc, "set_password", hpdf_set_password, 2);
3533
+ rb_define_method(rb_cHPDFDoc, "set_permission", hpdf_set_permission, 1);
3534
+ rb_define_method(rb_cHPDFDoc, "set_encryption_mode", hpdf_set_encryption_mode, 2);
3535
+ rb_define_method(rb_cHPDFDoc, "set_compression_mode", hpdf_set_compression_mode, 1);
3536
+
3537
+ rb_define_method(rb_cHPDFPage, "text_width", hpdf_page_text_width, 1);
3538
+ rb_define_method(rb_cHPDFPage, "measure_text", hpdf_page_measure_text, 3);
3539
+ rb_define_method(rb_cHPDFPage, "get_width", hpdf_page_get_width, 0);
3540
+ rb_define_method(rb_cHPDFPage, "get_height", hpdf_page_get_height, 0);
3541
+ rb_define_method(rb_cHPDFPage, "get_gmode", hpdf_page_get_gmode, 0);
3542
+ rb_define_method(rb_cHPDFPage, "get_current_pos", hpdf_page_get_current_pos, 0);
3543
+ rb_define_method(rb_cHPDFPage, "get_current_text_pos", hpdf_page_get_current_text_pos, 0);
3544
+ rb_define_method(rb_cHPDFPage, "get_current_font", hpdf_page_get_current_font, 0);
3545
+
3546
+ rb_define_method(rb_cHPDFFont, "get_font_name", hpdf_font_get_font_name, 0);
3547
+ rb_define_method(rb_cHPDFFont, "get_encoding_name", hpdf_font_get_encoding_name, 0);
3548
+ rb_define_method(rb_cHPDFFont, "get_unicode_width", hpdf_font_get_unicode_width, 1);
3549
+ rb_define_method(rb_cHPDFFont, "get_bbox", hpdf_font_get_bbox, 0);
3550
+ rb_define_method(rb_cHPDFFont, "get_ascent", hpdf_font_get_ascent, 0);
3551
+ rb_define_method(rb_cHPDFFont, "get_descent", hpdf_font_get_descent, 0);
3552
+ rb_define_method(rb_cHPDFFont, "get_x_height", hpdf_font_get_x_height, 0);
3553
+ rb_define_method(rb_cHPDFFont, "get_cap_height", hpdf_font_get_cap_height, 0);
3554
+
3555
+ rb_define_method(rb_cHPDFPage, "get_current_font_size", hpdf_page_get_current_font_size, 0);
3556
+ rb_define_method(rb_cHPDFPage, "get_trans_matrix", hpdf_page_get_trans_matrix, 0);
3557
+ rb_define_method(rb_cHPDFPage, "get_line_width", hpdf_page_get_line_width, 0);
3558
+ rb_define_method(rb_cHPDFPage, "get_line_cap", hpdf_page_get_line_cap, 0);
3559
+ rb_define_method(rb_cHPDFPage, "get_line_join", hpdf_page_get_line_join, 0);
3560
+ rb_define_method(rb_cHPDFPage, "get_miter_limit", hpdf_page_get_miter_limit, 0);
3561
+ rb_define_method(rb_cHPDFPage, "get_dash", hpdf_page_get_dash, 0);
3562
+ rb_define_method(rb_cHPDFPage, "get_flat", hpdf_page_get_flat, 0);
3563
+ rb_define_method(rb_cHPDFPage, "get_char_space", hpdf_page_get_char_space, 0);
3564
+ rb_define_method(rb_cHPDFPage, "get_word_space", hpdf_page_get_word_space, 0);
3565
+ rb_define_method(rb_cHPDFPage, "get_horizontal_scalling", hpdf_page_get_horizontal_scalling, 0);
3566
+ rb_define_method(rb_cHPDFPage, "get_text_leading", hpdf_page_get_text_leading, 0);
3567
+ rb_define_method(rb_cHPDFPage, "get_text_rendering_mode", hpdf_page_get_text_rendering_mode, 0);
3568
+ rb_define_method(rb_cHPDFPage, "get_text_raise", hpdf_page_get_text_raise, 0);
3569
+ rb_define_method(rb_cHPDFPage, "get_rgb_fill", hpdf_page_get_rgb_fill, 0);
3570
+ rb_define_method(rb_cHPDFPage, "get_rgb_stroke", hpdf_page_get_rgb_stroke, 0);
3571
+ rb_define_method(rb_cHPDFPage, "get_cmyk_fill", hpdf_page_get_cmyk_fill, 0);
3572
+ rb_define_method(rb_cHPDFPage, "get_cmyk_stroke", hpdf_page_get_cmyk_stroke, 0);
3573
+ rb_define_method(rb_cHPDFPage, "get_gray_fill", hpdf_page_get_gray_fill, 0);
3574
+ rb_define_method(rb_cHPDFPage, "get_gray_stroke", hpdf_page_get_gray_stroke, 0);
3575
+ rb_define_method(rb_cHPDFPage, "get_stroking_color_space", hpdf_page_get_stroking_color_space, 0);
3576
+ rb_define_method(rb_cHPDFPage, "get_filling_color_space", hpdf_page_get_filling_color_space, 0);
3577
+ rb_define_method(rb_cHPDFPage, "get_text_matrix", hpdf_page_get_text_matrix, 0);
3578
+
3579
+ rb_define_method(rb_cHPDFPage, "set_line_width", hpdf_page_set_line_width, 1);
3580
+ rb_define_method(rb_cHPDFPage, "set_line_cap", hpdf_page_set_line_cap, 1);
3581
+ rb_define_method(rb_cHPDFPage, "set_line_join", hpdf_page_set_line_join, 1);
3582
+ rb_define_method(rb_cHPDFPage, "set_miter_limit", hpdf_page_set_miter_limit, 1);
3583
+ rb_define_method(rb_cHPDFPage, "set_dash", hpdf_page_set_dash, 2);
3584
+ rb_define_method(rb_cHPDFPage, "set_flat", hpdf_page_set_flat, 1);
3585
+ rb_define_method(rb_cHPDFPage, "gsave", hpdf_page_gsave, 0);
3586
+ rb_define_method(rb_cHPDFPage, "grestore", hpdf_page_grestore, 0);
3587
+ rb_define_method(rb_cHPDFPage, "get_gstate_depth", hpdf_page_get_gstate_depth, 0);
3588
+ rb_define_method(rb_cHPDFPage, "concat", hpdf_page_concat, 6);
3589
+ rb_define_method(rb_cHPDFPage, "move_to", hpdf_page_move_to, 2);
3590
+ rb_define_method(rb_cHPDFPage, "line_to", hpdf_page_line_to, 2);
3591
+ rb_define_method(rb_cHPDFPage, "curve_to", hpdf_page_curve_to, 6);
3592
+ rb_define_method(rb_cHPDFPage, "curve_to2", hpdf_page_curve_to2, 4);
3593
+ rb_define_method(rb_cHPDFPage, "curve_to3", hpdf_page_curve_to3, 4);
3594
+ rb_define_method(rb_cHPDFPage, "close_path", hpdf_page_close_path, 0);
3595
+ rb_define_method(rb_cHPDFPage, "rectangle", hpdf_page_rectangle, 4);
3596
+ rb_define_method(rb_cHPDFPage, "stroke", hpdf_page_stroke, 0);
3597
+ rb_define_method(rb_cHPDFPage, "close_path_stroke", hpdf_page_close_path_stroke, 0);
3598
+ rb_define_method(rb_cHPDFPage, "fill", hpdf_page_fill, 0);
3599
+ rb_define_method(rb_cHPDFPage, "eofill", hpdf_page_eofill, 0);
3600
+ rb_define_method(rb_cHPDFPage, "fill_stroke", hpdf_page_fill_stroke, 0);
3601
+ rb_define_method(rb_cHPDFPage, "eofill_stroke", hpdf_page_eofill_stroke, 0);
3602
+ rb_define_method(rb_cHPDFPage, "close_path_fill_stroke", hpdf_page_close_path_fill_stroke, 0);
3603
+ rb_define_method(rb_cHPDFPage, "close_path_eofill_stroke", hpdf_page_close_path_eofill_stroke, 0);
3604
+ rb_define_method(rb_cHPDFPage, "end_path", hpdf_page_end_path, 0);
3605
+ rb_define_method(rb_cHPDFPage, "clip", hpdf_page_clip, 0);
3606
+ rb_define_method(rb_cHPDFPage, "page_clip", hpdf_page_clip, 0);
3607
+ rb_define_method(rb_cHPDFPage, "eoclip", hpdf_page_eoclip, 0);
3608
+ rb_define_method(rb_cHPDFPage, "begin_text", hpdf_page_begin_text, 0);
3609
+ rb_define_method(rb_cHPDFPage, "end_text", hpdf_page_end_text, 0);
3610
+ rb_define_method(rb_cHPDFPage, "set_char_space", hpdf_page_set_char_space, 1);
3611
+ rb_define_method(rb_cHPDFPage, "set_word_space", hpdf_page_set_word_space, 1);
3612
+ rb_define_method(rb_cHPDFPage, "set_horizontal_scalling", hpdf_page_set_horizontal_scalling, 1);
3613
+ rb_define_method(rb_cHPDFPage, "set_text_leading", hpdf_page_set_text_leading, 1);
3614
+ rb_define_method(rb_cHPDFPage, "set_font_and_size", hpdf_page_set_font_and_size, 2);
3615
+ rb_define_method(rb_cHPDFPage, "set_text_rendering_mode", hpdf_page_set_text_rendering_mode, 1);
3616
+ rb_define_method(rb_cHPDFPage, "set_text_raise", hpdf_page_set_text_raise, 1);
3617
+ rb_define_method(rb_cHPDFPage, "move_text_pos", hpdf_page_move_text_pos, 2);
3618
+ rb_define_method(rb_cHPDFPage, "move_text_pos2", hpdf_page_move_text_pos2, 2);
3619
+ rb_define_method(rb_cHPDFPage, "set_text_matrix", hpdf_page_set_text_matrix, 6);
3620
+ rb_define_method(rb_cHPDFPage, "move_to_next_line", hpdf_page_move_to_next_line, 0);
3621
+ rb_define_method(rb_cHPDFPage, "show_text", hpdf_page_show_text, 1);
3622
+ rb_define_method(rb_cHPDFPage, "show_text_next_line", hpdf_page_show_text_next_line, 1);
3623
+ rb_define_method(rb_cHPDFPage, "show_text_next_line_ex", hpdf_page_show_text_next_line_ex, 3);
3624
+ rb_define_method(rb_cHPDFPage, "set_gray_fill", hpdf_page_set_gray_fill, 1);
3625
+ rb_define_method(rb_cHPDFPage, "set_gray_stroke", hpdf_page_set_gray_stroke, 1);
3626
+ rb_define_method(rb_cHPDFPage, "set_rgb_fill", hpdf_page_set_rgb_fill, 3);
3627
+ rb_define_method(rb_cHPDFPage, "set_rgb_stroke", hpdf_page_set_rgb_stroke, 3);
3628
+ rb_define_method(rb_cHPDFPage, "set_cmyk_fill", hpdf_page_set_cmyk_fill, 4);
3629
+ rb_define_method(rb_cHPDFPage, "set_cmyk_stroke", hpdf_page_set_cmyk_stroke, 4);
3630
+ rb_define_method(rb_cHPDFPage, "execute_xobject", hpdf_page_execute_xobject, 1);
3631
+ rb_define_method(rb_cHPDFPage, "draw_image", hpdf_page_draw_image, 5);
3632
+ rb_define_method(rb_cHPDFPage, "circle", hpdf_page_circle, 3);
3633
+ rb_define_method(rb_cHPDFPage, "ellipse", hpdf_page_ellipse, 4);
3634
+ rb_define_method(rb_cHPDFPage, "arc", hpdf_page_arc, 5);
3635
+ rb_define_method(rb_cHPDFPage, "text_out", hpdf_page_text_out, 3);
3636
+ rb_define_method(rb_cHPDFPage, "text_rect", hpdf_page_text_rect, 6);
3637
+
3638
+ rb_define_method(rb_cHPDFPage, "set_slide_show", hpdf_page_set_slide_show, 3);
3639
+
3640
+ rb_define_method(rb_cHPDFDoc, "create_ext_gstate", hpdf_create_ext_gstate, 0);
3641
+ rb_define_method(rb_cHPDFExtGState, "set_alpha_stroke", hpdf_ext_gstate_set_alpha_stroke, 1);
3642
+ rb_define_method(rb_cHPDFExtGState, "set_alpha_fill", hpdf_ext_gstate_set_alpha_fill, 1);
3643
+ rb_define_method(rb_cHPDFExtGState, "set_blend_mode", hpdf_ext_gstate_set_blend_mode, 1);
3644
+ rb_define_method(rb_cHPDFPage, "set_ext_gstate", hpdf_page_set_ext_gstate, 1);
3645
+
3646
+ rb_eHPDFError = rb_define_class("HPDFError", rb_eStandardError);
3647
+
3648
+ rb_define_const(rb_cHPDFDoc, "HPDF_TRUE", INT2FIX(HPDF_TRUE));
3649
+ rb_define_const(rb_cHPDFDoc, "HPDF_FALSE", INT2FIX(HPDF_FALSE));
3650
+ rb_define_const(rb_cHPDFDoc, "HPDF_COMP_NONE", INT2FIX(HPDF_COMP_NONE));
3651
+ rb_define_const(rb_cHPDFDoc, "HPDF_COMP_TEXT", INT2FIX(HPDF_COMP_TEXT));
3652
+ rb_define_const(rb_cHPDFDoc, "HPDF_COMP_IMAGE", INT2FIX(HPDF_COMP_IMAGE));
3653
+ rb_define_const(rb_cHPDFDoc, "HPDF_COMP_METADATA", INT2FIX(HPDF_COMP_METADATA));
3654
+ rb_define_const(rb_cHPDFDoc, "HPDF_COMP_ALL", INT2FIX(HPDF_COMP_ALL));
3655
+ rb_define_const(rb_cHPDFDoc, "HPDF_HIDE_TOOLBAR", INT2FIX(HPDF_HIDE_TOOLBAR));
3656
+ rb_define_const(rb_cHPDFDoc, "HPDF_HIDE_MENUBAR", INT2FIX(HPDF_HIDE_MENUBAR));
3657
+ rb_define_const(rb_cHPDFDoc, "HPDF_HIDE_WINDOW_UI", INT2FIX(HPDF_HIDE_WINDOW_UI));
3658
+ rb_define_const(rb_cHPDFDoc, "HPDF_FIT_WINDOW", INT2FIX(HPDF_FIT_WINDOW));
3659
+ rb_define_const(rb_cHPDFDoc, "HPDF_CENTER_WINDOW", INT2FIX(HPDF_CENTER_WINDOW));
3660
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENABLE_READ", INT2FIX(HPDF_ENABLE_READ));
3661
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENABLE_PRINT", INT2FIX(HPDF_ENABLE_PRINT));
3662
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENABLE_EDIT_ALL", INT2FIX(HPDF_ENABLE_EDIT_ALL));
3663
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENABLE_COPY", INT2FIX(HPDF_ENABLE_COPY));
3664
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENABLE_EDIT", INT2FIX(HPDF_ENABLE_EDIT));
3665
+ rb_define_const(rb_cHPDFDoc, "HPDF_INFO_CREATION_DATE", INT2FIX(HPDF_INFO_CREATION_DATE));
3666
+ rb_define_const(rb_cHPDFDoc, "HPDF_INFO_MOD_DATE", INT2FIX(HPDF_INFO_MOD_DATE));
3667
+ rb_define_const(rb_cHPDFDoc, "HPDF_INFO_AUTHOR", INT2FIX(HPDF_INFO_AUTHOR));
3668
+ rb_define_const(rb_cHPDFDoc, "HPDF_INFO_CREATOR", INT2FIX(HPDF_INFO_CREATOR));
3669
+ rb_define_const(rb_cHPDFDoc, "HPDF_INFO_PRODUCER", INT2FIX(HPDF_INFO_PRODUCER));
3670
+ rb_define_const(rb_cHPDFDoc, "HPDF_INFO_TITLE", INT2FIX(HPDF_INFO_TITLE));
3671
+ rb_define_const(rb_cHPDFDoc, "HPDF_INFO_SUBJECT", INT2FIX(HPDF_INFO_SUBJECT));
3672
+ rb_define_const(rb_cHPDFDoc, "HPDF_INFO_KEYWORDS", INT2FIX(HPDF_INFO_KEYWORDS));
3673
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENCRYPT_R2", INT2FIX(HPDF_ENCRYPT_R2));
3674
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENCRYPT_R3", INT2FIX(HPDF_ENCRYPT_R3));
3675
+ rb_define_const(rb_cHPDFDoc, "HPDF_CS_DEVICE_GRAY", INT2FIX(HPDF_CS_DEVICE_GRAY));
3676
+ rb_define_const(rb_cHPDFDoc, "HPDF_CS_DEVICE_RGB", INT2FIX(HPDF_CS_DEVICE_RGB));
3677
+ rb_define_const(rb_cHPDFDoc, "HPDF_CS_DEVICE_CMYK", INT2FIX(HPDF_CS_DEVICE_CMYK));
3678
+ rb_define_const(rb_cHPDFDoc, "HPDF_BUTT_END", INT2FIX(HPDF_BUTT_END));
3679
+ rb_define_const(rb_cHPDFDoc, "HPDF_ROUND_END", INT2FIX(HPDF_ROUND_END));
3680
+ rb_define_const(rb_cHPDFDoc, "HPDF_PROJECTING_SCUARE_END", INT2FIX(HPDF_PROJECTING_SCUARE_END));
3681
+ rb_define_const(rb_cHPDFDoc, "HPDF_MITER_JOIN", INT2FIX(HPDF_MITER_JOIN));
3682
+ rb_define_const(rb_cHPDFDoc, "HPDF_ROUND_JOIN", INT2FIX(HPDF_ROUND_JOIN));
3683
+ rb_define_const(rb_cHPDFDoc, "HPDF_BEVEL_JOIN", INT2FIX(HPDF_BEVEL_JOIN));
3684
+ rb_define_const(rb_cHPDFDoc, "HPDF_FILL", INT2FIX(HPDF_FILL));
3685
+ rb_define_const(rb_cHPDFDoc, "HPDF_STROKE", INT2FIX(HPDF_STROKE));
3686
+ rb_define_const(rb_cHPDFDoc, "HPDF_FILL_THEN_STROKE", INT2FIX(HPDF_FILL_THEN_STROKE));
3687
+ rb_define_const(rb_cHPDFDoc, "HPDF_INVISIBLE", INT2FIX(HPDF_INVISIBLE));
3688
+ rb_define_const(rb_cHPDFDoc, "HPDF_FILL_CLIPPING", INT2FIX(HPDF_FILL_CLIPPING));
3689
+ rb_define_const(rb_cHPDFDoc, "HPDF_STROKE_CLIPPING", INT2FIX(HPDF_STROKE_CLIPPING));
3690
+ rb_define_const(rb_cHPDFDoc, "HPDF_FILL_STROKE_CLIPPING", INT2FIX(HPDF_FILL_STROKE_CLIPPING));
3691
+ rb_define_const(rb_cHPDFDoc, "HPDF_CLIPPING", INT2FIX(HPDF_CLIPPING));
3692
+ rb_define_const(rb_cHPDFDoc, "HPDF_WMODE_HORIZONTAL", INT2FIX(HPDF_WMODE_HORIZONTAL));
3693
+ rb_define_const(rb_cHPDFDoc, "HPDF_WMODE_VERTICAL", INT2FIX(HPDF_WMODE_VERTICAL));
3694
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_LAYOUT_SINGLE", INT2FIX(HPDF_PAGE_LAYOUT_SINGLE));
3695
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_LAYOUT_ONE_COLUMN", INT2FIX(HPDF_PAGE_LAYOUT_ONE_COLUMN));
3696
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_LAYOUT_TWO_COLUMN_LEFT", INT2FIX(HPDF_PAGE_LAYOUT_TWO_COLUMN_LEFT));
3697
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_LAYOUT_TWO_COLUMN_RIGHT", INT2FIX(HPDF_PAGE_LAYOUT_TWO_COLUMN_RIGHT));
3698
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_MODE_USE_NONE", INT2FIX(HPDF_PAGE_MODE_USE_NONE));
3699
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_MODE_USE_OUTLINE", INT2FIX(HPDF_PAGE_MODE_USE_OUTLINE));
3700
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_MODE_USE_THUMBS", INT2FIX(HPDF_PAGE_MODE_USE_THUMBS));
3701
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_MODE_FULL_SCREEN", INT2FIX(HPDF_PAGE_MODE_FULL_SCREEN));
3702
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_NUM_STYLE_DECIMAL", INT2FIX(HPDF_PAGE_NUM_STYLE_DECIMAL));
3703
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_NUM_STYLE_UPPER_ROMAN", INT2FIX(HPDF_PAGE_NUM_STYLE_UPPER_ROMAN));
3704
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_NUM_STYLE_LOWER_ROMAN", INT2FIX(HPDF_PAGE_NUM_STYLE_LOWER_ROMAN));
3705
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_NUM_STYLE_UPPER_LETTERS", INT2FIX(HPDF_PAGE_NUM_STYLE_UPPER_LETTERS));
3706
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_NUM_STYLE_LOWER_LETTERS", INT2FIX(HPDF_PAGE_NUM_STYLE_LOWER_LETTERS));
3707
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_NO_HIGHTLIGHT", INT2FIX(HPDF_ANNOT_NO_HIGHTLIGHT));
3708
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_INVERT_BOX", INT2FIX(HPDF_ANNOT_INVERT_BOX));
3709
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_INVERT_BORDER", INT2FIX(HPDF_ANNOT_INVERT_BORDER));
3710
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_DOWN_APPEARANCE", INT2FIX(HPDF_ANNOT_DOWN_APPEARANCE));
3711
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_ICON_COMMENT", INT2FIX(HPDF_ANNOT_ICON_COMMENT));
3712
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_ICON_KEY", INT2FIX(HPDF_ANNOT_ICON_KEY));
3713
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_ICON_NOTE", INT2FIX(HPDF_ANNOT_ICON_NOTE));
3714
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_ICON_HELP", INT2FIX(HPDF_ANNOT_ICON_HELP));
3715
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_ICON_NEW_PARAGRAPH", INT2FIX(HPDF_ANNOT_ICON_NEW_PARAGRAPH));
3716
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_ICON_PARAGRAPH", INT2FIX(HPDF_ANNOT_ICON_PARAGRAPH));
3717
+ rb_define_const(rb_cHPDFDoc, "HPDF_ANNOT_ICON_INSERT", INT2FIX(HPDF_ANNOT_ICON_INSERT));
3718
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_LETTER", INT2FIX(HPDF_PAGE_SIZE_LETTER));
3719
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_LEGAL", INT2FIX(HPDF_PAGE_SIZE_LEGAL));
3720
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_A3", INT2FIX(HPDF_PAGE_SIZE_A3));
3721
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_A4", INT2FIX(HPDF_PAGE_SIZE_A4));
3722
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_A5", INT2FIX(HPDF_PAGE_SIZE_A5));
3723
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_B4", INT2FIX(HPDF_PAGE_SIZE_B4));
3724
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_B5", INT2FIX(HPDF_PAGE_SIZE_B5));
3725
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_EXECUTIVE", INT2FIX(HPDF_PAGE_SIZE_EXECUTIVE));
3726
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_US4x6", INT2FIX(HPDF_PAGE_SIZE_US4x6));
3727
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_US4x8", INT2FIX(HPDF_PAGE_SIZE_US4x8));
3728
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_US5x7", INT2FIX(HPDF_PAGE_SIZE_US5x7));
3729
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_SIZE_COMM10", INT2FIX(HPDF_PAGE_SIZE_COMM10));
3730
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_PORTRAIT", INT2FIX(HPDF_PAGE_PORTRAIT));
3731
+ rb_define_const(rb_cHPDFDoc, "HPDF_PAGE_LANDSCAPE", INT2FIX(HPDF_PAGE_LANDSCAPE));
3732
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENCODER_TYPE_SINGLE_BYTE", INT2FIX(HPDF_ENCODER_TYPE_SINGLE_BYTE));
3733
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENCODER_TYPE_DOUBLE_BYTE", INT2FIX(HPDF_ENCODER_TYPE_DOUBLE_BYTE));
3734
+ rb_define_const(rb_cHPDFDoc, "HPDF_ENCODER_TYPE_UNINITIALIZED", INT2FIX(HPDF_ENCODER_TYPE_UNINITIALIZED));
3735
+ rb_define_const(rb_cHPDFDoc, "HPDF_BYTE_TYPE_SINGLE", INT2FIX(HPDF_BYTE_TYPE_SINGLE));
3736
+ rb_define_const(rb_cHPDFDoc, "HPDF_BYTE_TYPE_LEAD", INT2FIX(HPDF_BYTE_TYPE_LEAD));
3737
+ rb_define_const(rb_cHPDFDoc, "HPDF_BYTE_TYPE_TRIAL", INT2FIX(HPDF_BYTE_TYPE_TRIAL));
3738
+ rb_define_const(rb_cHPDFDoc, "HPDF_GMODE_PAGE_DESCRIPTION", INT2FIX(HPDF_GMODE_PAGE_DESCRIPTION));
3739
+ rb_define_const(rb_cHPDFDoc, "HPDF_GMODE_PATH_OBJECT", INT2FIX(HPDF_GMODE_PATH_OBJECT));
3740
+ rb_define_const(rb_cHPDFDoc, "HPDF_GMODE_TEXT_OBJECT", INT2FIX(HPDF_GMODE_TEXT_OBJECT));
3741
+ rb_define_const(rb_cHPDFDoc, "HPDF_GMODE_CLIPPING_PATH", INT2FIX(HPDF_GMODE_CLIPPING_PATH));
3742
+ rb_define_const(rb_cHPDFDoc, "HPDF_GMODE_SHADING", INT2FIX(HPDF_GMODE_SHADING));
3743
+ rb_define_const(rb_cHPDFDoc, "HPDF_GMODE_INLINE_IMAGE", INT2FIX(HPDF_GMODE_INLINE_IMAGE));
3744
+ rb_define_const(rb_cHPDFDoc, "HPDF_GMODE_EXTERNAL_OBJECT", INT2FIX(HPDF_GMODE_EXTERNAL_OBJECT));
3745
+ rb_define_const(rb_cHPDFDoc, "HPDF_TALIGN_LEFT", INT2FIX(HPDF_TALIGN_LEFT));
3746
+ rb_define_const(rb_cHPDFDoc, "HPDF_TALIGN_RIGHT", INT2FIX(HPDF_TALIGN_RIGHT));
3747
+ rb_define_const(rb_cHPDFDoc, "HPDF_TALIGN_CENTER", INT2FIX(HPDF_TALIGN_CENTER));
3748
+ rb_define_const(rb_cHPDFDoc, "HPDF_TALIGN_JUSTIFY", INT2FIX(HPDF_TALIGN_JUSTIFY));
3749
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_NORMAL", INT2FIX(HPDF_BM_NORMAL));
3750
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_MULTIPLY", INT2FIX(HPDF_BM_MULTIPLY));
3751
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_SCREEN", INT2FIX(HPDF_BM_SCREEN));
3752
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_OVERLAY", INT2FIX(HPDF_BM_OVERLAY));
3753
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_DARKEN", INT2FIX(HPDF_BM_DARKEN));
3754
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_LIGHTEN", INT2FIX(HPDF_BM_LIGHTEN));
3755
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_COLOR_DODGE", INT2FIX(HPDF_BM_COLOR_DODGE));
3756
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_COLOR_BUM", INT2FIX(HPDF_BM_COLOR_BUM));
3757
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_HARD_LIGHT", INT2FIX(HPDF_BM_HARD_LIGHT));
3758
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_SOFT_LIGHT", INT2FIX(HPDF_BM_SOFT_LIGHT));
3759
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_DIFFERENCE", INT2FIX(HPDF_BM_DIFFERENCE));
3760
+ rb_define_const(rb_cHPDFDoc, "HPDF_BM_EXCLUSHON", INT2FIX(HPDF_BM_EXCLUSHON));
3761
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_WIPE_RIGHT", INT2FIX(HPDF_TS_WIPE_RIGHT));
3762
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_WIPE_UP", INT2FIX(HPDF_TS_WIPE_UP));
3763
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_WIPE_LEFT", INT2FIX(HPDF_TS_WIPE_LEFT));
3764
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_WIPE_DOWN", INT2FIX(HPDF_TS_WIPE_DOWN));
3765
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_BARN_DOORS_HORIZONTAL_OUT", INT2FIX(HPDF_TS_BARN_DOORS_HORIZONTAL_OUT));
3766
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_BARN_DOORS_HORIZONTAL_IN", INT2FIX(HPDF_TS_BARN_DOORS_HORIZONTAL_IN));
3767
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_BARN_DOORS_VERTICAL_OUT", INT2FIX(HPDF_TS_BARN_DOORS_VERTICAL_OUT));
3768
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_BARN_DOORS_VERTICAL_IN", INT2FIX(HPDF_TS_BARN_DOORS_VERTICAL_IN));
3769
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_BOX_OUT", INT2FIX(HPDF_TS_BOX_OUT));
3770
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_BOX_IN", INT2FIX(HPDF_TS_BOX_IN));
3771
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_BLINDS_HORIZONTAL", INT2FIX(HPDF_TS_BLINDS_HORIZONTAL));
3772
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_BLINDS_VERTICAL", INT2FIX(HPDF_TS_BLINDS_VERTICAL));
3773
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_DISSOLVE", INT2FIX(HPDF_TS_DISSOLVE));
3774
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_GLITTER_RIGHT", INT2FIX(HPDF_TS_GLITTER_RIGHT));
3775
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_GLITTER_DOWN", INT2FIX(HPDF_TS_GLITTER_DOWN));
3776
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT", INT2FIX(HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT));
3777
+ rb_define_const(rb_cHPDFDoc, "HPDF_TS_REPLACE", INT2FIX(HPDF_TS_REPLACE));
3778
+ }
3779
+