hpdf 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
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
+