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,80 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.0 >> -- hpdf_gstate.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
+ #ifndef _HPDF_GSTATE_H
16
+ #define _HPDF_GSTATE_H
17
+
18
+ #include "hpdf_font.h"
19
+
20
+ #ifdef __cplusplus
21
+ extern "C" {
22
+ #endif
23
+
24
+
25
+ /*----------------------------------------------------------------------------*/
26
+ /*------ graphic state stack -------------------------------------------------*/
27
+
28
+ typedef struct _HPDF_GState_Rec *HPDF_GState;
29
+
30
+ typedef struct _HPDF_GState_Rec {
31
+ HPDF_TransMatrix trans_matrix;
32
+ HPDF_REAL line_width;
33
+ HPDF_LineCap line_cap;
34
+ HPDF_LineJoin line_join;
35
+ HPDF_REAL miter_limit;
36
+ HPDF_DashMode dash_mode;
37
+ HPDF_REAL flatness;
38
+
39
+ HPDF_REAL char_space;
40
+ HPDF_REAL word_space;
41
+ HPDF_REAL h_scalling;
42
+ HPDF_REAL text_leading;
43
+ HPDF_TextRenderingMode rendering_mode;
44
+ HPDF_REAL text_rise;
45
+
46
+ HPDF_ColorSpace cs_fill;
47
+ HPDF_ColorSpace cs_stroke;
48
+ HPDF_RGBColor rgb_fill;
49
+ HPDF_RGBColor rgb_stroke;
50
+ HPDF_CMYKColor cmyk_fill;
51
+ HPDF_CMYKColor cmyk_stroke;
52
+ HPDF_REAL gray_fill;
53
+ HPDF_REAL gray_stroke;
54
+
55
+ HPDF_Font font;
56
+ HPDF_REAL font_size;
57
+ HPDF_WritingMode writing_mode;
58
+
59
+ HPDF_GState prev;
60
+ HPDF_UINT depth;
61
+ } HPDF_GState_Rec;
62
+
63
+ /*----------------------------------------------------------------------------*/
64
+ /*----------------------------------------------------------------------------*/
65
+
66
+ HPDF_GState
67
+ HPDF_GState_New (HPDF_MMgr mmgr,
68
+ HPDF_GState current);
69
+
70
+
71
+ HPDF_GState
72
+ HPDF_GState_Free (HPDF_MMgr mmgr,
73
+ HPDF_GState gstate);
74
+
75
+ #ifdef __cplusplus
76
+ }
77
+ #endif /* __cplusplus */
78
+
79
+ #endif /* _HPDF_GSTATE_H */
80
+
@@ -0,0 +1,72 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.3 >> -- hpdf_image.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
+ #ifndef _HPDF_IMAGE_H
16
+ #define _HPDF_IMAGE_H
17
+
18
+ #include "hpdf_objects.h"
19
+
20
+ #ifdef __cplusplus
21
+ extern "C" {
22
+ #endif
23
+
24
+ #ifndef HPDF_NOPNGLIB
25
+
26
+ HPDF_Image
27
+ HPDF_Image_LoadPngImage (HPDF_MMgr mmgr,
28
+ HPDF_Stream png_data,
29
+ HPDF_Xref xref,
30
+ HPDF_BOOL delayed_loading);
31
+
32
+ #endif
33
+
34
+ HPDF_Image
35
+ HPDF_Image_LoadJpegImage (HPDF_MMgr mmgr,
36
+ HPDF_Stream jpeg_data,
37
+ HPDF_Xref xref);
38
+
39
+
40
+ HPDF_Image
41
+ HPDF_Image_LoadRawImage (HPDF_MMgr mmgr,
42
+ HPDF_Stream stream,
43
+ HPDF_Xref xref,
44
+ HPDF_UINT width,
45
+ HPDF_UINT height,
46
+ HPDF_ColorSpace color_space);
47
+
48
+
49
+ HPDF_Image
50
+ HPDF_Image_LoadRawImageFromMem (HPDF_MMgr mmgr,
51
+ const HPDF_BYTE *buf,
52
+ HPDF_Xref xref,
53
+ HPDF_UINT width,
54
+ HPDF_UINT height,
55
+ HPDF_ColorSpace color_space,
56
+ HPDF_UINT bits_per_component);
57
+
58
+
59
+ HPDF_BOOL
60
+ HPDF_Image_Validate (HPDF_Image image);
61
+
62
+
63
+ HPDF_STATUS
64
+ HPDF_Image_SetMask (HPDF_Image image,
65
+ HPDF_BOOL mask);
66
+
67
+ #ifdef __cplusplus
68
+ }
69
+ #endif /* __cplusplus */
70
+
71
+ #endif /* _HPDF_XOBJECTS_H */
72
+
@@ -0,0 +1,48 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.0 >> -- hpdf_info.c
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
+
16
+ #ifndef _HPDF_INFO_H
17
+ #define _HPDF_INFO_H
18
+
19
+ #include "hpdf_objects.h"
20
+
21
+ #ifdef __cplusplus
22
+ extern "C" {
23
+ #endif
24
+
25
+
26
+ HPDF_STATUS
27
+ HPDF_Info_SetInfoAttr (HPDF_Dict info,
28
+ HPDF_InfoType type,
29
+ const char *value,
30
+ HPDF_Encoder encoder);
31
+
32
+
33
+ const char*
34
+ HPDF_Info_GetInfoAttr (HPDF_Dict info,
35
+ HPDF_InfoType type);
36
+
37
+
38
+ HPDF_STATUS
39
+ HPDF_Info_SetInfoDateAttr (HPDF_Dict info,
40
+ HPDF_InfoType type,
41
+ HPDF_Date value);
42
+
43
+ #ifdef __cplusplus
44
+ }
45
+ #endif /* __cplusplus */
46
+
47
+ #endif /* _HPDF_INFO_H */
48
+
@@ -0,0 +1,85 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.0 >> -- hpdf_list.h
3
+ *
4
+ * Copyright (c) 1999-2005 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
+ #ifndef _HPDF_LIST_H
16
+ #define _HPDF_LIST_H
17
+
18
+ #include "hpdf_error.h"
19
+ #include "hpdf_mmgr.h"
20
+
21
+ #ifdef __cplusplus
22
+ extern "C" {
23
+ #endif
24
+
25
+ typedef struct _HPDF_List_Rec *HPDF_List;
26
+
27
+ typedef struct _HPDF_List_Rec {
28
+ HPDF_MMgr mmgr;
29
+ HPDF_Error error;
30
+ HPDF_UINT block_siz;
31
+ HPDF_UINT items_per_block;
32
+ HPDF_UINT count;
33
+ void **obj;
34
+ } HPDF_List_Rec;
35
+
36
+
37
+ HPDF_List
38
+ HPDF_List_New (HPDF_MMgr mmgr,
39
+ HPDF_UINT items_per_block);
40
+
41
+
42
+ void
43
+ HPDF_List_Free (HPDF_List list);
44
+
45
+
46
+ HPDF_STATUS
47
+ HPDF_List_Add (HPDF_List list,
48
+ void *item);
49
+
50
+
51
+ HPDF_STATUS
52
+ HPDF_List_Insert (HPDF_List list,
53
+ void *target,
54
+ void *item);
55
+
56
+
57
+ HPDF_STATUS
58
+ HPDF_List_Remove (HPDF_List list,
59
+ void *item);
60
+
61
+
62
+ void*
63
+ HPDF_List_RemoveByIndex (HPDF_List list,
64
+ HPDF_UINT index);
65
+
66
+
67
+ void*
68
+ HPDF_List_ItemAt (HPDF_List list,
69
+ HPDF_UINT index);
70
+
71
+
72
+ HPDF_INT32
73
+ HPDF_List_Find (HPDF_List list,
74
+ void *item);
75
+
76
+
77
+ void
78
+ HPDF_List_Clear (HPDF_List list);
79
+
80
+ #ifdef __cplusplus
81
+ }
82
+ #endif /* __cplusplus */
83
+
84
+ #endif /* _HPDF_LIST_H */
85
+
@@ -0,0 +1,82 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.0 >> -- hpdf_mmgr.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
+ #ifndef _HPDF_MMGR_H
16
+ #define _HPDF_MMGR_H
17
+
18
+ #include "hpdf_types.h"
19
+ #include "hpdf_error.h"
20
+
21
+ #ifdef __cplusplus
22
+ extern "C" {
23
+ #endif
24
+
25
+ typedef struct _HPDF_MPool_Node_Rec *HPDF_MPool_Node;
26
+
27
+ typedef struct _HPDF_MPool_Node_Rec {
28
+ HPDF_BYTE* buf;
29
+ HPDF_UINT size;
30
+ HPDF_UINT used_size;
31
+ HPDF_MPool_Node next_node;
32
+ } HPDF_MPool_Node_Rec;
33
+
34
+
35
+ typedef struct _HPDF_MMgr_Rec *HPDF_MMgr;
36
+
37
+ typedef struct _HPDF_MMgr_Rec {
38
+ HPDF_Error error;
39
+ HPDF_Alloc_Func alloc_fn;
40
+ HPDF_Free_Func free_fn;
41
+ HPDF_MPool_Node mpool;
42
+ HPDF_UINT buf_size;
43
+
44
+ #ifdef HPDF_MEM_DEBUG
45
+ HPDF_UINT alloc_cnt;
46
+ HPDF_UINT free_cnt;
47
+ #endif
48
+ } HPDF_MMgr_Rec;
49
+
50
+
51
+ /* HPDF_mpool_new
52
+ *
53
+ * create new HPDF_mpool object. when memory allocation goes wrong,
54
+ * it returns NULL and error handling function will be called.
55
+ * if buf_size is non-zero, mmgr is configured to be using memory-pool
56
+ */
57
+ HPDF_MMgr
58
+ HPDF_MMgr_New (HPDF_Error error,
59
+ HPDF_UINT buf_size,
60
+ HPDF_Alloc_Func alloc_fn,
61
+ HPDF_Free_Func free_fn);
62
+
63
+
64
+ void
65
+ HPDF_MMgr_Free (HPDF_MMgr mmgr);
66
+
67
+
68
+ void*
69
+ HPDF_GetMem (HPDF_MMgr mmgr,
70
+ HPDF_UINT size);
71
+
72
+
73
+ void
74
+ HPDF_FreeMem (HPDF_MMgr mmgr,
75
+ void *aptr);
76
+
77
+ #ifdef __cplusplus
78
+ }
79
+ #endif /* __cplusplus */
80
+
81
+ #endif /* _HPDF_MMGR_H */
82
+
@@ -0,0 +1,587 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.5 >> -- hpdf_objects.c
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
+ #ifndef _HPDF_OBJECTS_H
16
+ #define _HPDF_OBJECTS_H
17
+
18
+ #include "hpdf_encoder.h"
19
+
20
+ #ifdef __cplusplus
21
+ extern "C" {
22
+ #endif
23
+
24
+
25
+ /* if HPDF_OTYPE_DIRECT bit is set, the object owned by other container
26
+ * object. if HPDF_OTYPE_INDIRECT bit is set, the object managed by xref.
27
+ */
28
+
29
+ #define HPDF_OTYPE_NONE 0x00000000
30
+ #define HPDF_OTYPE_DIRECT 0x80000000
31
+ #define HPDF_OTYPE_INDIRECT 0x40000000
32
+ #define HPDF_OTYPE_ANY (HPDF_OTYPE_DIRECT | HPDF_OTYPE_INDIRECT)
33
+ #define HPDF_OTYPE_HIDDEN 0x10000000
34
+
35
+ #define HPDF_OCLASS_UNKNOWN 0x0001
36
+ #define HPDF_OCLASS_NULL 0x0002
37
+ #define HPDF_OCLASS_BOOLEAN 0x0003
38
+ #define HPDF_OCLASS_NUMBER 0x0004
39
+ #define HPDF_OCLASS_REAL 0x0005
40
+ #define HPDF_OCLASS_NAME 0x0006
41
+ #define HPDF_OCLASS_STRING 0x0007
42
+ #define HPDF_OCLASS_BINARY 0x0008
43
+ #define HPDF_OCLASS_ARRAY 0x0010
44
+ #define HPDF_OCLASS_DICT 0x0011
45
+ #define HPDF_OCLASS_PROXY 0x0012
46
+ #define HPDF_OCLASS_ANY 0x00FF
47
+
48
+ #define HPDF_OSUBCLASS_FONT 0x0100
49
+ #define HPDF_OSUBCLASS_CATALOG 0x0200
50
+ #define HPDF_OSUBCLASS_PAGES 0x0300
51
+ #define HPDF_OSUBCLASS_PAGE 0x0400
52
+ #define HPDF_OSUBCLASS_XOBJECT 0x0500
53
+ #define HPDF_OSUBCLASS_OUTLINE 0x0600
54
+ #define HPDF_OSUBCLASS_DESTINATION 0x0700
55
+ #define HPDF_OSUBCLASS_ANNOTATION 0x0800
56
+ #define HPDF_OSUBCLASS_ENCRYPT 0x0900
57
+ #define HPDF_OSUBCLASS_EXT_GSTATE 0x0A00
58
+ #define HPDF_OSUBCLASS_EXT_GSTATE_R 0x0B00 /* read only object */
59
+
60
+
61
+
62
+ /*----------------------------------------------------------------------------*/
63
+ /*------ Values related xref -------------------------------------------------*/
64
+
65
+ #define HPDF_FREE_ENTRY 'f'
66
+ #define HPDF_IN_USE_ENTRY 'n'
67
+
68
+
69
+ /*
70
+ * structure of Object-ID
71
+ *
72
+ * 1 direct-object
73
+ * 2 indirect-object
74
+ * 3 reserved
75
+ * 4 shadow-object
76
+ * 5-8 reserved
77
+ * 9-32 object-id�i0-8388607�j
78
+ *
79
+ * the real Object-ID is described "obj_id & 0x00FFFFFF"
80
+ */
81
+
82
+ typedef struct _HPDF_Obj_Header {
83
+ HPDF_UINT32 obj_id;
84
+ HPDF_UINT16 gen_no;
85
+ HPDF_UINT16 obj_class;
86
+ } HPDF_Obj_Header;
87
+
88
+
89
+
90
+ HPDF_STATUS
91
+ HPDF_Obj_WriteValue (void *obj,
92
+ HPDF_Stream stream,
93
+ HPDF_Encrypt e);
94
+
95
+
96
+ HPDF_STATUS
97
+ HPDF_Obj_Write (void *obj,
98
+ HPDF_Stream stream,
99
+ HPDF_Encrypt e);
100
+
101
+
102
+ void
103
+ HPDF_Obj_Free (HPDF_MMgr mmgr,
104
+ void *obj);
105
+
106
+
107
+ void
108
+ HPDF_Obj_ForceFree (HPDF_MMgr mmgr,
109
+ void *obj);
110
+
111
+
112
+ /*---------------------------------------------------------------------------*/
113
+ /*----- HPDF_Null -----------------------------------------------------------*/
114
+
115
+ typedef struct _HPDF_Null_Rec *HPDF_Null;
116
+
117
+ typedef struct _HPDF_Null_Rec {
118
+ HPDF_Obj_Header header;
119
+ } HPDF_Null_Rec;
120
+
121
+
122
+
123
+ HPDF_Null
124
+ HPDF_Null_New (HPDF_MMgr mmgr);
125
+
126
+
127
+ /*---------------------------------------------------------------------------*/
128
+ /*----- HPDF_Boolean --------------------------------------------------------*/
129
+
130
+ typedef struct _HPDF_Boolean_Rec *HPDF_Boolean;
131
+
132
+ typedef struct _HPDF_Boolean_Rec {
133
+ HPDF_Obj_Header header;
134
+ HPDF_BOOL value;
135
+ } HPDF_Boolean_Rec;
136
+
137
+
138
+
139
+ HPDF_Boolean
140
+ HPDF_Boolean_New (HPDF_MMgr mmgr,
141
+ HPDF_BOOL value);
142
+
143
+
144
+ HPDF_STATUS
145
+ HPDF_Boolean_Write (HPDF_Boolean obj,
146
+ HPDF_Stream stream);
147
+
148
+
149
+ /*---------------------------------------------------------------------------*/
150
+ /*----- HPDF_Number ---------------------------------------------------------*/
151
+
152
+ typedef struct _HPDF_Number_Rec *HPDF_Number;
153
+
154
+ typedef struct _HPDF_Number_Rec {
155
+ HPDF_Obj_Header header;
156
+ HPDF_INT32 value;
157
+ } HPDF_Number_Rec;
158
+
159
+
160
+
161
+ HPDF_Number
162
+ HPDF_Number_New (HPDF_MMgr mmgr,
163
+ HPDF_INT32 value);
164
+
165
+
166
+ void
167
+ HPDF_Number_SetValue (HPDF_Number obj,
168
+ HPDF_INT32 value);
169
+
170
+
171
+ HPDF_STATUS
172
+ HPDF_Number_Write (HPDF_Number obj,
173
+ HPDF_Stream stream);
174
+
175
+
176
+ /*---------------------------------------------------------------------------*/
177
+ /*----- HPDF_Real -----------------------------------------------------------*/
178
+
179
+ typedef struct _HPDF_Real_Rec *HPDF_Real;
180
+
181
+ typedef struct _HPDF_Real_Rec {
182
+ HPDF_Obj_Header header;
183
+ HPDF_Error error;
184
+ HPDF_REAL value;
185
+ } HPDF_Real_Rec;
186
+
187
+
188
+
189
+ HPDF_Real
190
+ HPDF_Real_New (HPDF_MMgr mmgr,
191
+ HPDF_REAL value);
192
+
193
+
194
+ HPDF_STATUS
195
+ HPDF_Real_Write (HPDF_Real obj,
196
+ HPDF_Stream stream);
197
+
198
+
199
+ HPDF_STATUS
200
+ HPDF_Real_SetValue (HPDF_Real obj,
201
+ HPDF_REAL value);
202
+
203
+
204
+ /*---------------------------------------------------------------------------*/
205
+ /*----- HPDF_Name -----------------------------------------------------------*/
206
+
207
+ typedef struct _HPDF_Name_Rec *HPDF_Name;
208
+
209
+ typedef struct _HPDF_Name_Rec {
210
+ HPDF_Obj_Header header;
211
+ HPDF_Error error;
212
+ char value[HPDF_LIMIT_MAX_NAME_LEN + 1];
213
+ } HPDF_Name_Rec;
214
+
215
+
216
+
217
+ HPDF_Name
218
+ HPDF_Name_New (HPDF_MMgr mmgr,
219
+ const char *value);
220
+
221
+
222
+ HPDF_STATUS
223
+ HPDF_Name_SetValue (HPDF_Name obj,
224
+ const char *value);
225
+
226
+
227
+ HPDF_STATUS
228
+ HPDF_Name_Write (HPDF_Name obj,
229
+ HPDF_Stream stream);
230
+
231
+ const char*
232
+ HPDF_Name_GetValue (HPDF_Name obj);
233
+
234
+
235
+ /*---------------------------------------------------------------------------*/
236
+ /*----- HPDF_String ---------------------------------------------------------*/
237
+
238
+ typedef struct _HPDF_String_Rec *HPDF_String;
239
+
240
+ typedef struct _HPDF_String_Rec {
241
+ HPDF_Obj_Header header;
242
+ HPDF_MMgr mmgr;
243
+ HPDF_Error error;
244
+ HPDF_Encoder encoder;
245
+ HPDF_BYTE *value;
246
+ HPDF_UINT len;
247
+ } HPDF_String_Rec;
248
+
249
+
250
+
251
+ HPDF_String
252
+ HPDF_String_New (HPDF_MMgr mmgr,
253
+ const char *value,
254
+ HPDF_Encoder encoder);
255
+
256
+
257
+ HPDF_STATUS
258
+ HPDF_String_SetValue (HPDF_String obj,
259
+ const char *value);
260
+
261
+
262
+ void
263
+ HPDF_String_Free (HPDF_String obj);
264
+
265
+
266
+ HPDF_STATUS
267
+ HPDF_String_Write (HPDF_String obj,
268
+ HPDF_Stream stream,
269
+ HPDF_Encrypt e);
270
+
271
+
272
+ HPDF_STATUS
273
+ HPDF_String_SetValue (HPDF_String obj,
274
+ const char *value);
275
+
276
+
277
+ /*---------------------------------------------------------------------------*/
278
+ /*----- HPDF_Binary ---------------------------------------------------------*/
279
+
280
+ typedef struct _HPDF_Binary_Rec *HPDF_Binary;
281
+
282
+ typedef struct _HPDF_Binary_Rec {
283
+ HPDF_Obj_Header header;
284
+ HPDF_MMgr mmgr;
285
+ HPDF_Error error;
286
+ HPDF_BYTE *value;
287
+ HPDF_UINT len;
288
+ } HPDF_Binary_Rec;
289
+
290
+
291
+
292
+ HPDF_Binary
293
+ HPDF_Binary_New (HPDF_MMgr mmgr,
294
+ HPDF_BYTE *value,
295
+ HPDF_UINT len);
296
+
297
+
298
+ HPDF_STATUS
299
+ HPDF_Binary_SetValue (HPDF_Binary obj,
300
+ HPDF_BYTE *value,
301
+ HPDF_UINT len);
302
+
303
+
304
+ HPDF_BYTE*
305
+ HPDF_Binary_GetValue (HPDF_Binary obj);
306
+
307
+
308
+ void
309
+ HPDF_Binary_Free (HPDF_Binary obj);
310
+
311
+
312
+ HPDF_STATUS
313
+ HPDF_Binary_Write (HPDF_Binary obj,
314
+ HPDF_Stream stream,
315
+ HPDF_Encrypt e);
316
+
317
+
318
+ HPDF_UINT
319
+ HPDF_Binary_GetLen (HPDF_Binary obj);
320
+
321
+
322
+ /*---------------------------------------------------------------------------*/
323
+ /*----- HPDF_Array ----------------------------------------------------------*/
324
+
325
+ typedef struct _HPDF_Array_Rec *HPDF_Array;
326
+
327
+ typedef struct _HPDF_Array_Rec {
328
+ HPDF_Obj_Header header;
329
+ HPDF_MMgr mmgr;
330
+ HPDF_Error error;
331
+ HPDF_List list;
332
+ } HPDF_Array_Rec;
333
+
334
+
335
+ HPDF_Array
336
+ HPDF_Array_New (HPDF_MMgr mmgr);
337
+
338
+
339
+ HPDF_Array
340
+ HPDF_Box_Array_New (HPDF_MMgr mmgr,
341
+ HPDF_Box box);
342
+
343
+
344
+ void
345
+ HPDF_Array_Free (HPDF_Array array);
346
+
347
+
348
+ HPDF_STATUS
349
+ HPDF_Array_Write (HPDF_Array array,
350
+ HPDF_Stream stream,
351
+ HPDF_Encrypt e);
352
+
353
+
354
+ HPDF_STATUS
355
+ HPDF_Array_Add (HPDF_Array array,
356
+ void *obj);
357
+
358
+
359
+ HPDF_STATUS
360
+ HPDF_Array_Insert (HPDF_Array array,
361
+ void *target,
362
+ void *obj);
363
+
364
+
365
+ void*
366
+ HPDF_Array_GetItem (HPDF_Array array,
367
+ HPDF_UINT index,
368
+ HPDF_UINT16 obj_class);
369
+
370
+
371
+ HPDF_STATUS
372
+ HPDF_Array_AddNumber (HPDF_Array array,
373
+ HPDF_INT32 value);
374
+
375
+
376
+ HPDF_STATUS
377
+ HPDF_Array_AddReal (HPDF_Array array,
378
+ HPDF_REAL value);
379
+
380
+
381
+ HPDF_STATUS
382
+ HPDF_Array_AddName (HPDF_Array array,
383
+ const char *value);
384
+
385
+ void
386
+ HPDF_Array_Clear (HPDF_Array array);
387
+
388
+
389
+ /*---------------------------------------------------------------------------*/
390
+ /*----- HPDF_Dict -----------------------------------------------------------*/
391
+
392
+ typedef struct _HPDF_Xref_Rec *HPDF_Xref;
393
+
394
+ typedef struct _HPDF_Dict_Rec *HPDF_Dict;
395
+
396
+ typedef void
397
+ (*HPDF_Dict_FreeFunc) (HPDF_Dict obj);
398
+
399
+ typedef HPDF_STATUS
400
+ (*HPDF_Dict_BeforeWriteFunc) (HPDF_Dict obj);
401
+
402
+ typedef HPDF_STATUS
403
+ (*HPDF_Dict_AfterWriteFunc) (HPDF_Dict obj);
404
+
405
+ typedef HPDF_STATUS
406
+ (*HPDF_Dict_OnWriteFunc) (HPDF_Dict obj,
407
+ HPDF_Stream stream);
408
+
409
+ typedef struct _HPDF_Dict_Rec {
410
+ HPDF_Obj_Header header;
411
+ HPDF_MMgr mmgr;
412
+ HPDF_Error error;
413
+ HPDF_List list;
414
+ HPDF_Dict_BeforeWriteFunc before_write_fn;
415
+ HPDF_Dict_OnWriteFunc write_fn;
416
+ HPDF_Dict_AfterWriteFunc after_write_fn;
417
+ HPDF_Dict_FreeFunc free_fn;
418
+ HPDF_Stream stream;
419
+ HPDF_UINT filter;
420
+ void *attr;
421
+ } HPDF_Dict_Rec;
422
+
423
+
424
+ typedef struct _HPDF_DictElement_Rec *HPDF_DictElement;
425
+
426
+ typedef struct _HPDF_DictElement_Rec {
427
+ char key[HPDF_LIMIT_MAX_NAME_LEN + 1];
428
+ void *value;
429
+ } HPDF_DictElement_Rec;
430
+
431
+
432
+ HPDF_Dict
433
+ HPDF_Dict_New (HPDF_MMgr mmgr);
434
+
435
+
436
+ HPDF_Dict
437
+ HPDF_DictStream_New (HPDF_MMgr mmgr,
438
+ HPDF_Xref xref);
439
+
440
+
441
+ void
442
+ HPDF_Dict_Free (HPDF_Dict dict);
443
+
444
+
445
+ HPDF_STATUS
446
+ HPDF_Dict_Write (HPDF_Dict dict,
447
+ HPDF_Stream stream,
448
+ HPDF_Encrypt e);
449
+
450
+
451
+ const char*
452
+ HPDF_Dict_GetKeyByObj (HPDF_Dict dict,
453
+ void *obj);
454
+
455
+
456
+ HPDF_STATUS
457
+ HPDF_Dict_Add (HPDF_Dict dict,
458
+ const char *key,
459
+ void *obj);
460
+
461
+
462
+ void*
463
+ HPDF_Dict_GetItem (HPDF_Dict dict,
464
+ const char *key,
465
+ HPDF_UINT16 obj_class);
466
+
467
+
468
+ HPDF_STATUS
469
+ HPDF_Dict_AddName (HPDF_Dict dict,
470
+ const char *key,
471
+ const char *value);
472
+
473
+
474
+ HPDF_STATUS
475
+ HPDF_Dict_AddNumber (HPDF_Dict dict,
476
+ const char *key,
477
+ HPDF_INT32 value);
478
+
479
+
480
+ HPDF_STATUS
481
+ HPDF_Dict_AddReal (HPDF_Dict dict,
482
+ const char *key,
483
+ HPDF_REAL value);
484
+
485
+
486
+ HPDF_STATUS
487
+ HPDF_Dict_AddBoolean (HPDF_Dict dict,
488
+ const char *key,
489
+ HPDF_BOOL value);
490
+
491
+
492
+ HPDF_STATUS
493
+ HPDF_Dict_RemoveElement (HPDF_Dict dict,
494
+ const char *key);
495
+
496
+
497
+ /*---------------------------------------------------------------------------*/
498
+ /*----- HPDF_ProxyObject ----------------------------------------------------*/
499
+
500
+
501
+
502
+ typedef struct _HPDF_Proxy_Rec *HPDF_Proxy;
503
+
504
+ typedef struct _HPDF_Proxy_Rec {
505
+ HPDF_Obj_Header header;
506
+ void *obj;
507
+ } HPDF_Proxy_Rec;
508
+
509
+
510
+ HPDF_Proxy
511
+ HPDF_Proxy_New (HPDF_MMgr mmgr,
512
+ void *obj);
513
+
514
+
515
+
516
+ /*---------------------------------------------------------------------------*/
517
+ /*----- HPDF_Xref -----------------------------------------------------------*/
518
+
519
+ typedef struct _HPDF_XrefEntry_Rec *HPDF_XrefEntry;
520
+
521
+ typedef struct _HPDF_XrefEntry_Rec {
522
+ char entry_typ;
523
+ HPDF_UINT byte_offset;
524
+ HPDF_UINT16 gen_no;
525
+ void* obj;
526
+ } HPDF_XrefEntry_Rec;
527
+
528
+
529
+ typedef struct _HPDF_Xref_Rec {
530
+ HPDF_MMgr mmgr;
531
+ HPDF_Error error;
532
+ HPDF_UINT32 start_offset;
533
+ HPDF_List entries;
534
+ HPDF_UINT addr;
535
+ HPDF_Xref prev;
536
+ HPDF_Dict trailer;
537
+ } HPDF_Xref_Rec;
538
+
539
+
540
+ HPDF_Xref
541
+ HPDF_Xref_New (HPDF_MMgr mmgr,
542
+ HPDF_UINT32 offset);
543
+
544
+
545
+ void
546
+ HPDF_Xref_Free (HPDF_Xref xref);
547
+
548
+
549
+ HPDF_STATUS
550
+ HPDF_Xref_Add (HPDF_Xref xref,
551
+ void *obj);
552
+
553
+
554
+ HPDF_XrefEntry
555
+ HPDF_Xref_GetEntry (HPDF_Xref xref,
556
+ HPDF_UINT index);
557
+
558
+
559
+ HPDF_STATUS
560
+ HPDF_Xref_WriteToStream (HPDF_Xref xref,
561
+ HPDF_Stream stream,
562
+ HPDF_Encrypt e);
563
+
564
+
565
+ HPDF_XrefEntry
566
+ HPDF_Xref_GetEntryByObjectId (HPDF_Xref xref,
567
+ HPDF_UINT obj_id);
568
+
569
+
570
+
571
+ typedef HPDF_Dict HPDF_Pages;
572
+ typedef HPDF_Dict HPDF_Page;
573
+ typedef HPDF_Dict HPDF_Annotation;
574
+ typedef HPDF_Dict HPDF_XObject;
575
+ typedef HPDF_Dict HPDF_Image;
576
+ typedef HPDF_Dict HPDF_Outline;
577
+ typedef HPDF_Dict HPDF_EncryptDict;
578
+ typedef HPDF_Dict HPDF_Action;
579
+ typedef HPDF_Dict HPDF_ExtGState;
580
+ typedef HPDF_Array HPDF_Destination;
581
+
582
+ #ifdef __cplusplus
583
+ }
584
+ #endif /* __cplusplus */
585
+
586
+ #endif /* _HPDF_OBJECTS_H */
587
+