OSDN Git Service

binding with libharu.
[putex/putex.git] / src / texsourc / lib / libhpdf / include / hpdf_doc.h
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