OLD | NEW |
| (Empty) |
1 // Copyright 2014 PDFium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
6 | |
7 #ifndef _FPDFDOC_H_ | |
8 #define _FPDFDOC_H_ | |
9 | |
10 #include "fpdfview.h" | |
11 | |
12 // Exported Functions | |
13 #ifdef __cplusplus | |
14 extern "C" { | |
15 #endif | |
16 | |
17 // Function: FPDFBookmark_GetFirstChild | |
18 // Get the first child of a bookmark item, or the first top
level bookmark item. | |
19 // Parameters: | |
20 // document - Handle to the document. Returned
by FPDF_LoadDocument or FPDF_LoadMemDocument. | |
21 // bookmark - Handle to the current bookmark.
Can be NULL if you want to get the first top level item. | |
22 // Return value: | |
23 // Handle to the first child or top level bookmark item. NU
LL if no child or top level bookmark found. | |
24 // | |
25 DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetFirstChild(FPDF_DOCUMENT documen
t, FPDF_BOOKMARK bookmark); | |
26 | |
27 // Function: FPDFBookmark_GetNextSibling | |
28 // Get next bookmark item at the same level. | |
29 // Parameters: | |
30 // document - Handle to the document. Returned
by FPDF_LoadDocument or FPDF_LoadMemDocument. | |
31 // bookmark - Handle to the current bookmark.
Cannot be NULL. | |
32 // Return value: | |
33 // Handle to the next bookmark item at the same level. NULL
if this is the last bookmark at this level. | |
34 // | |
35 DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetNextSibling(FPDF_DOCUMENT docume
nt, FPDF_BOOKMARK bookmark); | |
36 | |
37 // Function: FPDFBookmark_GetTitle | |
38 // Get title of a bookmark. | |
39 // Parameters: | |
40 // bookmark - Handle to the bookmark. | |
41 // buffer - Buffer for the title. Can be NUL
L. | |
42 // buflen - The length of the buffer in bytes. Can be 0. | |
43 // Return value: | |
44 // Number of bytes the title consumes, including trailing z
eros. | |
45 // Comments: | |
46 // Regardless of the platform, the title is always in UTF-1
6LE encoding. That means the buffer | |
47 // can be treated as an array of WORD (on Intel and compatible CPUs), e
ach WORD representing the Unicode of | |
48 // a character(some special Unicode may take 2 WORDs).The string is fol
lowed by two bytes of zero | |
49 // indicating the end of the string. | |
50 // | |
51 // The return value always indicates the number of bytes required for t
he buffer, even if no buffer is specified | |
52 // or the buffer size is less then required. In these cases, the buffer
will not be modified. | |
53 // | |
54 DLLEXPORT unsigned long STDCALL FPDFBookmark_GetTitle(FPDF_BOOKMARK bookmark, vo
id* buffer, unsigned long buflen); | |
55 | |
56 // Function: FPDFBookmark_Find | |
57 // Find a bookmark in the document, using the bookmark titl
e. | |
58 // Parameters: | |
59 // document - Handle to the document. Returned
by FPDF_LoadDocument or FPDF_LoadMemDocument. | |
60 // title - The UTF-16LE encoded Unicode str
ing for the bookmark title to be searched. Can't be NULL. | |
61 // Return value: | |
62 // Handle to the found bookmark item. NULL if the title can
't be found. | |
63 // Comments: | |
64 // It always returns the first found bookmark if more than
one bookmarks have the same title. | |
65 // | |
66 DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_Find(FPDF_DOCUMENT document, FPDF_W
IDESTRING title); | |
67 | |
68 // Function: FPDFBookmark_GetDest | |
69 // Get the destination associated with a bookmark item. | |
70 // Parameters: | |
71 // document - Handle to the document. | |
72 // bookmark - Handle to the bookmark. | |
73 // Return value: | |
74 // Handle to the destination data. NULL if no destination i
s associated with this bookmark. | |
75 // | |
76 DLLEXPORT FPDF_DEST STDCALL FPDFBookmark_GetDest(FPDF_DOCUMENT document, FPDF_BO
OKMARK bookmark); | |
77 | |
78 // Function: FPDFBookmark_GetAction | |
79 // Get the action associated with a bookmark item. | |
80 // Parameters: | |
81 // bookmark - Handle to the bookmark. | |
82 // Return value: | |
83 // Handle to the action data. NULL if no action is associat
ed with this bookmark. In this case, the | |
84 // application should try FPDFBookmark_GetDest. | |
85 // | |
86 DLLEXPORT FPDF_ACTION STDCALL FPDFBookmark_GetAction(FPDF_BOOKMARK bookmark); | |
87 | |
88 #define PDFACTION_UNSUPPORTED 0 // Unsupported action ty
pe. | |
89 #define PDFACTION_GOTO 1 // Go to a desti
nation within current document. | |
90 #define PDFACTION_REMOTEGOTO 2 // Go to a destination w
ithin another document. | |
91 #define PDFACTION_URI 3 // Universal Res
ource Identifier, including web pages and | |
92
// other Internet based resources. | |
93 #define PDFACTION_LAUNCH 4 // Launch an app
lication or open a file. | |
94 | |
95 // Function: FPDFAction_GetType | |
96 // Get type of an action. | |
97 // Parameters: | |
98 // action - Handle to the action. | |
99 // Return value: | |
100 // A type number as defined above. | |
101 // | |
102 DLLEXPORT unsigned long STDCALL FPDFAction_GetType(FPDF_ACTION action); | |
103 | |
104 // Function: FPDFAction_GetDest | |
105 // Get destination of an action. | |
106 // Parameters: | |
107 // document - Handle to the document. | |
108 // action - Handle to the action. It must be
a GOTO or REMOTEGOTO action. | |
109 // Return value: | |
110 // Handle to the destination data. | |
111 // Comments: | |
112 // In case of remote goto action, the application should fi
rst use FPDFAction_GetFilePath to | |
113 // get file path, then load that particular document, and u
se its document handle to call this | |
114 // function. | |
115 // | |
116 DLLEXPORT FPDF_DEST STDCALL FPDFAction_GetDest(FPDF_DOCUMENT document, FPDF_ACTI
ON action); | |
117 | |
118 // Function: FPDFAction_GetURIPath | |
119 // Get URI path of a URI action. | |
120 // Parameters: | |
121 // document - Handle to the document. | |
122 // action - Handle to the action. Must be a
URI action. | |
123 // buffer - A buffer for output the path str
ing. Can be NULL. | |
124 // buflen - The length of the buffer, number
of bytes. Can be 0. | |
125 // Return value: | |
126 // Number of bytes the URI path consumes, including trailin
g zeros. | |
127 // Comments: | |
128 // The URI path is always encoded in 7-bit ASCII. | |
129 // | |
130 // The return value always indicated number of bytes requir
ed for the buffer, even when there is | |
131 // no buffer specified, or the buffer size is less then req
uired. In this case, the buffer will not | |
132 // be modified. | |
133 // | |
134 DLLEXPORT unsigned long STDCALL FPDFAction_GetURIPath(FPDF_DOCUMENT document, FP
DF_ACTION action, | |
135
void* buffer, unsigned long buflen); | |
136 | |
137 // Function: FPDFDest_GetPageIndex | |
138 // Get page index of a destination. | |
139 // Parameters: | |
140 // document - Handle to the document. | |
141 // dest - Handle to the destination. | |
142 // Return value: | |
143 // The page index. Starting from 0 for the first page. | |
144 // | |
145 DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(FPDF_DOCUMENT document, FP
DF_DEST dest); | |
146 | |
147 // Function: FPDFLink_GetLinkAtPoint | |
148 // Find a link at specified point on a document page. | |
149 // Parameters: | |
150 // page - Handle to the document page. | |
151 // x - The x coordinate of the
point, specified in page coordinate system. | |
152 // y - The y coordinate of the
point, specified in page coordinate system. | |
153 // Return value: | |
154 // Handle to the link. NULL if no link found at that point. | |
155 // Comments: | |
156 // The point coordinates are specified in page coordinate s
ystem. You can convert coordinates | |
157 // from screen system to page system using FPDF_DeviceToPag
e functions. | |
158 // | |
159 DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, do
uble y); | |
160 | |
161 // Function: FPDFLink_GetDest | |
162 // Get destination info of a link. | |
163 // Parameters: | |
164 // document - Handle to the document. | |
165 // link - Handle to the link. Returned by
FPDFLink_GetLinkAtPoint. | |
166 // Return value: | |
167 // Handle to the destination. NULL if there is no destinati
on associated with the link, in this case | |
168 // the application should try FPDFLink_GetAction. | |
169 // | |
170 DLLEXPORT FPDF_DEST STDCALL FPDFLink_GetDest(FPDF_DOCUMENT document, FPDF_LINK l
ink); | |
171 | |
172 // Function: FPDFLink_GetAction | |
173 // Get action info of a link. | |
174 // Parameters: | |
175 // link - Handle to the link. | |
176 // Return value: | |
177 // Handle to the action. NULL if there is no action associa
ted with the link. | |
178 // | |
179 DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(FPDF_LINK link); | |
180 | |
181 // Function: FPDFLink_Enumerate | |
182 // This function would enumerate all the link annotations i
n a single PDF page. | |
183 // Parameters: | |
184 // page[in] - Handle to the pa
ge. | |
185 // startPos[in,out] - The start position to en
umerate the link annotations, which should be specified to start from | |
186 // - 0 for th
e first call, and would receive the next position for enumerating to start from. | |
187 // linkAnnot[out] - Receive the link handle. | |
188 // Return value: | |
189 // TRUE if succceed, else False; | |
190 // | |
191 DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(FPDF_PAGE page, int* startPos, FP
DF_LINK* linkAnnot); | |
192 | |
193 // Function: FPDFLink_GetAnnotRect | |
194 // Get the annotation rectangle. (Specified by the ¡°Rect¡±
entry of annotation dictionary). | |
195 // Parameters: | |
196 // linkAnnot[in] - Handle to the link annot
ation. | |
197 // rect[out] - The annotation r
ect. | |
198 // Return value: | |
199 // TRUE if succceed, else False; | |
200 // | |
201 DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetAnnotRect(FPDF_LINK linkAnnot, FS_RECTF*
rect); | |
202 | |
203 // Function: FPDFLink_CountQuadPoints | |
204 // Get the count of quadrilateral points to the link annota
tion. | |
205 // Parameters: | |
206 // linkAnnot[in] - Handle to the link annot
ation. | |
207 // Return value: | |
208 // The count of quadrilateral points. | |
209 // | |
210 DLLEXPORT int STDCALL FPDFLink_CountQuadPoints(FPDF_LINK linkAnnot); | |
211 | |
212 /* _FS_DEF_STRUCTURE_QUADPOINTSF_ */ | |
213 #ifndef _FS_DEF_STRUCTURE_QUADPOINTSF_ | |
214 #define _FS_DEF_STRUCTURE_QUADPOINTSF_ | |
215 typedef struct _FS_QUADPOINTSF | |
216 { | |
217 FS_FLOAT x1; | |
218 FS_FLOAT y1; | |
219 FS_FLOAT x2; | |
220 FS_FLOAT y2; | |
221 FS_FLOAT x3; | |
222 FS_FLOAT y3; | |
223 FS_FLOAT x4; | |
224 FS_FLOAT y4; | |
225 } FS_QUADPOINTSF; | |
226 #endif /* _FS_DEF_STRUCTURE_QUADPOINTSF_ */ | |
227 | |
228 // Function: FPDFLink_GetQuadPoints | |
229 // Get the quadrilateral points for the specified index in
the link annotation. | |
230 // Parameters: | |
231 // linkAnnot[in] - Handle to the link annot
ation. | |
232 // quadIndex[in] - The specified quad point
s index. | |
233 // quadPoints[out] - Receive the quadrilatera
l points. | |
234 // Return value: | |
235 // True if succeed, else False. | |
236 // | |
237 DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetQuadPoints(FPDF_LINK linkAnnot, int quad
Index, FS_QUADPOINTSF* quadPoints); | |
238 | |
239 // Function: FPDF_GetMetaText | |
240 // Get a text from meta data of the document. Result is enc
oded in UTF-16LE. | |
241 // Parameters: | |
242 // doc - Handle to a document | |
243 // tag - The tag for the meta dat
a. Currently, It can be "Title", "Author", | |
244 // "Subject", "Keywords", "
Creator", "Producer", "CreationDate", or "ModDate". | |
245 // For detailed explanation
of these tags and their respective values, | |
246 // please refer to PDF Refe
rence 1.6, section 10.2.1, "Document Information Dictionary". | |
247 // buffer - A buffer for output the title. C
an be NULL. | |
248 // buflen - The length of the buffer, number
of bytes. Can be 0. | |
249 // Return value: | |
250 // Number of bytes the title consumes, including trailing z
eros. | |
251 // Comments: | |
252 // No matter on what platform, the title is always output i
n UTF-16LE encoding, which means the buffer | |
253 // can be regarded as an array of WORD (on Intel and compat
ible CPUs), each WORD represent the Unicode of | |
254 // a character (some special Unicode may take 2 WORDs). The
string is followed by two bytes of zero | |
255 // indicating end of the string. | |
256 // | |
257 // The return value always indicated number of bytes requir
ed for the buffer, even when there is | |
258 // no buffer specified, or the buffer size is less then req
uired. In this case, the buffer will not | |
259 // be modified. | |
260 // | |
261 DLLEXPORT unsigned long STDCALL FPDF_GetMetaText(FPDF_DOCUMENT doc, FPDF_BYTESTR
ING tag, | |
262
void* buffer, unsigned long buflen); | |
263 | |
264 | |
265 #ifdef __cplusplus | |
266 }; | |
267 #endif | |
268 | |
269 #endif // _FPDFDOC_H_ | |
OLD | NEW |