libharu-ruby 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/extconf.rb +6 -0
  3. data/hpdf.c +3779 -0
  4. metadata +46 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3766ce157461c3246f1c59c35cd01807342af467
4
+ data.tar.gz: 40595eda673691d3ecf4e398f93ee8151abce20f
5
+ SHA512:
6
+ metadata.gz: f5ddb32646b9cae488887678846e953c2637386010ff370f6b8a0407992fea0480aa24a88a5326a0c1ce6734ec79b6bd61e7485dd033258e7212f62a6e7615ca
7
+ data.tar.gz: 96cd26afc59de1294296c374965b92edf8703f2af34e6619f3822b2ca7f23fa290f5f9afb6b06300f5318e49144bcd7aaa026d329b127a6601c28febdccc2f67
@@ -0,0 +1,6 @@
1
+ require 'mkmf'
2
+ #$CPPFLAGS = $CPPFLAGS + " -I../../include"
3
+ #$LDFLAGS = $LDFLAGS + " -L../../"
4
+ $LIBS = $LIBS + " -lhpdf -lpng -lz"
5
+ create_makefile 'hpdf'
6
+
data/hpdf.c ADDED
@@ -0,0 +1,3779 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.5 >> -- hpdf.c
3
+ *
4
+ * URL http://libharu.org/
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 "ruby/io.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, "%s", 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, StringValuePtr(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
+ HPDF_PTRACE(("hpdf_insert_page pdf=%p\n", pdf));
375
+
376
+ new_page = HPDF_InsertPage(pdf, target);
377
+
378
+ return Data_Wrap_Struct (rb_cHPDFPage, 0, 0, new_page);
379
+ }
380
+
381
+ static VALUE
382
+ hpdf_page_set_width (VALUE obj, VALUE width)
383
+ {
384
+ HPDF_Page page;
385
+ HPDF_STATUS ret;
386
+ HPDF_REAL f;
387
+
388
+ f = NUM2DBL(width);
389
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
390
+
391
+ HPDF_PTRACE(("hpdf_page_set_width page=%p\n", page));
392
+
393
+ ret = HPDF_Page_SetWidth(page, f);
394
+
395
+ return INT2NUM(ret);
396
+ }
397
+
398
+ static VALUE
399
+ hpdf_page_set_height (VALUE obj, VALUE height)
400
+ {
401
+ HPDF_Page page;
402
+ HPDF_STATUS ret;
403
+ HPDF_REAL f;
404
+
405
+ f = NUM2DBL(height);
406
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
407
+
408
+ HPDF_PTRACE(("hpdf_page_set_height page=%p\n", page));
409
+
410
+ ret = HPDF_Page_SetHeight(page, f);
411
+
412
+ return INT2NUM(ret);
413
+ }
414
+
415
+ static VALUE
416
+ hpdf_page_set_size (VALUE obj, VALUE size, VALUE direction)
417
+ {
418
+ HPDF_Page page;
419
+ HPDF_STATUS ret;
420
+ HPDF_INT i1;
421
+ HPDF_INT i2;
422
+
423
+ i1 = NUM2INT(size);
424
+ i2 = NUM2INT(direction);
425
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
426
+
427
+ HPDF_PTRACE(("hpdf_page_set_size page=%p\n", page));
428
+
429
+ ret = HPDF_Page_SetSize(page, i1, i2);
430
+
431
+ return INT2NUM(ret);
432
+ }
433
+
434
+ static VALUE
435
+ hpdf_page_set_rotate (VALUE obj, VALUE angle)
436
+ {
437
+ HPDF_Page page;
438
+ HPDF_STATUS ret;
439
+ HPDF_INT i;
440
+
441
+ i = NUM2INT(angle);
442
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
443
+
444
+ HPDF_PTRACE(("hpdf_page_set_rotate page=%p\n", page));
445
+
446
+ ret = HPDF_Page_SetRotate(page, i);
447
+
448
+ return INT2NUM(ret);
449
+ }
450
+
451
+ static VALUE
452
+ hpdf_get_font (VALUE obj, VALUE font_name, VALUE encoding_name)
453
+ {
454
+ HPDF_Font font;
455
+ HPDF_Doc pdf;
456
+ const char *s1;
457
+ const char *s2;
458
+
459
+ s1 = StringValuePtr(font_name);
460
+
461
+ if (encoding_name == Qnil)
462
+ s2 = NULL;
463
+ else {
464
+ s2 = StringValuePtr(encoding_name);
465
+
466
+ if (HPDF_StrLen(s2, -1) == 0)
467
+ s2 = NULL;
468
+ }
469
+
470
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
471
+
472
+ HPDF_PTRACE(("hpdf_get_font pdf=%p\n", pdf));
473
+
474
+ font = HPDF_GetFont(pdf, s1, s2);
475
+
476
+ return Data_Wrap_Struct (rb_cHPDFFont, 0, 0, font);
477
+ }
478
+
479
+ static VALUE
480
+ hpdf_load_type1font_from_file (VALUE obj, VALUE afm, VALUE pfa)
481
+ {
482
+ const char* font_name;
483
+ HPDF_Doc pdf;
484
+ const char *s1;
485
+ const char *s2;
486
+
487
+ s1 = StringValuePtr(afm);
488
+ s2 = StringValuePtr(pfa);
489
+
490
+ if (HPDF_StrLen(s2, -1) == 0)
491
+ s2 = NULL;
492
+
493
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
494
+
495
+ HPDF_PTRACE(("hpdf_load_type1font_from_file pdf=%p\n", pdf));
496
+
497
+ font_name = HPDF_LoadType1FontFromFile(pdf, s1, s2);
498
+
499
+ return rb_str_new2(font_name);
500
+ }
501
+
502
+ static VALUE
503
+ hpdf_load_ttfont_from_file (VALUE obj, VALUE file_name, VALUE embedding)
504
+ {
505
+ const char* font_name;
506
+ HPDF_Doc pdf;
507
+ const char *s;
508
+ HPDF_INT i;
509
+
510
+ s = StringValuePtr(file_name);
511
+ i = NUM2INT(embedding);
512
+
513
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
514
+
515
+ HPDF_PTRACE(("hpdf_load_ttfont_from_file pdf=%p\n", pdf));
516
+
517
+ font_name = HPDF_LoadTTFontFromFile(pdf, s, i);
518
+
519
+ return rb_str_new2(font_name);
520
+ }
521
+
522
+ static VALUE
523
+ hpdf_load_ttfont_from_file2 (VALUE obj, VALUE file_name, VALUE index, VALUE embedding)
524
+ {
525
+ const char* font_name;
526
+ HPDF_Doc pdf;
527
+ const char *s;
528
+ HPDF_INT i1;
529
+ HPDF_INT i2;
530
+
531
+ s = StringValuePtr(file_name);
532
+ i1 = NUM2INT(index);
533
+ i2 = NUM2INT(embedding);
534
+
535
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
536
+
537
+ HPDF_PTRACE(("hpdf_load_ttfont_from_file2 pdf=%p\n", pdf));
538
+
539
+ font_name = HPDF_LoadTTFontFromFile2(pdf, s, i1, i2);
540
+
541
+ return rb_str_new2(font_name);
542
+ }
543
+
544
+ static VALUE
545
+ hpdf_add_page_label (VALUE obj, VALUE page_num, VALUE style, VALUE first_page, VALUE prefix)
546
+ {
547
+ HPDF_Doc pdf;
548
+ HPDF_STATUS ret;
549
+ HPDF_INT i1;
550
+ HPDF_INT i2;
551
+ HPDF_INT i3;
552
+ const char *s;
553
+
554
+ i1 = NUM2INT(page_num);
555
+ i2 = NUM2INT(style);
556
+ i3 = NUM2INT(first_page);
557
+ s = StringValuePtr(prefix);
558
+
559
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
560
+
561
+ HPDF_PTRACE(("hpdf_add_page_label pdf=%p\n", pdf));
562
+
563
+ ret = HPDF_AddPageLabel(pdf, i1, i2, i3, s);
564
+
565
+ return INT2NUM(ret);
566
+ }
567
+
568
+ static VALUE
569
+ hpdf_use_jp_fonts (VALUE obj)
570
+ {
571
+ HPDF_Doc pdf;
572
+ HPDF_STATUS ret;
573
+
574
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
575
+
576
+ HPDF_PTRACE(("hpdf_use_jp_fonts pdf=%p\n", pdf));
577
+
578
+ ret = HPDF_UseJPFonts(pdf);
579
+
580
+ return INT2NUM(ret);
581
+ }
582
+
583
+ static VALUE
584
+ hpdf_use_kr_fonts (VALUE obj)
585
+ {
586
+ HPDF_Doc pdf;
587
+ HPDF_STATUS ret;
588
+
589
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
590
+
591
+ HPDF_PTRACE(("hpdf_use_kr_fonts pdf=%p\n", pdf));
592
+
593
+ ret = HPDF_UseKRFonts(pdf);
594
+
595
+ return INT2NUM(ret);
596
+ }
597
+
598
+ static VALUE
599
+ hpdf_use_cns_fonts (VALUE obj)
600
+ {
601
+ HPDF_Doc pdf;
602
+ HPDF_STATUS ret;
603
+
604
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
605
+
606
+ HPDF_PTRACE(("hpdf_use_cns_fonts pdf=%p\n", pdf));
607
+
608
+ ret = HPDF_UseCNSFonts(pdf);
609
+
610
+ return INT2NUM(ret);
611
+ }
612
+
613
+ static VALUE
614
+ hpdf_use_cnt_fonts (VALUE obj)
615
+ {
616
+ HPDF_Doc pdf;
617
+ HPDF_STATUS ret;
618
+
619
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
620
+
621
+ HPDF_PTRACE(("hpdf_use_cnt_fonts pdf=%p\n", pdf));
622
+
623
+ ret = HPDF_UseCNSFonts(pdf);
624
+
625
+ return INT2NUM(ret);
626
+ }
627
+
628
+
629
+ static VALUE
630
+ hpdf_create_outline (VALUE obj, VALUE parent, VALUE title, VALUE encoder)
631
+ {
632
+ HPDF_Doc pdf;
633
+ HPDF_Outline outline1 = NULL;
634
+ HPDF_Outline outline2;
635
+ HPDF_Encoder e = NULL;
636
+ const char *s;
637
+
638
+ if (HPDF_StrCmp(rb_obj_classname(parent), "HPDFOutline") == 0)
639
+ Data_Get_Struct(parent, HPDF_Dict_Rec, outline1);
640
+
641
+ if (HPDF_StrCmp(rb_obj_classname(encoder), "HPDFEncoder") == 0)
642
+ Data_Get_Struct(encoder, HPDF_Encoder_Rec, e);
643
+
644
+ s = StringValuePtr(title);
645
+
646
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
647
+
648
+ HPDF_PTRACE(("hpdf_create_outline pdf=%p\n", pdf));
649
+
650
+ outline2 = HPDF_CreateOutline(pdf, outline1, s, e);
651
+
652
+ return Data_Wrap_Struct (rb_cHPDFOutline, 0, 0, outline2);
653
+ }
654
+
655
+
656
+ static VALUE
657
+ hpdf_outline_set_opend (VALUE obj, VALUE opend)
658
+ {
659
+ HPDF_Outline outline;
660
+ HPDF_STATUS ret;
661
+ HPDF_INT i;
662
+
663
+ Data_Get_Struct(obj, HPDF_Dict_Rec, outline);
664
+ i = NUM2INT(opend);
665
+
666
+ HPDF_PTRACE(("hpdf_outline_set_opend outline=%p\n", outline));
667
+
668
+ ret = HPDF_Outline_SetOpened(outline, i);
669
+
670
+ return INT2NUM(ret);
671
+ }
672
+
673
+ static VALUE
674
+ hpdf_outline_set_destination (VALUE obj, VALUE dest)
675
+ {
676
+ HPDF_Outline outline;
677
+ HPDF_Destination d;
678
+ HPDF_STATUS ret;
679
+
680
+ if (HPDF_StrCmp(rb_obj_classname(dest), "HPDFDestination") != 0)
681
+ rb_raise(rb_eHPDFError, "invalid argument(1).");
682
+
683
+ Data_Get_Struct(obj, HPDF_Dict_Rec, outline);
684
+ Data_Get_Struct(dest, HPDF_Array_Rec, d);
685
+
686
+ HPDF_PTRACE(("hpdf_outline_set_destination outline=%p\n", outline));
687
+
688
+ ret = HPDF_Outline_SetDestination(outline, d);
689
+
690
+ return INT2NUM(ret);
691
+ }
692
+
693
+
694
+ static VALUE
695
+ hpdf_page_create_destination (VALUE obj)
696
+ {
697
+ HPDF_Page page;
698
+ HPDF_Destination d;
699
+
700
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
701
+
702
+ HPDF_PTRACE(("hpdf_page_create_destination page=%p\n", page));
703
+
704
+ d = HPDF_Page_CreateDestination(page);
705
+
706
+ return Data_Wrap_Struct (rb_cHPDFDestination, 0, 0, d);
707
+ }
708
+
709
+ static VALUE
710
+ hpdf_destination_set_xyz (VALUE obj, VALUE left, VALUE top, VALUE zoom)
711
+ {
712
+ HPDF_Destination d;
713
+ HPDF_STATUS ret;
714
+ HPDF_INT i1;
715
+ HPDF_INT i2;
716
+ HPDF_INT i3;
717
+
718
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
719
+ i1 = NUM2INT(left);
720
+ i2 = NUM2INT(top);
721
+ i3 = NUM2INT(zoom);
722
+
723
+ HPDF_PTRACE(("hpdf_destination_set_xyz destination=%p\n", d));
724
+
725
+ ret = HPDF_Destination_SetXYZ(d, i1, i2, i3);
726
+
727
+ return INT2NUM(ret);
728
+ }
729
+
730
+ static VALUE
731
+ hpdf_destination_set_fit (VALUE obj)
732
+ {
733
+ HPDF_Destination d;
734
+ HPDF_STATUS ret;
735
+
736
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
737
+
738
+ HPDF_PTRACE(("hpdf_destination_set_fit destination=%p\n", d));
739
+
740
+ ret = HPDF_Destination_SetFit(d);
741
+
742
+ return INT2NUM(ret);
743
+ }
744
+
745
+ static VALUE
746
+ hpdf_destination_set_fit_h (VALUE obj, VALUE top)
747
+ {
748
+ HPDF_Destination d;
749
+ HPDF_STATUS ret;
750
+ HPDF_INT i1;
751
+
752
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
753
+ i1 = NUM2INT(top);
754
+
755
+ HPDF_PTRACE(("hpdf_destination_set_fit_h destination=%p\n", d));
756
+
757
+ ret = HPDF_Destination_SetFitH(d, i1);
758
+
759
+ return INT2NUM(ret);
760
+ }
761
+
762
+ static VALUE
763
+ hpdf_destination_set_fit_v (VALUE obj, VALUE left)
764
+ {
765
+ HPDF_Destination d;
766
+ HPDF_STATUS ret;
767
+ HPDF_INT i1;
768
+
769
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
770
+ i1 = NUM2INT(left);
771
+
772
+ HPDF_PTRACE(("hpdf_destination_set_fit_v destination=%p\n", d));
773
+
774
+ ret = HPDF_Destination_SetFitV(d, i1);
775
+
776
+ return INT2NUM(ret);
777
+ }
778
+
779
+ static VALUE
780
+ hpdf_destination_set_fit_b (VALUE obj)
781
+ {
782
+ HPDF_Destination d;
783
+ HPDF_STATUS ret;
784
+
785
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
786
+
787
+ HPDF_PTRACE(("hpdf_destination_set_fit_b destination=%p\n", d));
788
+
789
+ ret = HPDF_Destination_SetFitB(d);
790
+
791
+ return INT2NUM(ret);
792
+ }
793
+
794
+ static VALUE
795
+ hpdf_destination_set_fit_bh (VALUE obj, VALUE top)
796
+ {
797
+ HPDF_Destination d;
798
+ HPDF_STATUS ret;
799
+ HPDF_INT i1;
800
+
801
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
802
+ i1 = NUM2INT(top);
803
+
804
+ HPDF_PTRACE(("hpdf_destination_set_fit_bh destination=%p\n", d));
805
+
806
+ ret = HPDF_Destination_SetFitBH(d, i1);
807
+
808
+ return INT2NUM(ret);
809
+ }
810
+
811
+ static VALUE
812
+ hpdf_destination_set_fit_bv (VALUE obj, VALUE left)
813
+ {
814
+ HPDF_Destination d;
815
+ HPDF_STATUS ret;
816
+ HPDF_INT i1;
817
+
818
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
819
+ i1 = NUM2INT(left);
820
+
821
+ HPDF_PTRACE(("hpdf_destination_set_fit_bv destination=%p\n", d));
822
+
823
+ ret = HPDF_Destination_SetFitBV(d, i1);
824
+
825
+ return INT2NUM(ret);
826
+ }
827
+
828
+
829
+ static VALUE
830
+ hpdf_destination_set_fit_r (VALUE obj, VALUE left, VALUE bottom, VALUE right, VALUE top)
831
+ {
832
+ HPDF_Destination d;
833
+ HPDF_STATUS ret;
834
+ HPDF_INT i1;
835
+ HPDF_INT i2;
836
+ HPDF_INT i3;
837
+ HPDF_INT i4;
838
+
839
+ Data_Get_Struct(obj, HPDF_Array_Rec, d);
840
+ i1 = NUM2INT(left);
841
+ i2 = NUM2INT(bottom);
842
+ i3 = NUM2INT(right);
843
+ i4 = NUM2INT(top);
844
+
845
+ HPDF_PTRACE(("hpdf_destination_set_fit_r destination=%p\n", d));
846
+
847
+ ret = HPDF_Destination_SetFitR(d, i1, i2, i3, i4);
848
+
849
+ return INT2NUM(ret);
850
+ }
851
+
852
+ static VALUE
853
+ hpdf_get_encoder (VALUE obj, VALUE encoding_name)
854
+ {
855
+ HPDF_Encoder encoder;
856
+ HPDF_Doc pdf;
857
+ const char *s1;
858
+
859
+ s1 = StringValuePtr(encoding_name);
860
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
861
+
862
+ HPDF_PTRACE(("hpdf_get_encoder pdf=%p\n", pdf));
863
+
864
+ encoder = HPDF_GetEncoder(pdf, s1);
865
+
866
+ return Data_Wrap_Struct (rb_cHPDFEncoder, 0, 0, encoder);
867
+ }
868
+
869
+ static VALUE
870
+ hpdf_get_current_encoder (VALUE obj)
871
+ {
872
+ HPDF_Encoder encoder;
873
+ HPDF_Doc pdf;
874
+
875
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
876
+
877
+ HPDF_PTRACE(("hpdf_get_current_encoder pdf=%p\n", pdf));
878
+
879
+ encoder = HPDF_GetCurrentEncoder(pdf);
880
+
881
+ return Data_Wrap_Struct (rb_cHPDFEncoder, 0, 0, encoder);
882
+ }
883
+
884
+ static VALUE
885
+ hpdf_set_current_encoder (VALUE obj, VALUE encoding_name)
886
+ {
887
+ HPDF_Doc pdf;
888
+ HPDF_STATUS ret;
889
+ const char *s1;
890
+
891
+ s1 = StringValuePtr(encoding_name);
892
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
893
+
894
+ HPDF_PTRACE(("hpdf_set_current_encoder pdf=%p\n", pdf));
895
+
896
+ ret = HPDF_SetCurrentEncoder(pdf, s1);
897
+
898
+ return INT2NUM(ret);
899
+ }
900
+
901
+ static VALUE
902
+ hpdf_encoder_get_type (VALUE obj)
903
+ {
904
+ HPDF_Encoder encoder;
905
+ HPDF_STATUS ret;
906
+
907
+ Data_Get_Struct(obj, HPDF_Encoder_Rec, encoder);
908
+
909
+ HPDF_PTRACE(("hpdf_encoder_get_type encoder=%p\n", encoder));
910
+
911
+ ret = HPDF_Encoder_GetType(encoder);
912
+
913
+ return INT2NUM(ret);
914
+ }
915
+
916
+ static VALUE
917
+ hpdf_encoder_get_byte_type (VALUE obj, VALUE text, VALUE index)
918
+ {
919
+ HPDF_Encoder encoder;
920
+ const char *s;
921
+ HPDF_INT i;
922
+ HPDF_STATUS ret;
923
+
924
+ s = StringValuePtr(text);
925
+ i = NUM2INT(index);
926
+
927
+ Data_Get_Struct(obj, HPDF_Encoder_Rec, encoder);
928
+
929
+ HPDF_PTRACE(("hpdf_encoder_get_byte_type encoder=%p\n", encoder));
930
+
931
+ ret = HPDF_Encoder_GetByteType(encoder, s, i);
932
+
933
+ return INT2NUM(ret);
934
+ }
935
+
936
+ static VALUE
937
+ hpdf_encoder_get_unicode (VALUE obj, VALUE code)
938
+ {
939
+ HPDF_Encoder encoder;
940
+ HPDF_INT i;
941
+ HPDF_STATUS ret;
942
+
943
+ i = NUM2INT(code);
944
+
945
+ Data_Get_Struct(obj, HPDF_Encoder_Rec, encoder);
946
+
947
+ HPDF_PTRACE(("hpdf_encoder_get_unicode encoder=%p\n", encoder));
948
+
949
+ ret = HPDF_Encoder_GetUnicode(encoder, i);
950
+
951
+ return INT2NUM(ret);
952
+ }
953
+
954
+ static VALUE
955
+ hpdf_encoder_get_writing_mode (VALUE obj)
956
+ {
957
+ HPDF_Encoder encoder;
958
+ HPDF_STATUS ret;
959
+
960
+ Data_Get_Struct(obj, HPDF_Encoder_Rec, encoder);
961
+
962
+ HPDF_PTRACE(("hpdf_encoder_get_writing_mode encoder=%p\n", encoder));
963
+
964
+ ret = HPDF_Encoder_GetWritingMode(encoder);
965
+
966
+ return INT2NUM(ret);
967
+ }
968
+
969
+ static VALUE
970
+ hpdf_use_jp_encodings (VALUE obj)
971
+ {
972
+ HPDF_Doc pdf;
973
+ HPDF_STATUS ret;
974
+
975
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
976
+
977
+ HPDF_PTRACE(("hpdf_use_jp_encodings pdf=%p\n", pdf));
978
+
979
+ ret = HPDF_UseJPEncodings(pdf);
980
+
981
+ return INT2NUM(ret);
982
+ }
983
+
984
+ static VALUE
985
+ hpdf_use_kr_encodings (VALUE obj)
986
+ {
987
+ HPDF_Doc pdf;
988
+ HPDF_STATUS ret;
989
+
990
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
991
+
992
+ HPDF_PTRACE(("hpdf_use_kr_encodings pdf=%p\n", pdf));
993
+
994
+ ret = HPDF_UseKREncodings(pdf);
995
+
996
+ return INT2NUM(ret);
997
+ }
998
+
999
+ static VALUE
1000
+ hpdf_use_cns_encodings (VALUE obj)
1001
+ {
1002
+ HPDF_Doc pdf;
1003
+ HPDF_STATUS ret;
1004
+
1005
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1006
+
1007
+ HPDF_PTRACE(("hpdf_use_cns_encodings pdf=%p\n", pdf));
1008
+
1009
+ ret = HPDF_UseCNSEncodings(pdf);
1010
+
1011
+ return INT2NUM(ret);
1012
+ }
1013
+
1014
+ static VALUE
1015
+ hpdf_use_cnt_encodings (VALUE obj)
1016
+ {
1017
+ HPDF_Doc pdf;
1018
+ HPDF_STATUS ret;
1019
+
1020
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1021
+
1022
+ HPDF_PTRACE(("hpdf_use_cnt_encodings pdf=%p\n", pdf));
1023
+
1024
+ ret = HPDF_UseCNTEncodings(pdf);
1025
+
1026
+ return INT2NUM(ret);
1027
+ }
1028
+
1029
+ static VALUE
1030
+ hpdf_page_create_text_annot (VALUE obj, VALUE left, VALUE bottom, VALUE right, VALUE top, VALUE text, VALUE encoder)
1031
+ {
1032
+ HPDF_Page page;
1033
+ HPDF_Rect rect;
1034
+ HPDF_Encoder e = NULL;
1035
+ const char *s;
1036
+ HPDF_Annotation annot;
1037
+
1038
+ if (HPDF_StrCmp(rb_obj_classname(encoder), "HPDFEncoder") == 0)
1039
+ Data_Get_Struct(encoder, HPDF_Encoder_Rec, e);
1040
+
1041
+ s = StringValuePtr(text);
1042
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1043
+ rect.left = NUM2INT(left);
1044
+ rect.bottom = NUM2INT(bottom);
1045
+ rect.right = NUM2INT(right);
1046
+ rect.top = NUM2INT(top);
1047
+
1048
+ HPDF_PTRACE(("hpdf_page_create_text_annot page=%p\n", page));
1049
+
1050
+ annot = HPDF_Page_CreateTextAnnot(page, rect, s, e);
1051
+
1052
+ return Data_Wrap_Struct (rb_cHPDFAnnotation, 0, 0, annot);
1053
+ }
1054
+
1055
+
1056
+ static VALUE
1057
+ hpdf_page_create_link_annot (VALUE obj, VALUE left, VALUE bottom, VALUE right, VALUE top, VALUE dest)
1058
+ {
1059
+ HPDF_Page page;
1060
+ HPDF_Rect rect;
1061
+ HPDF_Destination d = NULL;
1062
+ HPDF_Annotation annot;
1063
+
1064
+ if (HPDF_StrCmp(rb_obj_classname(dest), "HPDFDestination") == 0)
1065
+ Data_Get_Struct(dest, HPDF_Array_Rec, d);
1066
+
1067
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1068
+ rect.left = NUM2INT(left);
1069
+ rect.bottom = NUM2INT(bottom);
1070
+ rect.right = NUM2INT(right);
1071
+ rect.top = NUM2INT(top);
1072
+
1073
+ HPDF_PTRACE(("hpdf_page_create_link_annot page=%p\n", page));
1074
+
1075
+ annot = HPDF_Page_CreateLinkAnnot(page, rect, d);
1076
+
1077
+ return Data_Wrap_Struct (rb_cHPDFAnnotation, 0, 0, annot);
1078
+ }
1079
+
1080
+ static VALUE
1081
+ hpdf_page_create_uri_link_annot (VALUE obj, VALUE left, VALUE bottom, VALUE right, VALUE top, VALUE uri)
1082
+ {
1083
+ HPDF_Page page;
1084
+ HPDF_Rect rect;
1085
+ const char *s;
1086
+ HPDF_Annotation annot;
1087
+
1088
+ s = StringValuePtr(uri);
1089
+ Data_Get_Struct(obj, HPDF_Dict_Rec, page);
1090
+ rect.left = NUM2INT(left);
1091
+ rect.bottom = NUM2INT(bottom);
1092
+ rect.right = NUM2INT(right);
1093
+ rect.top = NUM2INT(top);
1094
+
1095
+ HPDF_PTRACE(("hpdf_page_create_uri_link_annot page=%p\n", page));
1096
+
1097
+ annot = HPDF_Page_CreateURILinkAnnot(page, rect, s);
1098
+
1099
+ return Data_Wrap_Struct (rb_cHPDFAnnotation, 0, 0, annot);
1100
+ }
1101
+
1102
+ static VALUE
1103
+ hpdf_linkannot_set_highlight_mode (VALUE obj, VALUE mode)
1104
+ {
1105
+ HPDF_Annotation annot;
1106
+ HPDF_STATUS ret;
1107
+ HPDF_INT i;
1108
+
1109
+ Data_Get_Struct(obj, HPDF_Dict_Rec, annot);
1110
+ i = NUM2INT(mode);
1111
+
1112
+ HPDF_PTRACE(("hpdf_linkannot_set_highlight_mode annot=%p\n", annot));
1113
+
1114
+ ret = HPDF_LinkAnnot_SetHighlightMode(annot, i);
1115
+
1116
+ return INT2NUM(ret);
1117
+ }
1118
+
1119
+ static VALUE
1120
+ hpdf_linkannot_set_border_style (VALUE obj, VALUE width, VALUE dash_on, VALUE dash_off)
1121
+ {
1122
+ HPDF_Annotation annot;
1123
+ HPDF_STATUS ret;
1124
+ HPDF_INT i1;
1125
+ HPDF_INT i2;
1126
+ HPDF_INT i3;
1127
+
1128
+ Data_Get_Struct(obj, HPDF_Dict_Rec, annot);
1129
+ i1 = NUM2INT(width);
1130
+ i2 = NUM2INT(dash_on);
1131
+ i3 = NUM2INT(dash_off);
1132
+
1133
+ HPDF_PTRACE(("hpdf_linkannot_set_border_style annot=%p\n", annot));
1134
+
1135
+ ret = HPDF_LinkAnnot_SetBorderStyle(annot, i1, i2, i3);
1136
+
1137
+ return INT2NUM(ret);
1138
+ }
1139
+
1140
+ static VALUE
1141
+ hpdf_textannot_set_icon (VALUE obj, VALUE icon)
1142
+ {
1143
+ HPDF_Annotation annot;
1144
+ HPDF_STATUS ret;
1145
+ HPDF_INT i;
1146
+
1147
+ Data_Get_Struct(obj, HPDF_Dict_Rec, annot);
1148
+ i = NUM2INT(icon);
1149
+
1150
+ HPDF_PTRACE(("hpdf_textannot_set_highlight_mode annot=%p\n", annot));
1151
+
1152
+ ret = HPDF_TextAnnot_SetIcon(annot, i);
1153
+
1154
+ return INT2NUM(ret);
1155
+ }
1156
+
1157
+ static VALUE
1158
+ hpdf_textannot_set_opened (VALUE obj, VALUE opened)
1159
+ {
1160
+ HPDF_Annotation annot;
1161
+ HPDF_STATUS ret;
1162
+ HPDF_INT i;
1163
+
1164
+ Data_Get_Struct(obj, HPDF_Dict_Rec, annot);
1165
+ i = NUM2INT(opened);
1166
+
1167
+ HPDF_PTRACE(("hpdf_textannot_set_opened annot=%p\n", annot));
1168
+
1169
+ ret = HPDF_TextAnnot_SetOpened(annot, i);
1170
+
1171
+ return INT2NUM(ret);
1172
+ }
1173
+
1174
+ static VALUE
1175
+ hpdf_load_png_image_from_file (VALUE obj, VALUE file_name)
1176
+ {
1177
+ HPDF_Doc pdf;
1178
+ HPDF_Image image;
1179
+ const char *s;
1180
+
1181
+ s = StringValuePtr(file_name);
1182
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1183
+
1184
+ HPDF_PTRACE(("hpdf_load_png_image_from_file pdf=%p\n", pdf));
1185
+
1186
+ image = HPDF_LoadPngImageFromFile(pdf, s);
1187
+
1188
+ return Data_Wrap_Struct (rb_cHPDFImage, 0, 0, image);
1189
+ }
1190
+
1191
+
1192
+ static VALUE
1193
+ hpdf_load_jpeg_image_from_file (VALUE obj, VALUE file_name)
1194
+ {
1195
+ HPDF_Doc pdf;
1196
+ HPDF_Image image;
1197
+ const char *s;
1198
+
1199
+ s = StringValuePtr(file_name);
1200
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1201
+
1202
+ HPDF_PTRACE(("hpdf_load_png_image_from_file pdf=%p\n", pdf));
1203
+
1204
+ image = HPDF_LoadJpegImageFromFile(pdf, s);
1205
+
1206
+ return Data_Wrap_Struct (rb_cHPDFImage, 0, 0, image);
1207
+ }
1208
+
1209
+
1210
+ static VALUE
1211
+ hpdf_image_get_size (VALUE obj)
1212
+ {
1213
+ HPDF_Image image;
1214
+ HPDF_Point p;
1215
+ VALUE ret;
1216
+ VALUE x;
1217
+ VALUE y;
1218
+
1219
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1220
+
1221
+ HPDF_PTRACE(("hpdf_image_get_size image=%p\n", image));
1222
+
1223
+ p = HPDF_Image_GetSize(image);
1224
+
1225
+ ret = rb_ary_new();
1226
+ x = rb_float_new(p.x);
1227
+ y = rb_float_new(p.y);
1228
+ rb_ary_push(ret, x);
1229
+ rb_ary_push(ret, y);
1230
+
1231
+ return ret;
1232
+ }
1233
+
1234
+
1235
+ static VALUE
1236
+ hpdf_image_get_width (VALUE obj)
1237
+ {
1238
+ HPDF_Image image;
1239
+ HPDF_UINT i;
1240
+
1241
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1242
+
1243
+ HPDF_PTRACE(("hpdf_image_get_width image=%p\n", image));
1244
+
1245
+ i = HPDF_Image_GetWidth(image);
1246
+
1247
+ return INT2NUM(i);
1248
+ }
1249
+
1250
+
1251
+ static VALUE
1252
+ hpdf_image_get_height (VALUE obj)
1253
+ {
1254
+ HPDF_Image image;
1255
+ HPDF_UINT i;
1256
+
1257
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1258
+
1259
+ HPDF_PTRACE(("hpdf_image_get_height image=%p\n", image));
1260
+
1261
+ i = HPDF_Image_GetHeight(image);
1262
+
1263
+ return INT2NUM(i);
1264
+ }
1265
+
1266
+ static VALUE
1267
+ hpdf_image_get_bits_per_component (VALUE obj)
1268
+ {
1269
+ HPDF_Image image;
1270
+ HPDF_UINT i;
1271
+
1272
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1273
+
1274
+ HPDF_PTRACE(("hpdf_encoder_get_unicode image=%p\n", image));
1275
+
1276
+ i = HPDF_Image_GetBitsPerComponent(image);
1277
+
1278
+ return INT2NUM(i);
1279
+ }
1280
+
1281
+ static VALUE
1282
+ hpdf_image_get_color_space (VALUE obj)
1283
+ {
1284
+ const char* ret;
1285
+ HPDF_Image image;
1286
+
1287
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1288
+
1289
+ HPDF_PTRACE(("hpdf_image_get_color_space image=%p\n", image));
1290
+
1291
+ ret = HPDF_Image_GetColorSpace(image);
1292
+
1293
+ return rb_str_new2(ret);
1294
+ }
1295
+
1296
+ static VALUE
1297
+ hpdf_image_set_color_mask (VALUE obj, VALUE rmin, VALUE rmax, VALUE gmin, VALUE gmax, VALUE bmin, VALUE bmax)
1298
+ {
1299
+ HPDF_Image image;
1300
+ HPDF_STATUS ret;
1301
+ HPDF_INT i1;
1302
+ HPDF_INT i2;
1303
+ HPDF_INT i3;
1304
+ HPDF_INT i4;
1305
+ HPDF_INT i5;
1306
+ HPDF_INT i6;
1307
+
1308
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image);
1309
+ i1 = NUM2INT(rmin);
1310
+ i2 = NUM2INT(rmax);
1311
+ i3 = NUM2INT(gmin);
1312
+ i4 = NUM2INT(gmax);
1313
+ i5 = NUM2INT(bmin);
1314
+ i6 = NUM2INT(bmax);
1315
+
1316
+ HPDF_PTRACE(("hpdf_image_set_color_mask image=%p\n", image));
1317
+
1318
+ ret = HPDF_Image_SetColorMask(image, i1, i2, i3, i4, i5, i6);
1319
+
1320
+ return INT2NUM(ret);
1321
+ }
1322
+
1323
+ static VALUE
1324
+ hpdf_image_set_mask_image (VALUE obj, VALUE mask_image)
1325
+ {
1326
+ HPDF_Image image1;
1327
+ HPDF_Image image2;
1328
+ HPDF_STATUS ret;
1329
+
1330
+ if (HPDF_StrCmp(rb_obj_classname(mask_image), "HPDFImage") != 0)
1331
+ rb_raise(rb_eHPDFError, "invalid argument(1).");
1332
+
1333
+ Data_Get_Struct(obj, HPDF_Dict_Rec, image1);
1334
+ Data_Get_Struct(mask_image, HPDF_Dict_Rec, image2);
1335
+
1336
+ HPDF_PTRACE(("hpdf_image_set_mask_image image=%p\n", image1));
1337
+
1338
+ ret = HPDF_Image_SetMaskImage(image1, image2);
1339
+
1340
+ return INT2NUM(ret);
1341
+ }
1342
+
1343
+ static VALUE
1344
+ hpdf_set_info_attr (VALUE obj, VALUE type, VALUE value)
1345
+ {
1346
+ HPDF_Doc pdf;
1347
+ const char *s;
1348
+ HPDF_INT i;
1349
+ HPDF_STATUS ret;
1350
+
1351
+ i = NUM2INT(type);
1352
+ s = StringValuePtr(value);
1353
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1354
+
1355
+ HPDF_PTRACE(("hpdf_set_info_attr pdf=%p\n", pdf));
1356
+
1357
+ ret = HPDF_SetInfoAttr(pdf, i, s);
1358
+
1359
+ return INT2NUM(ret);
1360
+ }
1361
+
1362
+ static VALUE
1363
+ hpdf_get_info_attr (VALUE obj, VALUE type)
1364
+ {
1365
+ HPDF_Doc pdf;
1366
+ HPDF_INT i;
1367
+ const char *ret;
1368
+
1369
+ i = NUM2INT(type);
1370
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1371
+
1372
+ HPDF_PTRACE(("hpdf_get_info_attr pdf=%p\n", pdf));
1373
+
1374
+ ret = HPDF_GetInfoAttr(pdf, i);
1375
+
1376
+ return rb_str_new2(ret);
1377
+ }
1378
+
1379
+ static VALUE
1380
+ 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)
1381
+ {
1382
+ HPDF_Doc pdf;
1383
+ const char *s;
1384
+ HPDF_INT tp;
1385
+ HPDF_Date dt;
1386
+ HPDF_STATUS ret;
1387
+
1388
+ Data_Get_Struct(obj, HPDF_Doc_Rec, pdf);
1389
+ s = StringValuePtr(ind);
1390
+ if (HPDF_StrLen(s, -1) != 1 || (s[0] != '+' && s[0] != '-' && s[0] != 'Z' && s[0] != ' ')) {
1391
+ rb_raise(rb_eHPDFError, "The eighth argument must be either of '+','-','Z',' '.");
1392
+ }
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 = StringValuePtr(owner_passwd);
1422
+ s2 = StringValuePtr(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 = StringValuePtr(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 = StringValuePtr(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_LEN(ptn);
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_PTR(ptn);
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 = StringValuePtr(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 = StringValuePtr(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 = StringValuePtr(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 = StringValuePtr(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 = StringValuePtr(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
+