1 | /* |
2 | * << Haru Free PDF Library >> -- hpdf_doc.h |
3 | * |
4 | * URL: http://libharu.org |
5 | * |
6 | * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp> |
7 | * Copyright (c) 2007-2009 Antony Dovgal <tony@daylessday.org> |
8 | * |
9 | * Permission to use, copy, modify, distribute and sell this software |
10 | * and its documentation for any purpose is hereby granted without fee, |
11 | * provided that the above copyright notice appear in all copies and |
12 | * that both that copyright notice and this permission notice appear |
13 | * in supporting documentation. |
14 | * It is provided "as is" without express or implied warranty. |
15 | * |
16 | */ |
17 | |
18 | |
19 | #ifndef _HPDF_DOC_H |
20 | #define _HPDF_DOC_H |
21 | |
22 | #define HPDF_SIG_BYTES 0x41504446L |
23 | |
24 | #include "hpdf_catalog.h" |
25 | #include "hpdf_image.h" |
26 | #include "hpdf_pages.h" |
27 | #include "hpdf_outline.h" |
28 | #include "hpdf_ext_gstate.h" |
29 | |
30 | #ifdef __cplusplus |
31 | extern "C" { |
32 | #endif |
33 | |
34 | #define HPDF_VER_DEFAULT HPDF_VER_12 |
35 | |
36 | typedef struct _HPDF_Doc_Rec { |
37 | HPDF_UINT32 sig_bytes; |
38 | HPDF_PDFVer pdf_version; |
39 | |
40 | HPDF_MMgr mmgr; |
41 | HPDF_Catalog catalog; |
42 | HPDF_Outline outlines; |
43 | HPDF_Xref xref; |
44 | HPDF_Pages root_pages; |
45 | HPDF_Pages cur_pages; |
46 | HPDF_Page cur_page; |
47 | HPDF_List page_list; |
48 | HPDF_Error_Rec error; |
49 | HPDF_Dict info; |
50 | HPDF_Dict trailer; |
51 | |
52 | HPDF_List font_mgr; |
53 | HPDF_BYTE ttfont_tag[6]; |
54 | |
55 | /* list for loaded fontdefs */ |
56 | HPDF_List fontdef_list; |
57 | |
58 | /* list for loaded encodings */ |
59 | HPDF_List encoder_list; |
60 | |
61 | HPDF_Encoder cur_encoder; |
62 | |
63 | /* default compression mode */ |
64 | HPDF_BOOL compression_mode; |
65 | |
66 | HPDF_BOOL encrypt_on; |
67 | HPDF_EncryptDict encrypt_dict; |
68 | |
69 | HPDF_Encoder def_encoder; |
70 | |
71 | HPDF_UINT page_per_pages; |
72 | HPDF_UINT cur_page_num; |
73 | |
74 | /* buffer for saving into memory stream */ |
75 | HPDF_Stream stream; |
76 | } HPDF_Doc_Rec; |
77 | |
78 | typedef struct _HPDF_Doc_Rec *HPDF_Doc; |
79 | |
80 | |
81 | HPDF_Encoder |
82 | HPDF_Doc_FindEncoder (HPDF_Doc pdf, |
83 | const char *encoding_name); |
84 | |
85 | |
86 | HPDF_FontDef |
87 | HPDF_Doc_FindFontDef (HPDF_Doc pdf, |
88 | const char *font_name); |
89 | |
90 | |
91 | HPDF_Font |
92 | HPDF_Doc_FindFont (HPDF_Doc pdf, |
93 | const char *font_name, |
94 | const char *encoding_name); |
95 | |
96 | |
97 | HPDF_BOOL |
98 | HPDF_Doc_Validate (HPDF_Doc pdf); |
99 | |
100 | |
101 | /*----- page handling -------------------------------------------------------*/ |
102 | |
103 | HPDF_Pages |
104 | HPDF_Doc_GetCurrentPages (HPDF_Doc pdf); |
105 | |
106 | |
107 | HPDF_Pages |
108 | HPDF_Doc_AddPagesTo (HPDF_Doc pdf, |
109 | HPDF_Pages parent); |
110 | |
111 | |
112 | HPDF_STATUS |
113 | HPDF_Doc_SetCurrentPages (HPDF_Doc pdf, |
114 | HPDF_Pages pages); |
115 | |
116 | |
117 | HPDF_STATUS |
118 | HPDF_Doc_SetCurrentPage (HPDF_Doc pdf, |
119 | HPDF_Page page); |
120 | |
121 | |
122 | |
123 | |
124 | /*----- font handling -------------------------------------------------------*/ |
125 | |
126 | HPDF_FontDef |
127 | HPDF_GetFontDef (HPDF_Doc pdf, |
128 | const char *font_name); |
129 | |
130 | |
131 | HPDF_STATUS |
132 | HPDF_Doc_RegisterFontDef (HPDF_Doc pdf, |
133 | HPDF_FontDef fontdef); |
134 | |
135 | |
136 | /*----- encoding handling ---------------------------------------------------*/ |
137 | |
138 | HPDF_STATUS |
139 | HPDF_Doc_RegisterEncoder (HPDF_Doc pdf, |
140 | HPDF_Encoder encoder); |
141 | |
142 | |
143 | |
144 | /*----- encryptio------------------------------------------------------------*/ |
145 | |
146 | HPDF_STATUS |
147 | HPDF_Doc_SetEncryptOn (HPDF_Doc pdf); |
148 | |
149 | |
150 | HPDF_STATUS |
151 | HPDF_Doc_SetEncryptOff (HPDF_Doc pdf); |
152 | |
153 | |
154 | HPDF_STATUS |
155 | HPDF_Doc_PrepareEncryption (HPDF_Doc pdf); |
156 | |
157 | #ifdef __cplusplus |
158 | } |
159 | #endif /* __cplusplus */ |
160 | |
161 | #endif /* _HPDF_DOC_H */ |
162 | |
163 | |