hpdf 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/History +57 -0
  2. data/License +25 -0
  3. data/README +165 -0
  4. data/examples/arc_demo.rb +82 -0
  5. data/examples/demo.rb +92 -0
  6. data/examples/encryption.rb +41 -0
  7. data/examples/ext_gstater_demo.rb +171 -0
  8. data/examples/font_demo.rb +67 -0
  9. data/examples/jpfont_demo.rb +122 -0
  10. data/examples/line_demo.rb +301 -0
  11. data/examples/slide_show_demo.rb +139 -0
  12. data/examples/text_demo2.rb +189 -0
  13. data/examples/ttfont_demo.rb +106 -0
  14. data/ext/extconf.rb +6 -0
  15. data/ext/hpdf.c +3779 -0
  16. data/ext/hpdf_annotation.c +415 -0
  17. data/ext/hpdf_array.c +344 -0
  18. data/ext/hpdf_binary.c +117 -0
  19. data/ext/hpdf_boolean.c +47 -0
  20. data/ext/hpdf_catalog.c +354 -0
  21. data/ext/hpdf_destination.c +339 -0
  22. data/ext/hpdf_dict.c +488 -0
  23. data/ext/hpdf_doc.c +2020 -0
  24. data/ext/hpdf_doc_png.c +137 -0
  25. data/ext/hpdf_encoder.c +2991 -0
  26. data/ext/hpdf_encoder_cns.c +36359 -0
  27. data/ext/hpdf_encoder_cnt.c +15307 -0
  28. data/ext/hpdf_encoder_jp.c +16125 -0
  29. data/ext/hpdf_encoder_kr.c +27978 -0
  30. data/ext/hpdf_encrypt.c +632 -0
  31. data/ext/hpdf_encryptdict.c +240 -0
  32. data/ext/hpdf_error.c +114 -0
  33. data/ext/hpdf_ext_gstate.c +150 -0
  34. data/ext/hpdf_font.c +229 -0
  35. data/ext/hpdf_font_cid.c +1030 -0
  36. data/ext/hpdf_font_tt.c +406 -0
  37. data/ext/hpdf_font_type1.c +391 -0
  38. data/ext/hpdf_fontdef.c +56 -0
  39. data/ext/hpdf_fontdef_base14.c +4506 -0
  40. data/ext/hpdf_fontdef_cid.c +194 -0
  41. data/ext/hpdf_fontdef_cns.c +471 -0
  42. data/ext/hpdf_fontdef_cnt.c +250 -0
  43. data/ext/hpdf_fontdef_jp.c +1904 -0
  44. data/ext/hpdf_fontdef_kr.c +1572 -0
  45. data/ext/hpdf_fontdef_tt.c +2230 -0
  46. data/ext/hpdf_fontdef_type1.c +524 -0
  47. data/ext/hpdf_gstate.c +119 -0
  48. data/ext/hpdf_image.c +568 -0
  49. data/ext/hpdf_image_png.c +424 -0
  50. data/ext/hpdf_info.c +164 -0
  51. data/ext/hpdf_list.c +333 -0
  52. data/ext/hpdf_mmgr.c +243 -0
  53. data/ext/hpdf_name.c +71 -0
  54. data/ext/hpdf_null.c +31 -0
  55. data/ext/hpdf_number.c +49 -0
  56. data/ext/hpdf_objects.c +172 -0
  57. data/ext/hpdf_outline.c +329 -0
  58. data/ext/hpdf_page_label.c +74 -0
  59. data/ext/hpdf_page_operator.c +2764 -0
  60. data/ext/hpdf_pages.c +1508 -0
  61. data/ext/hpdf_real.c +61 -0
  62. data/ext/hpdf_streams.c +1435 -0
  63. data/ext/hpdf_string.c +189 -0
  64. data/ext/hpdf_utils.c +438 -0
  65. data/ext/hpdf_xref.c +348 -0
  66. data/ext/include/hpdf.h +1227 -0
  67. data/ext/include/hpdf_annotation.h +74 -0
  68. data/ext/include/hpdf_catalog.h +81 -0
  69. data/ext/include/hpdf_conf.h +76 -0
  70. data/ext/include/hpdf_consts.h +549 -0
  71. data/ext/include/hpdf_destination.h +41 -0
  72. data/ext/include/hpdf_doc.h +159 -0
  73. data/ext/include/hpdf_encoder.h +311 -0
  74. data/ext/include/hpdf_encrypt.h +156 -0
  75. data/ext/include/hpdf_encryptdict.h +66 -0
  76. data/ext/include/hpdf_error.h +201 -0
  77. data/ext/include/hpdf_ext_gstate.h +38 -0
  78. data/ext/include/hpdf_font.h +112 -0
  79. data/ext/include/hpdf_fontdef.h +403 -0
  80. data/ext/include/hpdf_gstate.h +80 -0
  81. data/ext/include/hpdf_image.h +72 -0
  82. data/ext/include/hpdf_info.h +48 -0
  83. data/ext/include/hpdf_list.h +85 -0
  84. data/ext/include/hpdf_mmgr.h +82 -0
  85. data/ext/include/hpdf_objects.h +587 -0
  86. data/ext/include/hpdf_outline.h +74 -0
  87. data/ext/include/hpdf_page_label.h +35 -0
  88. data/ext/include/hpdf_pages.h +128 -0
  89. data/ext/include/hpdf_streams.h +276 -0
  90. data/ext/include/hpdf_types.h +488 -0
  91. data/ext/include/hpdf_utils.h +161 -0
  92. data/tests/arc_demo.rb +82 -0
  93. data/tests/demo.rb +91 -0
  94. data/tests/encryption.rb +41 -0
  95. data/tests/ext_gstater_demo.rb +171 -0
  96. data/tests/font_demo.rb +67 -0
  97. data/tests/line_demo.rb +301 -0
  98. data/tests/slide_show_demo.rb +139 -0
  99. data/tests/test_all_examples.rb +31 -0
  100. data/tests/text_demo2.rb +189 -0
  101. metadata +147 -0
@@ -0,0 +1,348 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.3 >> -- hpdf_xref.h
3
+ *
4
+ * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
5
+ *
6
+ * Permission to use, copy, modify, distribute and sell this software
7
+ * and its documentation for any purpose is hereby granted without fee,
8
+ * provided that the above copyright notice appear in all copies and
9
+ * that both that copyright notice and this permission notice appear
10
+ * in supporting documentation.
11
+ * It is provided "as is" without express or implied warranty.
12
+ *
13
+ */
14
+
15
+ #include "hpdf_conf.h"
16
+ #include "hpdf_utils.h"
17
+ #include "hpdf_objects.h"
18
+
19
+ static HPDF_STATUS
20
+ WriteTrailer (HPDF_Xref xref,
21
+ HPDF_Stream stream);
22
+
23
+
24
+ HPDF_Xref
25
+ HPDF_Xref_New (HPDF_MMgr mmgr,
26
+ HPDF_UINT32 offset)
27
+ {
28
+ HPDF_Xref xref;
29
+ HPDF_XrefEntry new_entry;
30
+
31
+ HPDF_PTRACE((" HPDF_Xref_New\n"));
32
+
33
+ xref = (HPDF_Xref)HPDF_GetMem (mmgr, sizeof(HPDF_Xref_Rec));
34
+ if (!xref)
35
+ return NULL;
36
+
37
+ HPDF_MemSet (xref, 0, sizeof(HPDF_Xref_Rec));
38
+ xref->mmgr = mmgr;
39
+ xref->error = mmgr->error;
40
+ xref->start_offset = offset;
41
+
42
+ xref->entries = HPDF_List_New (mmgr, HPDF_DEFALUT_XREF_ENTRY_NUM);
43
+ if (!xref->entries)
44
+ goto Fail;
45
+
46
+ xref->addr = 0;
47
+
48
+ if (xref->start_offset == 0) {
49
+ new_entry = (HPDF_XrefEntry)HPDF_GetMem (mmgr,
50
+ sizeof(HPDF_XrefEntry_Rec));
51
+ if (!new_entry)
52
+ goto Fail;
53
+
54
+ if (HPDF_List_Add (xref->entries, new_entry) != HPDF_OK) {
55
+ HPDF_FreeMem (mmgr, new_entry);
56
+ goto Fail;
57
+ }
58
+
59
+ /* add first entry which is free entry and whose generation
60
+ * number is 0
61
+ */
62
+ new_entry->entry_typ = HPDF_FREE_ENTRY;
63
+ new_entry->byte_offset = 0;
64
+ new_entry->gen_no = HPDF_MAX_GENERATION_NUM;
65
+ new_entry->obj = NULL;
66
+ }
67
+
68
+ xref->trailer = HPDF_Dict_New (mmgr);
69
+ if (!xref->trailer)
70
+ goto Fail;
71
+
72
+ return xref;
73
+
74
+ Fail:
75
+ HPDF_PTRACE((" HPDF_Xref_New failed\n"));
76
+ HPDF_Xref_Free (xref);
77
+ return NULL;
78
+ }
79
+
80
+
81
+ void
82
+ HPDF_Xref_Free (HPDF_Xref xref)
83
+ {
84
+ HPDF_UINT i;
85
+ HPDF_XrefEntry entry;
86
+ HPDF_Xref tmp_xref;
87
+
88
+ HPDF_PTRACE((" HPDF_Xref_Free\n"));
89
+
90
+ /* delete xref entries. where prev element is not NULL,
91
+ * delete all xref entries recursively.
92
+ */
93
+ while (xref) {
94
+ /* delete all objects belong to the xref. */
95
+
96
+ if (xref->entries) {
97
+ for (i = 0; i < xref->entries->count; i++) {
98
+ entry = HPDF_Xref_GetEntry (xref, i);
99
+ if (entry->obj)
100
+ HPDF_Obj_ForceFree (xref->mmgr, entry->obj);
101
+ HPDF_FreeMem (xref->mmgr, entry);
102
+ }
103
+
104
+ HPDF_List_Free(xref->entries);
105
+ }
106
+
107
+ if (xref->trailer)
108
+ HPDF_Dict_Free (xref->trailer);
109
+
110
+ tmp_xref = xref->prev;
111
+ HPDF_FreeMem (xref->mmgr, xref);
112
+ xref = tmp_xref;
113
+ }
114
+ }
115
+
116
+
117
+ HPDF_STATUS
118
+ HPDF_Xref_Add (HPDF_Xref xref,
119
+ void *obj)
120
+ {
121
+ HPDF_XrefEntry entry;
122
+ HPDF_Obj_Header *header;
123
+
124
+ HPDF_PTRACE((" HPDF_Xref_Add\n"));
125
+
126
+ if (!obj) {
127
+ if (HPDF_Error_GetCode (xref->error) == HPDF_OK)
128
+ return HPDF_SetError (xref->error, HPDF_INVALID_OBJECT, 0);
129
+ else
130
+ return HPDF_INVALID_OBJECT;
131
+ }
132
+
133
+ header = (HPDF_Obj_Header *)obj;
134
+
135
+ if (header->obj_id & HPDF_OTYPE_DIRECT ||
136
+ header->obj_id & HPDF_OTYPE_INDIRECT)
137
+ return HPDF_SetError(xref->error, HPDF_INVALID_OBJECT, 0);
138
+
139
+ if (xref->entries->count >= HPDF_LIMIT_MAX_XREF_ELEMENT) {
140
+ HPDF_SetError(xref->error, HPDF_XREF_COUNT_ERR, 0);
141
+ goto Fail;
142
+ }
143
+
144
+ /* in the following, we have to dispose the object when an error is
145
+ * occured.
146
+ */
147
+
148
+ entry = (HPDF_XrefEntry)HPDF_GetMem (xref->mmgr,
149
+ sizeof(HPDF_XrefEntry_Rec));
150
+ if (entry == NULL)
151
+ goto Fail;
152
+
153
+ if (HPDF_List_Add(xref->entries, entry) != HPDF_OK) {
154
+ HPDF_FreeMem (xref->mmgr, entry);
155
+ goto Fail;
156
+ }
157
+
158
+ entry->entry_typ = HPDF_IN_USE_ENTRY;
159
+ entry->byte_offset = 0;
160
+ entry->gen_no = 0;
161
+ entry->obj = obj;
162
+ header->obj_id = xref->start_offset + xref->entries->count - 1 +
163
+ HPDF_OTYPE_INDIRECT;
164
+
165
+ header->gen_no = entry->gen_no;
166
+
167
+ return HPDF_OK;
168
+
169
+ Fail:
170
+ HPDF_Obj_ForceFree(xref->mmgr, obj);
171
+ return HPDF_Error_GetCode (xref->error);
172
+ }
173
+
174
+ HPDF_XrefEntry
175
+ HPDF_Xref_GetEntry (HPDF_Xref xref,
176
+ HPDF_UINT index)
177
+ {
178
+ HPDF_PTRACE((" HPDF_Xref_GetEntry\n"));
179
+
180
+ return (HPDF_XrefEntry)HPDF_List_ItemAt(xref->entries, index);
181
+ }
182
+
183
+
184
+ HPDF_XrefEntry
185
+ HPDF_Xref_GetEntryByObjectId (HPDF_Xref xref,
186
+ HPDF_UINT obj_id)
187
+ {
188
+ HPDF_Xref tmp_xref = xref;
189
+
190
+ HPDF_PTRACE((" HPDF_Xref_GetEntryByObjectId\n"));
191
+
192
+ while (tmp_xref) {
193
+ HPDF_UINT i;
194
+
195
+ if (tmp_xref->entries->count + tmp_xref->start_offset > obj_id) {
196
+ HPDF_SetError (xref->error, HPDF_INVALID_OBJ_ID, 0);
197
+ return NULL;
198
+ }
199
+
200
+ if (tmp_xref->start_offset < obj_id) {
201
+ for (i = 0; i < tmp_xref->entries->count; i++) {
202
+ if (tmp_xref->start_offset + i == obj_id) {
203
+ HPDF_XrefEntry entry = HPDF_Xref_GetEntry(tmp_xref, i);
204
+
205
+ return entry;
206
+ }
207
+ }
208
+ }
209
+
210
+ tmp_xref = tmp_xref->prev;
211
+ }
212
+
213
+ return NULL;
214
+ }
215
+
216
+
217
+ HPDF_STATUS
218
+ HPDF_Xref_WriteToStream (HPDF_Xref xref,
219
+ HPDF_Stream stream,
220
+ HPDF_Encrypt e)
221
+ {
222
+ HPDF_STATUS ret;
223
+ HPDF_UINT i;
224
+ char buf[HPDF_SHORT_BUF_SIZ];
225
+ char* pbuf;
226
+ char* eptr = buf + HPDF_SHORT_BUF_SIZ - 1;
227
+ HPDF_UINT str_idx;
228
+ HPDF_Xref tmp_xref = xref;
229
+
230
+ /* write each objects of xref to the specified stream */
231
+
232
+ HPDF_PTRACE((" HPDF_Xref_WriteToStream\n"));
233
+
234
+ while (tmp_xref) {
235
+ if (tmp_xref->start_offset == 0)
236
+ str_idx = 1;
237
+ else
238
+ str_idx = 0;
239
+
240
+ for (i = str_idx; i < tmp_xref->entries->count; i++) {
241
+ HPDF_XrefEntry entry =
242
+ (HPDF_XrefEntry)HPDF_List_ItemAt (tmp_xref->entries, i);
243
+ HPDF_UINT obj_id = tmp_xref->start_offset + i;
244
+ HPDF_UINT16 gen_no = entry->gen_no;
245
+
246
+ entry->byte_offset = stream->size;
247
+
248
+ pbuf = buf;
249
+ pbuf = HPDF_IToA (pbuf, obj_id, eptr);
250
+ *pbuf++ = ' ';
251
+ pbuf = HPDF_IToA (pbuf, gen_no, eptr);
252
+ HPDF_StrCpy(pbuf, " obj\012", eptr);
253
+
254
+ if ((ret = HPDF_Stream_WriteStr (stream, buf)) != HPDF_OK)
255
+ return ret;
256
+
257
+ if (e)
258
+ HPDF_Encrypt_InitKey (e, obj_id, gen_no);
259
+
260
+ if ((ret = HPDF_Obj_WriteValue (entry->obj, stream, e)) != HPDF_OK)
261
+ return ret;
262
+
263
+ if ((ret = HPDF_Stream_WriteStr (stream, "\012endobj\012"))
264
+ != HPDF_OK)
265
+ return ret;
266
+ }
267
+
268
+ tmp_xref = tmp_xref->prev;
269
+ }
270
+
271
+ /* start to write cross-reference table */
272
+
273
+ tmp_xref = xref;
274
+
275
+ while (tmp_xref) {
276
+ tmp_xref->addr = stream->size;
277
+
278
+ pbuf = buf;
279
+ pbuf = HPDF_StrCpy (pbuf, "xref\012", eptr);
280
+ pbuf = HPDF_IToA (pbuf, tmp_xref->start_offset, eptr);
281
+ *pbuf++ = ' ';
282
+ pbuf = HPDF_IToA (pbuf, tmp_xref->entries->count, eptr);
283
+ HPDF_StrCpy (pbuf, "\012", eptr);
284
+ ret = HPDF_Stream_WriteStr (stream, buf);
285
+ if (ret != HPDF_OK)
286
+ return ret;
287
+
288
+ for (i = 0; i < tmp_xref->entries->count; i++) {
289
+ HPDF_XrefEntry entry = HPDF_Xref_GetEntry(tmp_xref, i);
290
+
291
+ pbuf = buf;
292
+ pbuf = HPDF_IToA2 (pbuf, entry->byte_offset, HPDF_BYTE_OFFSET_LEN +
293
+ 1);
294
+ *pbuf++ = ' ';
295
+ pbuf = HPDF_IToA2 (pbuf, entry->gen_no, HPDF_GEN_NO_LEN + 1);
296
+ *pbuf++ = ' ';
297
+ *pbuf++ = entry->entry_typ;
298
+ HPDF_StrCpy (pbuf, "\015\012", eptr);
299
+ ret = HPDF_Stream_WriteStr (stream, buf);
300
+ if (ret != HPDF_OK)
301
+ return ret;
302
+ }
303
+
304
+ tmp_xref = tmp_xref->prev;
305
+ }
306
+
307
+ /* write trailer dictionary */
308
+ ret = WriteTrailer (xref, stream);
309
+
310
+ return ret;
311
+ }
312
+
313
+ static HPDF_STATUS
314
+ WriteTrailer (HPDF_Xref xref,
315
+ HPDF_Stream stream)
316
+ {
317
+ HPDF_UINT max_obj_id = xref->entries->count + xref->start_offset;
318
+ HPDF_STATUS ret;
319
+
320
+ HPDF_PTRACE ((" WriteTrailer\n"));
321
+
322
+ if ((ret = HPDF_Dict_AddNumber (xref->trailer, "Size", max_obj_id))
323
+ != HPDF_OK)
324
+ return ret;
325
+
326
+ if (xref->prev)
327
+ if ((ret = HPDF_Dict_AddNumber (xref->trailer, "Prev",
328
+ xref->prev->addr)) != HPDF_OK)
329
+ return ret;
330
+
331
+ if ((ret = HPDF_Stream_WriteStr (stream, "trailer\012")) != HPDF_OK)
332
+ return ret;
333
+
334
+ if ((ret = HPDF_Dict_Write (xref->trailer, stream, NULL)) != HPDF_OK)
335
+ return ret;
336
+
337
+ if ((ret = HPDF_Stream_WriteStr (stream, "\012startxref\012")) != HPDF_OK)
338
+ return ret;
339
+
340
+ if ((ret = HPDF_Stream_WriteUInt (stream, xref->addr)) != HPDF_OK)
341
+ return ret;
342
+
343
+ if ((ret = HPDF_Stream_WriteStr (stream, "\012%%EOF\012")) != HPDF_OK)
344
+ return ret;
345
+
346
+ return HPDF_OK;
347
+ }
348
+
@@ -0,0 +1,1227 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.8 >> -- hpdf.h
3
+ *
4
+ * URL http://libharu.sourceforge.net/
5
+ *
6
+ * Copyright (c) 1999-2006 Takeshi Kanno
7
+ *
8
+ * Permission to use, copy, modify, distribute and sell this software
9
+ * and its documentation for any purpose is hereby granted without fee,
10
+ * provided that the above copyright notice appear in all copies and
11
+ * that both that copyright notice and this permission notice appear
12
+ * in supporting documentation.
13
+ * It is provided "as is" without express or implied warranty.
14
+ *
15
+ */
16
+
17
+ #ifndef _HPDF_H
18
+ #define _HPDF_H
19
+
20
+ #ifdef HPDF_DLL_MAKE
21
+ # define HPDF_EXPORT(A) __declspec(dllexport) A __stdcall
22
+ #else
23
+ # ifdef HPDF_DLL_MAKE_CDECL
24
+ # define HPDF_EXPORT(A) __declspec(dllexport) A
25
+ # else
26
+ # ifdef HPDF_SHARED_MAKE
27
+ # define HPDF_EXPORT(A) extern A
28
+ # endif /* HPDF_SHARED_MAKE */
29
+ # endif /* HPDF_DLL_MAKE_CDECL */
30
+ #endif /* HPDF_DLL_MAKE */
31
+
32
+ #ifdef HPDF_DLL
33
+ # define HPDF_SHARED
34
+ # define HPDF_EXPORT(A) __declspec(dllimport) A __stdcall
35
+ #else
36
+ # ifdef HPDF_DLL_CDECL
37
+ # define HPDF_SHARED
38
+ # define HPDF_EXPORT(A) __declspec(dllimport) A
39
+ # endif /* HPDF_DLL_CDECL */
40
+ #endif /* HPDF_DLL */
41
+
42
+ #ifdef HPDF_SHARED
43
+
44
+ #ifndef HPDF_EXPORT
45
+ #define HPDF_EXPORT(A) extern A
46
+ #endif /* HPDF_EXPORT */
47
+
48
+ #include "hpdf_consts.h"
49
+ #include "hpdf_types.h"
50
+
51
+ typedef void *HPDF_HANDLE;
52
+ typedef HPDF_HANDLE HPDF_Doc;
53
+ typedef HPDF_HANDLE HPDF_Page;
54
+ typedef HPDF_HANDLE HPDF_Pages;
55
+ typedef HPDF_HANDLE HPDF_Stream;
56
+ typedef HPDF_HANDLE HPDF_Image;
57
+ typedef HPDF_HANDLE HPDF_Font;
58
+ typedef HPDF_HANDLE HPDF_Outline;
59
+ typedef HPDF_HANDLE HPDF_Encoder;
60
+ typedef HPDF_HANDLE HPDF_Destination;
61
+ typedef HPDF_HANDLE HPDF_XObject;
62
+ typedef HPDF_HANDLE HPDF_Annotation;
63
+ typedef HPDF_HANDLE HPDF_ExtGState;
64
+
65
+ #else
66
+
67
+ #ifndef HPDF_EXPORT
68
+ #define HPDF_EXPORT(A) A
69
+ #endif /* HPDF_EXPORT */
70
+
71
+ #include "hpdf_consts.h"
72
+ #include "hpdf_doc.h"
73
+
74
+ #endif /* HPDF_SHARED */
75
+
76
+ #ifdef __cplusplus
77
+ extern "C" {
78
+ #endif
79
+
80
+ HPDF_EXPORT(const char *)
81
+ HPDF_GetVersion (void);
82
+
83
+
84
+ HPDF_EXPORT(HPDF_Doc)
85
+ HPDF_NewEx (HPDF_Error_Handler user_error_fn,
86
+ HPDF_Alloc_Func user_alloc_fn,
87
+ HPDF_Free_Func user_free_fn,
88
+ HPDF_UINT mem_pool_buf_size,
89
+ void *user_data);
90
+
91
+ HPDF_EXPORT(HPDF_Doc)
92
+ HPDF_New (HPDF_Error_Handler user_error_fn,
93
+ void *user_data);
94
+
95
+
96
+ HPDF_EXPORT(HPDF_STATUS)
97
+ HPDF_SetErrorHandler (HPDF_Doc pdf,
98
+ HPDF_Error_Handler user_error_fn);
99
+
100
+
101
+ HPDF_EXPORT(void)
102
+ HPDF_Free (HPDF_Doc pdf);
103
+
104
+
105
+ HPDF_EXPORT(HPDF_STATUS)
106
+ HPDF_NewDoc (HPDF_Doc pdf);
107
+
108
+
109
+ HPDF_EXPORT(void)
110
+ HPDF_FreeDoc (HPDF_Doc pdf);
111
+
112
+
113
+ HPDF_EXPORT(HPDF_BOOL)
114
+ HPDF_HasDoc (HPDF_Doc pdf);
115
+
116
+
117
+ HPDF_EXPORT(void)
118
+ HPDF_FreeDocAll (HPDF_Doc pdf);
119
+
120
+
121
+ HPDF_EXPORT(HPDF_STATUS)
122
+ HPDF_SaveToStream (HPDF_Doc pdf);
123
+
124
+
125
+ HPDF_EXPORT(HPDF_UINT32)
126
+ HPDF_GetStreamSize (HPDF_Doc pdf);
127
+
128
+
129
+ HPDF_EXPORT(HPDF_STATUS)
130
+ HPDF_ReadFromStream (HPDF_Doc pdf,
131
+ HPDF_BYTE *buf,
132
+ HPDF_UINT32 *size);
133
+
134
+
135
+ HPDF_EXPORT(HPDF_STATUS)
136
+ HPDF_ResetStream (HPDF_Doc pdf);
137
+
138
+
139
+ HPDF_EXPORT(HPDF_STATUS)
140
+ HPDF_SaveToFile (HPDF_Doc pdf,
141
+ const char *file_name);
142
+
143
+
144
+ HPDF_EXPORT(HPDF_STATUS)
145
+ HPDF_GetError (HPDF_Doc pdf);
146
+
147
+
148
+ HPDF_EXPORT(HPDF_STATUS)
149
+ HPDF_GetErrorDetail (HPDF_Doc pdf);
150
+
151
+ HPDF_EXPORT(void)
152
+ HPDF_ResetError (HPDF_Doc pdf);
153
+
154
+
155
+ HPDF_EXPORT(HPDF_STATUS)
156
+ HPDF_SetPagesConfiguration (HPDF_Doc pdf,
157
+ HPDF_UINT page_per_pages);
158
+
159
+
160
+ HPDF_EXPORT(HPDF_Page)
161
+ HPDF_GetPageByIndex (HPDF_Doc pdf,
162
+ HPDF_UINT index);
163
+
164
+
165
+ /*---------------------------------------------------------------------------*/
166
+ /*---------------------------------------------------------------------------*/
167
+
168
+ HPDF_EXPORT(HPDF_PageLayout)
169
+ HPDF_GetPageLayout (HPDF_Doc pdf);
170
+
171
+
172
+ HPDF_EXPORT(HPDF_STATUS)
173
+ HPDF_SetPageLayout (HPDF_Doc pdf,
174
+ HPDF_PageLayout layout);
175
+
176
+
177
+ HPDF_EXPORT(HPDF_PageMode)
178
+ HPDF_GetPageMode (HPDF_Doc pdf);
179
+
180
+
181
+ HPDF_EXPORT(HPDF_STATUS)
182
+ HPDF_SetPageMode (HPDF_Doc pdf,
183
+ HPDF_PageMode mode);
184
+
185
+
186
+ HPDF_EXPORT(HPDF_UINT)
187
+ HPDF_GetViewerPreference (HPDF_Doc pdf);
188
+
189
+
190
+ HPDF_EXPORT(HPDF_STATUS)
191
+ HPDF_SetViewerPreference (HPDF_Doc pdf,
192
+ HPDF_UINT value);
193
+
194
+
195
+ HPDF_EXPORT(HPDF_STATUS)
196
+ HPDF_SetOpenAction (HPDF_Doc pdf,
197
+ HPDF_Destination open_action);
198
+
199
+
200
+ /*---------------------------------------------------------------------------*/
201
+ /*----- page handling -------------------------------------------------------*/
202
+
203
+
204
+ HPDF_EXPORT(HPDF_Page)
205
+ HPDF_GetCurrentPage (HPDF_Doc pdf);
206
+
207
+
208
+ HPDF_EXPORT(HPDF_Page)
209
+ HPDF_AddPage (HPDF_Doc pdf);
210
+
211
+
212
+ HPDF_EXPORT(HPDF_Page)
213
+ HPDF_InsertPage (HPDF_Doc pdf,
214
+ HPDF_Page page);
215
+
216
+
217
+ HPDF_EXPORT(HPDF_STATUS)
218
+ HPDF_Page_SetWidth (HPDF_Page page,
219
+ HPDF_REAL value);
220
+
221
+
222
+ HPDF_EXPORT(HPDF_STATUS)
223
+ HPDF_Page_SetHeight (HPDF_Page page,
224
+ HPDF_REAL value);
225
+
226
+
227
+ HPDF_EXPORT(HPDF_STATUS)
228
+ HPDF_Page_SetSize (HPDF_Page page,
229
+ HPDF_PageSizes size,
230
+ HPDF_PageDirection direction);
231
+
232
+ HPDF_EXPORT(HPDF_STATUS)
233
+ HPDF_Page_SetRotate (HPDF_Page page,
234
+ HPDF_UINT16 angle);
235
+
236
+ /*---------------------------------------------------------------------------*/
237
+ /*----- font handling -------------------------------------------------------*/
238
+
239
+
240
+ HPDF_EXPORT(HPDF_Font)
241
+ HPDF_GetFont (HPDF_Doc pdf,
242
+ const char *font_name,
243
+ const char *encoding_name);
244
+
245
+
246
+ HPDF_EXPORT(const char*)
247
+ HPDF_LoadType1FontFromFile (HPDF_Doc pdf,
248
+ const char *afm_file_name,
249
+ const char *data_file_name);
250
+
251
+
252
+ HPDF_EXPORT(const char*)
253
+ HPDF_LoadTTFontFromFile (HPDF_Doc pdf,
254
+ const char *file_name,
255
+ HPDF_BOOL embedding);
256
+
257
+
258
+ HPDF_EXPORT(const char*)
259
+ HPDF_LoadTTFontFromFile2 (HPDF_Doc pdf,
260
+ const char *file_name,
261
+ HPDF_UINT index,
262
+ HPDF_BOOL embedding);
263
+
264
+
265
+ HPDF_EXPORT(HPDF_STATUS)
266
+ HPDF_AddPageLabel (HPDF_Doc pdf,
267
+ HPDF_UINT page_num,
268
+ HPDF_PageNumStyle style,
269
+ HPDF_UINT first_page,
270
+ const char *prefix);
271
+
272
+
273
+ HPDF_EXPORT(HPDF_STATUS)
274
+ HPDF_UseJPFonts (HPDF_Doc pdf);
275
+
276
+
277
+ HPDF_EXPORT(HPDF_STATUS)
278
+ HPDF_UseKRFonts (HPDF_Doc pdf);
279
+
280
+
281
+ HPDF_EXPORT(HPDF_STATUS)
282
+ HPDF_UseCNSFonts (HPDF_Doc pdf);
283
+
284
+
285
+ HPDF_EXPORT(HPDF_STATUS)
286
+ HPDF_UseCNTFonts (HPDF_Doc pdf);
287
+
288
+
289
+ /*--------------------------------------------------------------------------*/
290
+ /*----- outline ------------------------------------------------------------*/
291
+
292
+
293
+ HPDF_EXPORT(HPDF_Outline)
294
+ HPDF_CreateOutline (HPDF_Doc pdf,
295
+ HPDF_Outline parent,
296
+ const char *title,
297
+ HPDF_Encoder encoder);
298
+
299
+
300
+ HPDF_EXPORT(HPDF_STATUS)
301
+ HPDF_Outline_SetOpened (HPDF_Outline outline,
302
+ HPDF_BOOL opened);
303
+
304
+
305
+ HPDF_EXPORT(HPDF_STATUS)
306
+ HPDF_Outline_SetDestination (HPDF_Outline outline,
307
+ HPDF_Destination dst);
308
+
309
+
310
+ /*--------------------------------------------------------------------------*/
311
+ /*----- destination --------------------------------------------------------*/
312
+
313
+ HPDF_EXPORT(HPDF_Destination)
314
+ HPDF_Page_CreateDestination (HPDF_Page page);
315
+
316
+
317
+ HPDF_EXPORT(HPDF_STATUS)
318
+ HPDF_Destination_SetXYZ (HPDF_Destination dst,
319
+ HPDF_REAL left,
320
+ HPDF_REAL top,
321
+ HPDF_REAL zoom);
322
+
323
+
324
+ HPDF_EXPORT(HPDF_STATUS)
325
+ HPDF_Destination_SetFit (HPDF_Destination dst);
326
+
327
+
328
+ HPDF_EXPORT(HPDF_STATUS)
329
+ HPDF_Destination_SetFitH (HPDF_Destination dst,
330
+ HPDF_REAL top);
331
+
332
+
333
+ HPDF_EXPORT(HPDF_STATUS)
334
+ HPDF_Destination_SetFitV (HPDF_Destination dst,
335
+ HPDF_REAL left);
336
+
337
+
338
+ HPDF_EXPORT(HPDF_STATUS)
339
+ HPDF_Destination_SetFitR (HPDF_Destination dst,
340
+ HPDF_REAL left,
341
+ HPDF_REAL bottom,
342
+ HPDF_REAL right,
343
+ HPDF_REAL top);
344
+
345
+
346
+ HPDF_EXPORT(HPDF_STATUS)
347
+ HPDF_Destination_SetFitB (HPDF_Destination dst);
348
+
349
+
350
+ HPDF_EXPORT(HPDF_STATUS)
351
+ HPDF_Destination_SetFitBH (HPDF_Destination dst,
352
+ HPDF_REAL top);
353
+
354
+
355
+ HPDF_EXPORT(HPDF_STATUS)
356
+ HPDF_Destination_SetFitBV (HPDF_Destination dst,
357
+ HPDF_REAL left);
358
+
359
+ /*--------------------------------------------------------------------------*/
360
+ /*----- encoder ------------------------------------------------------------*/
361
+
362
+ HPDF_EXPORT(HPDF_Encoder)
363
+ HPDF_GetEncoder (HPDF_Doc pdf,
364
+ const char *encoding_name);
365
+
366
+
367
+ HPDF_EXPORT(HPDF_Encoder)
368
+ HPDF_GetCurrentEncoder (HPDF_Doc pdf);
369
+
370
+
371
+ HPDF_EXPORT(HPDF_STATUS)
372
+ HPDF_SetCurrentEncoder (HPDF_Doc pdf,
373
+ const char *encoding_name);
374
+
375
+
376
+ HPDF_EXPORT(HPDF_EncoderType)
377
+ HPDF_Encoder_GetType (HPDF_Encoder encoder);
378
+
379
+
380
+ HPDF_EXPORT(HPDF_ByteType)
381
+ HPDF_Encoder_GetByteType (HPDF_Encoder encoder,
382
+ const char *text,
383
+ HPDF_UINT index);
384
+
385
+
386
+ HPDF_EXPORT(HPDF_UNICODE)
387
+ HPDF_Encoder_GetUnicode (HPDF_Encoder encoder,
388
+ HPDF_UINT16 code);
389
+
390
+
391
+ HPDF_EXPORT(HPDF_WritingMode)
392
+ HPDF_Encoder_GetWritingMode (HPDF_Encoder encoder);
393
+
394
+
395
+ HPDF_EXPORT(HPDF_STATUS)
396
+ HPDF_UseJPEncodings (HPDF_Doc pdf);
397
+
398
+
399
+
400
+ HPDF_EXPORT(HPDF_STATUS)
401
+ HPDF_UseKREncodings (HPDF_Doc pdf);
402
+
403
+
404
+
405
+ HPDF_EXPORT(HPDF_STATUS)
406
+ HPDF_UseCNSEncodings (HPDF_Doc pdf);
407
+
408
+
409
+
410
+ HPDF_EXPORT(HPDF_STATUS)
411
+ HPDF_UseCNTEncodings (HPDF_Doc pdf);
412
+
413
+
414
+ /*--------------------------------------------------------------------------*/
415
+ /*----- annotation ---------------------------------------------------------*/
416
+
417
+ HPDF_EXPORT(HPDF_Annotation)
418
+ HPDF_Page_CreateTextAnnot (HPDF_Page page,
419
+ HPDF_Rect rect,
420
+ const char *text,
421
+ HPDF_Encoder encoder);
422
+
423
+
424
+ HPDF_EXPORT(HPDF_Annotation)
425
+ HPDF_Page_CreateLinkAnnot (HPDF_Page page,
426
+ HPDF_Rect rect,
427
+ HPDF_Destination dst);
428
+
429
+
430
+ HPDF_EXPORT(HPDF_Annotation)
431
+ HPDF_Page_CreateURILinkAnnot (HPDF_Page page,
432
+ HPDF_Rect rect,
433
+ const char *uri);
434
+
435
+
436
+ HPDF_EXPORT(HPDF_STATUS)
437
+ HPDF_LinkAnnot_SetHighlightMode (HPDF_Annotation annot,
438
+ HPDF_AnnotHighlightMode mode);
439
+
440
+
441
+ HPDF_EXPORT(HPDF_STATUS)
442
+ HPDF_LinkAnnot_SetBorderStyle (HPDF_Annotation annot,
443
+ HPDF_REAL width,
444
+ HPDF_UINT16 dash_on,
445
+ HPDF_UINT16 dash_off);
446
+
447
+
448
+ HPDF_EXPORT(HPDF_STATUS)
449
+ HPDF_TextAnnot_SetIcon (HPDF_Annotation annot,
450
+ HPDF_AnnotIcon icon);
451
+
452
+
453
+ HPDF_EXPORT(HPDF_STATUS)
454
+ HPDF_TextAnnot_SetOpened (HPDF_Annotation annot,
455
+ HPDF_BOOL opened);
456
+
457
+
458
+
459
+ /*--------------------------------------------------------------------------*/
460
+ /*----- image data ---------------------------------------------------------*/
461
+
462
+ HPDF_EXPORT(HPDF_Image)
463
+ HPDF_LoadPngImageFromFile (HPDF_Doc pdf,
464
+ const char *filename);
465
+
466
+
467
+ HPDF_EXPORT(HPDF_Image)
468
+ HPDF_LoadPngImageFromFile2 (HPDF_Doc pdf,
469
+ const char *filename);
470
+
471
+
472
+ HPDF_EXPORT(HPDF_Image)
473
+ HPDF_LoadJpegImageFromFile (HPDF_Doc pdf,
474
+ const char *filename);
475
+
476
+
477
+ HPDF_EXPORT(HPDF_Image)
478
+ HPDF_LoadRawImageFromFile (HPDF_Doc pdf,
479
+ const char *filename,
480
+ HPDF_UINT width,
481
+ HPDF_UINT height,
482
+ HPDF_ColorSpace color_space);
483
+
484
+
485
+ HPDF_EXPORT(HPDF_Image)
486
+ HPDF_LoadRawImageFromMem (HPDF_Doc pdf,
487
+ const HPDF_BYTE *buf,
488
+ HPDF_UINT width,
489
+ HPDF_UINT height,
490
+ HPDF_ColorSpace color_space,
491
+ HPDF_UINT bits_per_component);
492
+
493
+
494
+ HPDF_EXPORT(HPDF_Point)
495
+ HPDF_Image_GetSize (HPDF_Image image);
496
+
497
+
498
+ HPDF_EXPORT(HPDF_STATUS)
499
+ HPDF_Image_GetSize2 (HPDF_Image image, HPDF_Point *size);
500
+
501
+
502
+ HPDF_EXPORT(HPDF_UINT)
503
+ HPDF_Image_GetWidth (HPDF_Image image);
504
+
505
+
506
+ HPDF_EXPORT(HPDF_UINT)
507
+ HPDF_Image_GetHeight (HPDF_Image image);
508
+
509
+
510
+ HPDF_EXPORT(HPDF_UINT)
511
+ HPDF_Image_GetBitsPerComponent (HPDF_Image image);
512
+
513
+
514
+ HPDF_EXPORT(const char*)
515
+ HPDF_Image_GetColorSpace (HPDF_Image image);
516
+
517
+
518
+ HPDF_EXPORT(HPDF_STATUS)
519
+ HPDF_Image_SetColorMask (HPDF_Image image,
520
+ HPDF_UINT rmin,
521
+ HPDF_UINT rmax,
522
+ HPDF_UINT gmin,
523
+ HPDF_UINT gmax,
524
+ HPDF_UINT bmin,
525
+ HPDF_UINT bmax);
526
+
527
+
528
+ HPDF_EXPORT(HPDF_STATUS)
529
+ HPDF_Image_SetMaskImage (HPDF_Image image,
530
+ HPDF_Image mask_image);
531
+
532
+
533
+ /*--------------------------------------------------------------------------*/
534
+ /*----- info dictionary ----------------------------------------------------*/
535
+
536
+
537
+ HPDF_EXPORT(HPDF_STATUS)
538
+ HPDF_SetInfoAttr (HPDF_Doc pdf,
539
+ HPDF_InfoType type,
540
+ const char *value);
541
+
542
+
543
+ HPDF_EXPORT(const char*)
544
+ HPDF_GetInfoAttr (HPDF_Doc pdf,
545
+ HPDF_InfoType type);
546
+
547
+
548
+ HPDF_EXPORT(HPDF_STATUS)
549
+ HPDF_SetInfoDateAttr (HPDF_Doc pdf,
550
+ HPDF_InfoType type,
551
+ HPDF_Date value);
552
+
553
+
554
+ /*--------------------------------------------------------------------------*/
555
+ /*----- encryption ---------------------------------------------------------*/
556
+
557
+ HPDF_EXPORT(HPDF_STATUS)
558
+ HPDF_SetPassword (HPDF_Doc pdf,
559
+ const char *owner_passwd,
560
+ const char *user_passwd);
561
+
562
+
563
+ HPDF_EXPORT(HPDF_STATUS)
564
+ HPDF_SetPermission (HPDF_Doc pdf,
565
+ HPDF_UINT permission);
566
+
567
+
568
+ HPDF_EXPORT(HPDF_STATUS)
569
+ HPDF_SetEncryptionMode (HPDF_Doc pdf,
570
+ HPDF_EncryptMode mode,
571
+ HPDF_UINT key_len);
572
+
573
+
574
+ /*--------------------------------------------------------------------------*/
575
+ /*----- compression --------------------------------------------------------*/
576
+
577
+ HPDF_EXPORT(HPDF_STATUS)
578
+ HPDF_SetCompressionMode (HPDF_Doc pdf,
579
+ HPDF_UINT mode);
580
+
581
+
582
+ /*--------------------------------------------------------------------------*/
583
+ /*----- font ---------------------------------------------------------------*/
584
+
585
+ HPDF_EXPORT(const char*)
586
+ HPDF_Font_GetFontName (HPDF_Font font);
587
+
588
+
589
+ HPDF_EXPORT(const char*)
590
+ HPDF_Font_GetEncodingName (HPDF_Font font);
591
+
592
+
593
+ HPDF_EXPORT(HPDF_INT)
594
+ HPDF_Font_GetUnicodeWidth (HPDF_Font font,
595
+ HPDF_UNICODE code);
596
+
597
+ HPDF_EXPORT(HPDF_Box)
598
+ HPDF_Font_GetBBox (HPDF_Font font);
599
+
600
+
601
+ HPDF_EXPORT(HPDF_INT)
602
+ HPDF_Font_GetAscent (HPDF_Font font);
603
+
604
+
605
+ HPDF_EXPORT(HPDF_INT)
606
+ HPDF_Font_GetDescent (HPDF_Font font);
607
+
608
+
609
+ HPDF_EXPORT(HPDF_UINT)
610
+ HPDF_Font_GetXHeight (HPDF_Font font);
611
+
612
+
613
+ HPDF_EXPORT(HPDF_UINT)
614
+ HPDF_Font_GetCapHeight (HPDF_Font font);
615
+
616
+
617
+ HPDF_EXPORT(HPDF_TextWidth)
618
+ HPDF_Font_TextWidth (HPDF_Font font,
619
+ const HPDF_BYTE *text,
620
+ HPDF_UINT len);
621
+
622
+
623
+ HPDF_EXPORT(HPDF_UINT)
624
+ HPDF_Font_MeasureText (HPDF_Font font,
625
+ const HPDF_BYTE *text,
626
+ HPDF_UINT len,
627
+ HPDF_REAL width,
628
+ HPDF_REAL font_size,
629
+ HPDF_REAL char_space,
630
+ HPDF_REAL word_space,
631
+ HPDF_BOOL wordwrap,
632
+ HPDF_REAL *real_width);
633
+
634
+
635
+ /*--------------------------------------------------------------------------*/
636
+ /*----- extended graphics state --------------------------------------------*/
637
+
638
+ HPDF_EXPORT(HPDF_ExtGState)
639
+ HPDF_CreateExtGState (HPDF_Doc pdf);
640
+
641
+
642
+ HPDF_EXPORT(HPDF_STATUS)
643
+ HPDF_ExtGState_SetAlphaStroke (HPDF_ExtGState ext_gstate,
644
+ HPDF_REAL value);
645
+
646
+
647
+ HPDF_EXPORT(HPDF_STATUS)
648
+ HPDF_ExtGState_SetAlphaFill (HPDF_ExtGState ext_gstate,
649
+ HPDF_REAL value);
650
+
651
+
652
+
653
+ HPDF_EXPORT(HPDF_STATUS)
654
+ HPDF_ExtGState_SetBlendMode (HPDF_ExtGState ext_gstate,
655
+ HPDF_BlendMode mode);
656
+
657
+
658
+ /*--------------------------------------------------------------------------*/
659
+ /*--------------------------------------------------------------------------*/
660
+
661
+ HPDF_EXPORT(HPDF_REAL)
662
+ HPDF_Page_TextWidth (HPDF_Page page,
663
+ const char *text);
664
+
665
+
666
+ HPDF_EXPORT(HPDF_UINT)
667
+ HPDF_Page_MeasureText (HPDF_Page page,
668
+ const char *text,
669
+ HPDF_REAL width,
670
+ HPDF_BOOL wordwrap,
671
+ HPDF_REAL *real_width);
672
+
673
+
674
+ HPDF_EXPORT(HPDF_REAL)
675
+ HPDF_Page_GetWidth (HPDF_Page page);
676
+
677
+
678
+ HPDF_EXPORT(HPDF_REAL)
679
+ HPDF_Page_GetHeight (HPDF_Page page);
680
+
681
+
682
+ HPDF_EXPORT(HPDF_UINT16)
683
+ HPDF_Page_GetGMode (HPDF_Page page);
684
+
685
+
686
+ HPDF_EXPORT(HPDF_Point)
687
+ HPDF_Page_GetCurrentPos (HPDF_Page page);
688
+
689
+
690
+ HPDF_EXPORT(HPDF_STATUS)
691
+ HPDF_Page_GetCurrentPos2 (HPDF_Page page,
692
+ HPDF_Point *pos);
693
+
694
+
695
+ HPDF_EXPORT(HPDF_Point)
696
+ HPDF_Page_GetCurrentTextPos (HPDF_Page page);
697
+
698
+
699
+ HPDF_EXPORT(HPDF_STATUS)
700
+ HPDF_Page_GetCurrentTextPos2 (HPDF_Page page,
701
+ HPDF_Point *pos);
702
+
703
+
704
+ HPDF_EXPORT(HPDF_Font)
705
+ HPDF_Page_GetCurrentFont (HPDF_Page page);
706
+
707
+
708
+ HPDF_EXPORT(HPDF_REAL)
709
+ HPDF_Page_GetCurrentFontSize (HPDF_Page page);
710
+
711
+
712
+ HPDF_EXPORT(HPDF_TransMatrix)
713
+ HPDF_Page_GetTransMatrix (HPDF_Page page);
714
+
715
+
716
+ HPDF_EXPORT(HPDF_REAL)
717
+ HPDF_Page_GetLineWidth (HPDF_Page page);
718
+
719
+
720
+ HPDF_EXPORT(HPDF_LineCap)
721
+ HPDF_Page_GetLineCap (HPDF_Page page);
722
+
723
+
724
+ HPDF_EXPORT(HPDF_LineJoin)
725
+ HPDF_Page_GetLineJoin (HPDF_Page page);
726
+
727
+
728
+ HPDF_EXPORT(HPDF_REAL)
729
+ HPDF_Page_GetMiterLimit (HPDF_Page page);
730
+
731
+
732
+ HPDF_EXPORT(HPDF_DashMode)
733
+ HPDF_Page_GetDash (HPDF_Page page);
734
+
735
+
736
+ HPDF_EXPORT(HPDF_REAL)
737
+ HPDF_Page_GetFlat (HPDF_Page page);
738
+
739
+
740
+ HPDF_EXPORT(HPDF_REAL)
741
+ HPDF_Page_GetCharSpace (HPDF_Page page);
742
+
743
+
744
+ HPDF_EXPORT(HPDF_REAL)
745
+ HPDF_Page_GetWordSpace (HPDF_Page page);
746
+
747
+
748
+ HPDF_EXPORT(HPDF_REAL)
749
+ HPDF_Page_GetHorizontalScalling (HPDF_Page page);
750
+
751
+
752
+ HPDF_EXPORT(HPDF_REAL)
753
+ HPDF_Page_GetTextLeading (HPDF_Page page);
754
+
755
+
756
+ HPDF_EXPORT(HPDF_TextRenderingMode)
757
+ HPDF_Page_GetTextRenderingMode (HPDF_Page page);
758
+
759
+
760
+ /* This function is obsolete. Use HPDF_Page_GetTextRise. */
761
+ HPDF_EXPORT(HPDF_REAL)
762
+ HPDF_Page_GetTextRaise (HPDF_Page page);
763
+
764
+
765
+ HPDF_EXPORT(HPDF_REAL)
766
+ HPDF_Page_GetTextRise (HPDF_Page page);
767
+
768
+
769
+ HPDF_EXPORT(HPDF_RGBColor)
770
+ HPDF_Page_GetRGBFill (HPDF_Page page);
771
+
772
+
773
+ HPDF_EXPORT(HPDF_RGBColor)
774
+ HPDF_Page_GetRGBStroke (HPDF_Page page);
775
+
776
+
777
+ HPDF_EXPORT(HPDF_CMYKColor)
778
+ HPDF_Page_GetCMYKFill (HPDF_Page page);
779
+
780
+
781
+ HPDF_EXPORT(HPDF_CMYKColor)
782
+ HPDF_Page_GetCMYKStroke (HPDF_Page page);
783
+
784
+
785
+ HPDF_EXPORT(HPDF_REAL)
786
+ HPDF_Page_GetGrayFill (HPDF_Page page);
787
+
788
+
789
+ HPDF_EXPORT(HPDF_REAL)
790
+ HPDF_Page_GetGrayStroke (HPDF_Page page);
791
+
792
+
793
+ HPDF_EXPORT(HPDF_ColorSpace)
794
+ HPDF_Page_GetStrokingColorSpace (HPDF_Page page);
795
+
796
+
797
+ HPDF_EXPORT(HPDF_ColorSpace)
798
+ HPDF_Page_GetFillingColorSpace (HPDF_Page page);
799
+
800
+
801
+ HPDF_EXPORT(HPDF_TransMatrix)
802
+ HPDF_Page_GetTextMatrix (HPDF_Page page);
803
+
804
+
805
+ HPDF_EXPORT(HPDF_UINT)
806
+ HPDF_Page_GetGStateDepth (HPDF_Page page);
807
+
808
+
809
+ /*--------------------------------------------------------------------------*/
810
+ /*----- GRAPHICS OPERATORS -------------------------------------------------*/
811
+
812
+
813
+ /*--- General graphics state ---------------------------------------------*/
814
+
815
+ /* w */
816
+ HPDF_EXPORT(HPDF_STATUS)
817
+ HPDF_Page_SetLineWidth (HPDF_Page page,
818
+ HPDF_REAL line_width);
819
+
820
+ /* J */
821
+ HPDF_EXPORT(HPDF_STATUS)
822
+ HPDF_Page_SetLineCap (HPDF_Page page,
823
+ HPDF_LineCap line_cap);
824
+
825
+ /* j */
826
+ HPDF_EXPORT(HPDF_STATUS)
827
+ HPDF_Page_SetLineJoin (HPDF_Page page,
828
+ HPDF_LineJoin line_join);
829
+
830
+ /* M */
831
+ HPDF_EXPORT(HPDF_STATUS)
832
+ HPDF_Page_SetMiterLimit (HPDF_Page page,
833
+ HPDF_REAL miter_limit);
834
+
835
+ /* d */
836
+ HPDF_EXPORT(HPDF_STATUS)
837
+ HPDF_Page_SetDash (HPDF_Page page,
838
+ const HPDF_UINT16 *dash_ptn,
839
+ HPDF_UINT num_param,
840
+ HPDF_UINT phase);
841
+
842
+
843
+
844
+ /* ri --not implemented yet */
845
+
846
+ /* i */
847
+ HPDF_EXPORT(HPDF_STATUS)
848
+ HPDF_Page_SetFlat (HPDF_Page page,
849
+ HPDF_REAL flatness);
850
+
851
+ /* gs */
852
+
853
+ HPDF_EXPORT(HPDF_STATUS)
854
+ HPDF_Page_SetExtGState (HPDF_Page page,
855
+ HPDF_ExtGState ext_gstate);
856
+
857
+
858
+ /*--- Special graphic state operator --------------------------------------*/
859
+
860
+ /* q */
861
+ HPDF_EXPORT(HPDF_STATUS)
862
+ HPDF_Page_GSave (HPDF_Page page);
863
+
864
+ /* Q */
865
+ HPDF_EXPORT(HPDF_STATUS)
866
+ HPDF_Page_GRestore (HPDF_Page page);
867
+
868
+ /* cm */
869
+ HPDF_EXPORT(HPDF_STATUS)
870
+ HPDF_Page_Concat (HPDF_Page page,
871
+ HPDF_REAL a,
872
+ HPDF_REAL b,
873
+ HPDF_REAL c,
874
+ HPDF_REAL d,
875
+ HPDF_REAL x,
876
+ HPDF_REAL y);
877
+
878
+ /*--- Path construction operator ------------------------------------------*/
879
+
880
+ /* m */
881
+ HPDF_EXPORT(HPDF_STATUS)
882
+ HPDF_Page_MoveTo (HPDF_Page page,
883
+ HPDF_REAL x,
884
+ HPDF_REAL y);
885
+
886
+ /* l */
887
+ HPDF_EXPORT(HPDF_STATUS)
888
+ HPDF_Page_LineTo (HPDF_Page page,
889
+ HPDF_REAL x,
890
+ HPDF_REAL y);
891
+
892
+ /* c */
893
+ HPDF_EXPORT(HPDF_STATUS)
894
+ HPDF_Page_CurveTo (HPDF_Page page,
895
+ HPDF_REAL x1,
896
+ HPDF_REAL y1,
897
+ HPDF_REAL x2,
898
+ HPDF_REAL y2,
899
+ HPDF_REAL x3,
900
+ HPDF_REAL y3);
901
+
902
+ /* v */
903
+ HPDF_EXPORT(HPDF_STATUS)
904
+ HPDF_Page_CurveTo2 (HPDF_Page page,
905
+ HPDF_REAL x2,
906
+ HPDF_REAL y2,
907
+ HPDF_REAL x3,
908
+ HPDF_REAL y3);
909
+
910
+ /* y */
911
+ HPDF_EXPORT(HPDF_STATUS)
912
+ HPDF_Page_CurveTo3 (HPDF_Page page,
913
+ HPDF_REAL x1,
914
+ HPDF_REAL y1,
915
+ HPDF_REAL x3,
916
+ HPDF_REAL y3);
917
+
918
+ /* h */
919
+ HPDF_EXPORT(HPDF_STATUS)
920
+ HPDF_Page_ClosePath (HPDF_Page page);
921
+
922
+ /* re */
923
+ HPDF_EXPORT(HPDF_STATUS)
924
+ HPDF_Page_Rectangle (HPDF_Page page,
925
+ HPDF_REAL x,
926
+ HPDF_REAL y,
927
+ HPDF_REAL width,
928
+ HPDF_REAL height);
929
+
930
+
931
+ /*--- Path painting operator ---------------------------------------------*/
932
+
933
+ /* S */
934
+ HPDF_EXPORT(HPDF_STATUS)
935
+ HPDF_Page_Stroke (HPDF_Page page);
936
+
937
+ /* s */
938
+ HPDF_EXPORT(HPDF_STATUS)
939
+ HPDF_Page_ClosePathStroke (HPDF_Page page);
940
+
941
+ /* f */
942
+ HPDF_EXPORT(HPDF_STATUS)
943
+ HPDF_Page_Fill (HPDF_Page page);
944
+
945
+ /* f* */
946
+ HPDF_EXPORT(HPDF_STATUS)
947
+ HPDF_Page_Eofill (HPDF_Page page);
948
+
949
+ /* B */
950
+ HPDF_EXPORT(HPDF_STATUS)
951
+ HPDF_Page_FillStroke (HPDF_Page page);
952
+
953
+ /* B* */
954
+ HPDF_EXPORT(HPDF_STATUS)
955
+ HPDF_Page_EofillStroke (HPDF_Page page);
956
+
957
+ /* b */
958
+ HPDF_EXPORT(HPDF_STATUS)
959
+ HPDF_Page_ClosePathFillStroke (HPDF_Page page);
960
+
961
+ /* b* */
962
+ HPDF_EXPORT(HPDF_STATUS)
963
+ HPDF_Page_ClosePathEofillStroke (HPDF_Page page);
964
+
965
+ /* n */
966
+ HPDF_EXPORT(HPDF_STATUS)
967
+ HPDF_Page_EndPath (HPDF_Page page);
968
+
969
+
970
+ /*--- Clipping paths operator --------------------------------------------*/
971
+
972
+ /* W */
973
+ HPDF_EXPORT(HPDF_STATUS)
974
+ HPDF_Page_Clip (HPDF_Page page);
975
+
976
+ /* W* */
977
+ HPDF_EXPORT(HPDF_STATUS)
978
+ HPDF_Page_Eoclip (HPDF_Page page);
979
+
980
+
981
+ /*--- Text object operator -----------------------------------------------*/
982
+
983
+ /* BT */
984
+ HPDF_EXPORT(HPDF_STATUS)
985
+ HPDF_Page_BeginText (HPDF_Page page);
986
+
987
+ /* ET */
988
+ HPDF_EXPORT(HPDF_STATUS)
989
+ HPDF_Page_EndText (HPDF_Page page);
990
+
991
+ /*--- Text state ---------------------------------------------------------*/
992
+
993
+ /* Tc */
994
+ HPDF_EXPORT(HPDF_STATUS)
995
+ HPDF_Page_SetCharSpace (HPDF_Page page,
996
+ HPDF_REAL value);
997
+
998
+ /* Tw */
999
+ HPDF_EXPORT(HPDF_STATUS)
1000
+ HPDF_Page_SetWordSpace (HPDF_Page page,
1001
+ HPDF_REAL value);
1002
+
1003
+ /* Tz */
1004
+ HPDF_EXPORT(HPDF_STATUS)
1005
+ HPDF_Page_SetHorizontalScalling (HPDF_Page page,
1006
+ HPDF_REAL value);
1007
+
1008
+ /* TL */
1009
+ HPDF_EXPORT(HPDF_STATUS)
1010
+ HPDF_Page_SetTextLeading (HPDF_Page page,
1011
+ HPDF_REAL value);
1012
+
1013
+ /* Tf */
1014
+ HPDF_EXPORT(HPDF_STATUS)
1015
+ HPDF_Page_SetFontAndSize (HPDF_Page page,
1016
+ HPDF_Font font,
1017
+ HPDF_REAL size);
1018
+
1019
+ /* Tr */
1020
+ HPDF_EXPORT(HPDF_STATUS)
1021
+ HPDF_Page_SetTextRenderingMode (HPDF_Page page,
1022
+ HPDF_TextRenderingMode mode);
1023
+
1024
+ /* Ts */
1025
+ HPDF_EXPORT(HPDF_STATUS)
1026
+ HPDF_Page_SetTextRise (HPDF_Page page,
1027
+ HPDF_REAL value);
1028
+
1029
+ /* This function is obsolete. Use HPDF_Page_SetTextRise. */
1030
+ HPDF_EXPORT(HPDF_STATUS)
1031
+ HPDF_Page_SetTextRaise (HPDF_Page page,
1032
+ HPDF_REAL value);
1033
+
1034
+ /*--- Text positioning ---------------------------------------------------*/
1035
+
1036
+ /* Td */
1037
+ HPDF_EXPORT(HPDF_STATUS)
1038
+ HPDF_Page_MoveTextPos (HPDF_Page page,
1039
+ HPDF_REAL x,
1040
+ HPDF_REAL y);
1041
+
1042
+ /* TD */
1043
+ HPDF_EXPORT(HPDF_STATUS)
1044
+ HPDF_Page_MoveTextPos2 (HPDF_Page page,
1045
+ HPDF_REAL x,
1046
+ HPDF_REAL y);
1047
+
1048
+ /* Tm */
1049
+ HPDF_EXPORT(HPDF_STATUS)
1050
+ HPDF_Page_SetTextMatrix (HPDF_Page page,
1051
+ HPDF_REAL a,
1052
+ HPDF_REAL b,
1053
+ HPDF_REAL c,
1054
+ HPDF_REAL d,
1055
+ HPDF_REAL x,
1056
+ HPDF_REAL y);
1057
+
1058
+
1059
+ /* T* */
1060
+ HPDF_EXPORT(HPDF_STATUS)
1061
+ HPDF_Page_MoveToNextLine (HPDF_Page page);
1062
+
1063
+ /*--- Text showing -------------------------------------------------------*/
1064
+
1065
+ /* Tj */
1066
+ HPDF_EXPORT(HPDF_STATUS)
1067
+ HPDF_Page_ShowText (HPDF_Page page,
1068
+ const char *text);
1069
+
1070
+ /* TJ */
1071
+
1072
+ /* ' */
1073
+ HPDF_EXPORT(HPDF_STATUS)
1074
+ HPDF_Page_ShowTextNextLine (HPDF_Page page,
1075
+ const char *text);
1076
+
1077
+ /* " */
1078
+ HPDF_EXPORT(HPDF_STATUS)
1079
+ HPDF_Page_ShowTextNextLineEx (HPDF_Page page,
1080
+ HPDF_REAL word_space,
1081
+ HPDF_REAL char_space,
1082
+ const char *text);
1083
+
1084
+
1085
+ /*--- Color showing ------------------------------------------------------*/
1086
+
1087
+ /* cs --not implemented yet */
1088
+ /* CS --not implemented yet */
1089
+ /* sc --not implemented yet */
1090
+ /* scn --not implemented yet */
1091
+ /* SC --not implemented yet */
1092
+ /* SCN --not implemented yet */
1093
+
1094
+ /* g */
1095
+ HPDF_EXPORT(HPDF_STATUS)
1096
+ HPDF_Page_SetGrayFill (HPDF_Page page,
1097
+ HPDF_REAL gray);
1098
+
1099
+ /* G */
1100
+ HPDF_EXPORT(HPDF_STATUS)
1101
+ HPDF_Page_SetGrayStroke (HPDF_Page page,
1102
+ HPDF_REAL gray);
1103
+
1104
+ /* rg */
1105
+ HPDF_EXPORT(HPDF_STATUS)
1106
+ HPDF_Page_SetRGBFill (HPDF_Page page,
1107
+ HPDF_REAL r,
1108
+ HPDF_REAL g,
1109
+ HPDF_REAL b);
1110
+
1111
+ /* RG */
1112
+ HPDF_EXPORT(HPDF_STATUS)
1113
+ HPDF_Page_SetRGBStroke (HPDF_Page page,
1114
+ HPDF_REAL r,
1115
+ HPDF_REAL g,
1116
+ HPDF_REAL b);
1117
+
1118
+ /* k */
1119
+ HPDF_EXPORT(HPDF_STATUS)
1120
+ HPDF_Page_SetCMYKFill (HPDF_Page page,
1121
+ HPDF_REAL c,
1122
+ HPDF_REAL m,
1123
+ HPDF_REAL y,
1124
+ HPDF_REAL k);
1125
+
1126
+ /* K */
1127
+ HPDF_EXPORT(HPDF_STATUS)
1128
+ HPDF_Page_SetCMYKStroke (HPDF_Page page,
1129
+ HPDF_REAL c,
1130
+ HPDF_REAL m,
1131
+ HPDF_REAL y,
1132
+ HPDF_REAL k);
1133
+
1134
+ /*--- Shading patterns ---------------------------------------------------*/
1135
+
1136
+ /* sh --not implemented yet */
1137
+
1138
+ /*--- In-line images -----------------------------------------------------*/
1139
+
1140
+ /* BI --not implemented yet */
1141
+ /* ID --not implemented yet */
1142
+ /* EI --not implemented yet */
1143
+
1144
+ /*--- XObjects -----------------------------------------------------------*/
1145
+
1146
+ /* Do */
1147
+ HPDF_EXPORT(HPDF_STATUS)
1148
+ HPDF_Page_ExecuteXObject (HPDF_Page page,
1149
+ HPDF_XObject obj);
1150
+
1151
+ /*--- Marked content -----------------------------------------------------*/
1152
+
1153
+ /* BMC --not implemented yet */
1154
+ /* BDC --not implemented yet */
1155
+ /* EMC --not implemented yet */
1156
+ /* MP --not implemented yet */
1157
+ /* DP --not implemented yet */
1158
+
1159
+ /*--- Compatibility ------------------------------------------------------*/
1160
+
1161
+ /* BX --not implemented yet */
1162
+ /* EX --not implemented yet */
1163
+
1164
+ HPDF_EXPORT(HPDF_STATUS)
1165
+ HPDF_Page_DrawImage (HPDF_Page page,
1166
+ HPDF_Image image,
1167
+ HPDF_REAL x,
1168
+ HPDF_REAL y,
1169
+ HPDF_REAL width,
1170
+ HPDF_REAL height);
1171
+
1172
+
1173
+ HPDF_EXPORT(HPDF_STATUS)
1174
+ HPDF_Page_Circle (HPDF_Page page,
1175
+ HPDF_REAL x,
1176
+ HPDF_REAL y,
1177
+ HPDF_REAL ray);
1178
+
1179
+
1180
+ HPDF_EXPORT(HPDF_STATUS)
1181
+ HPDF_Page_Ellipse (HPDF_Page page,
1182
+ HPDF_REAL x,
1183
+ HPDF_REAL y,
1184
+ HPDF_REAL xray,
1185
+ HPDF_REAL yray);
1186
+
1187
+
1188
+ HPDF_EXPORT(HPDF_STATUS)
1189
+ HPDF_Page_Arc (HPDF_Page page,
1190
+ HPDF_REAL x,
1191
+ HPDF_REAL y,
1192
+ HPDF_REAL ray,
1193
+ HPDF_REAL ang1,
1194
+ HPDF_REAL ang2);
1195
+
1196
+
1197
+ HPDF_EXPORT(HPDF_STATUS)
1198
+ HPDF_Page_TextOut (HPDF_Page page,
1199
+ HPDF_REAL xpos,
1200
+ HPDF_REAL ypos,
1201
+ const char *text);
1202
+
1203
+
1204
+ HPDF_EXPORT(HPDF_STATUS)
1205
+ HPDF_Page_TextRect (HPDF_Page page,
1206
+ HPDF_REAL left,
1207
+ HPDF_REAL top,
1208
+ HPDF_REAL right,
1209
+ HPDF_REAL bottom,
1210
+ const char *text,
1211
+ HPDF_TextAlignment align,
1212
+ HPDF_UINT *len);
1213
+
1214
+
1215
+ HPDF_EXPORT(HPDF_STATUS)
1216
+ HPDF_Page_SetSlideShow (HPDF_Page page,
1217
+ HPDF_TransitionStyle type,
1218
+ HPDF_REAL disp_time,
1219
+ HPDF_REAL trans_time);
1220
+
1221
+
1222
+ #ifdef __cplusplus
1223
+ }
1224
+ #endif /* __cplusplus */
1225
+
1226
+ #endif /* _HPDF_H */
1227
+