Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
fpdf_formfill.h
Go to the documentation of this file.
1// Copyright 2014 The PDFium Authors
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 PUBLIC_FPDF_FORMFILL_H_
8#define PUBLIC_FPDF_FORMFILL_H_
9
10// clang-format off
11// NOLINTNEXTLINE(build/include_directory)
12#include "fpdfview.h"
13
14// These values are return values for a public API, so should not be changed
15// other than the count when adding new values.
16#define FORMTYPE_NONE 0 // Document contains no forms
17#define FORMTYPE_ACRO_FORM 1 // Forms are specified using AcroForm spec
18#define FORMTYPE_XFA_FULL 2 // Forms are specified using entire XFA spec
19#define FORMTYPE_XFA_FOREGROUND 3 // Forms are specified using the XFAF subset
20 // of XFA spec
21#define FORMTYPE_COUNT 4 // The number of form types
22
23#define JSPLATFORM_ALERT_BUTTON_OK 0 // OK button
24#define JSPLATFORM_ALERT_BUTTON_OKCANCEL 1 // OK & Cancel buttons
25#define JSPLATFORM_ALERT_BUTTON_YESNO 2 // Yes & No buttons
26#define JSPLATFORM_ALERT_BUTTON_YESNOCANCEL 3 // Yes, No & Cancel buttons
27#define JSPLATFORM_ALERT_BUTTON_DEFAULT JSPLATFORM_ALERT_BUTTON_OK
28
29#define JSPLATFORM_ALERT_ICON_ERROR 0 // Error
30#define JSPLATFORM_ALERT_ICON_WARNING 1 // Warning
31#define JSPLATFORM_ALERT_ICON_QUESTION 2 // Question
32#define JSPLATFORM_ALERT_ICON_STATUS 3 // Status
33#define JSPLATFORM_ALERT_ICON_ASTERISK 4 // Asterisk
34#define JSPLATFORM_ALERT_ICON_DEFAULT JSPLATFORM_ALERT_ICON_ERROR
35
36#define JSPLATFORM_ALERT_RETURN_OK 1 // OK
37#define JSPLATFORM_ALERT_RETURN_CANCEL 2 // Cancel
38#define JSPLATFORM_ALERT_RETURN_NO 3 // No
39#define JSPLATFORM_ALERT_RETURN_YES 4 // Yes
40
41#define JSPLATFORM_BEEP_ERROR 0 // Error
42#define JSPLATFORM_BEEP_WARNING 1 // Warning
43#define JSPLATFORM_BEEP_QUESTION 2 // Question
44#define JSPLATFORM_BEEP_STATUS 3 // Status
45#define JSPLATFORM_BEEP_DEFAULT 4 // Default
46
47// Exported Functions
48#ifdef __cplusplus
49extern "C" {
50#endif
51
52typedef struct _IPDF_JsPlatform {
53 /*
54 * Version number of the interface. Currently must be 2.
55 */
57
58 /* Version 1. */
59
60 /*
61 * Method: app_alert
62 * Pop up a dialog to show warning or hint.
63 * Interface Version:
64 * 1
65 * Implementation Required:
66 * yes
67 * Parameters:
68 * pThis - Pointer to the interface structure itself.
69 * Msg - A string containing the message to be displayed.
70 * Title - The title of the dialog.
71 * Type - The type of button group, one of the
72 * JSPLATFORM_ALERT_BUTTON_* values above.
73 * nIcon - The type of the icon, one of the
74 * JSPLATFORM_ALERT_ICON_* above.
75 * Return Value:
76 * Option selected by user in dialogue, one of the
77 * JSPLATFORM_ALERT_RETURN_* values above.
78 */
79 int (*app_alert)(struct _IPDF_JsPlatform* pThis,
80 FPDF_WIDESTRING Msg,
81 FPDF_WIDESTRING Title,
82 int Type,
83 int Icon);
84
85 /*
86 * Method: app_beep
87 * Causes the system to play a sound.
88 * Interface Version:
89 * 1
90 * Implementation Required:
91 * yes
92 * Parameters:
93 * pThis - Pointer to the interface structure itself
94 * nType - The sound type, see JSPLATFORM_BEEP_TYPE_*
95 * above.
96 * Return Value:
97 * None
98 */
99 void (*app_beep)(struct _IPDF_JsPlatform* pThis, int nType);
100
101 /*
102 * Method: app_response
103 * Displays a dialog box containing a question and an entry field for
104 * the user to reply to the question.
105 * Interface Version:
106 * 1
107 * Implementation Required:
108 * yes
109 * Parameters:
110 * pThis - Pointer to the interface structure itself
111 * Question - The question to be posed to the user.
112 * Title - The title of the dialog box.
113 * Default - A default value for the answer to the question. If
114 * not specified, no default value is presented.
115 * cLabel - A short string to appear in front of and on the
116 * same line as the edit text field.
117 * bPassword - If true, indicates that the user's response should
118 * be shown as asterisks (*) or bullets (?) to mask
119 * the response, which might be sensitive information.
120 * response - A string buffer allocated by PDFium, to receive the
121 * user's response.
122 * length - The length of the buffer in bytes. Currently, it is
123 * always 2048.
124 * Return Value:
125 * Number of bytes the complete user input would actually require, not
126 * including trailing zeros, regardless of the value of the length
127 * parameter or the presence of the response buffer.
128 * Comments:
129 * No matter on what platform, the response buffer should be always
130 * written using UTF-16LE encoding. If a response buffer is
131 * present and the size of the user input exceeds the capacity of the
132 * buffer as specified by the length parameter, only the
133 * first "length" bytes of the user input are to be written to the
134 * buffer.
135 */
136 int (*app_response)(struct _IPDF_JsPlatform* pThis,
137 FPDF_WIDESTRING Question,
138 FPDF_WIDESTRING Title,
139 FPDF_WIDESTRING Default,
140 FPDF_WIDESTRING cLabel,
141 FPDF_BOOL bPassword,
142 void* response,
143 int length);
144
145 /*
146 * Method: Doc_getFilePath
147 * Get the file path of the current document.
148 * Interface Version:
149 * 1
150 * Implementation Required:
151 * yes
152 * Parameters:
153 * pThis - Pointer to the interface structure itself
154 * filePath - The string buffer to receive the file path. Can
155 * be NULL.
156 * length - The length of the buffer, number of bytes. Can
157 * be 0.
158 * Return Value:
159 * Number of bytes the filePath consumes, including trailing zeros.
160 * Comments:
161 * The filePath should always be provided in the local encoding.
162 * The return value always indicated number of bytes required for
163 * the buffer, even when there is no buffer specified, or the buffer
164 * size is less than required. In this case, the buffer will not
165 * be modified.
166 */
167 int (*Doc_getFilePath)(struct _IPDF_JsPlatform* pThis,
168 void* filePath,
169 int length);
170
171 /*
172 * Method: Doc_mail
173 * Mails the data buffer as an attachment to all recipients, with or
174 * without user interaction.
175 * Interface Version:
176 * 1
177 * Implementation Required:
178 * yes
179 * Parameters:
180 * pThis - Pointer to the interface structure itself
181 * mailData - Pointer to the data buffer to be sent. Can be NULL.
182 * length - The size,in bytes, of the buffer pointed by
183 * mailData parameter. Can be 0.
184 * bUI - If true, the rest of the parameters are used in a
185 * compose-new-message window that is displayed to the
186 * user. If false, the cTo parameter is required and
187 * all others are optional.
188 * To - A semicolon-delimited list of recipients for the
189 * message.
190 * Subject - The subject of the message. The length limit is
191 * 64 KB.
192 * CC - A semicolon-delimited list of CC recipients for
193 * the message.
194 * BCC - A semicolon-delimited list of BCC recipients for
195 * the message.
196 * Msg - The content of the message. The length limit is
197 * 64 KB.
198 * Return Value:
199 * None.
200 * Comments:
201 * If the parameter mailData is NULL or length is 0, the current
202 * document will be mailed as an attachment to all recipients.
203 */
204 void (*Doc_mail)(struct _IPDF_JsPlatform* pThis,
205 void* mailData,
206 int length,
207 FPDF_BOOL bUI,
208 FPDF_WIDESTRING To,
209 FPDF_WIDESTRING Subject,
210 FPDF_WIDESTRING CC,
211 FPDF_WIDESTRING BCC,
212 FPDF_WIDESTRING Msg);
213
214 /*
215 * Method: Doc_print
216 * Prints all or a specific number of pages of the document.
217 * Interface Version:
218 * 1
219 * Implementation Required:
220 * yes
221 * Parameters:
222 * pThis - Pointer to the interface structure itself.
223 * bUI - If true, will cause a UI to be presented to the
224 * user to obtain printing information and confirm
225 * the action.
226 * nStart - A 0-based index that defines the start of an
227 * inclusive range of pages.
228 * nEnd - A 0-based index that defines the end of an
229 * inclusive page range.
230 * bSilent - If true, suppresses the cancel dialog box while
231 * the document is printing. The default is false.
232 * bShrinkToFit - If true, the page is shrunk (if necessary) to
233 * fit within the imageable area of the printed page.
234 * bPrintAsImage - If true, print pages as an image.
235 * bReverse - If true, print from nEnd to nStart.
236 * bAnnotations - If true (the default), annotations are
237 * printed.
238 * Return Value:
239 * None.
240 */
241 void (*Doc_print)(struct _IPDF_JsPlatform* pThis,
242 FPDF_BOOL bUI,
243 int nStart,
244 int nEnd,
245 FPDF_BOOL bSilent,
246 FPDF_BOOL bShrinkToFit,
247 FPDF_BOOL bPrintAsImage,
248 FPDF_BOOL bReverse,
249 FPDF_BOOL bAnnotations);
250
251 /*
252 * Method: Doc_submitForm
253 * Send the form data to a specified URL.
254 * Interface Version:
255 * 1
256 * Implementation Required:
257 * yes
258 * Parameters:
259 * pThis - Pointer to the interface structure itself
260 * formData - Pointer to the data buffer to be sent.
261 * length - The size,in bytes, of the buffer pointed by
262 * formData parameter.
263 * URL - The URL to send to.
264 * Return Value:
265 * None.
266 */
267 void (*Doc_submitForm)(struct _IPDF_JsPlatform* pThis,
268 void* formData,
269 int length,
270 FPDF_WIDESTRING URL);
271
272 /*
273 * Method: Doc_gotoPage
274 * Jump to a specified page.
275 * Interface Version:
276 * 1
277 * Implementation Required:
278 * yes
279 * Parameters:
280 * pThis - Pointer to the interface structure itself
281 * nPageNum - The specified page number, zero for the first page.
282 * Return Value:
283 * None.
284 *
285 */
286 void (*Doc_gotoPage)(struct _IPDF_JsPlatform* pThis, int nPageNum);
287
288 /*
289 * Method: Field_browse
290 * Show a file selection dialog, and return the selected file path.
291 * Interface Version:
292 * 1
293 * Implementation Required:
294 * yes
295 * Parameters:
296 * pThis - Pointer to the interface structure itself.
297 * filePath - Pointer to the data buffer to receive the file
298 * path. Can be NULL.
299 * length - The length of the buffer, in bytes. Can be 0.
300 * Return Value:
301 * Number of bytes the filePath consumes, including trailing zeros.
302 * Comments:
303 * The filePath shoule always be provided in local encoding.
304 */
305 int (*Field_browse)(struct _IPDF_JsPlatform* pThis,
306 void* filePath,
307 int length);
308
309 /*
310 * Pointer for embedder-specific data. Unused by PDFium, and despite
311 * its name, can be any data the embedder desires, though traditionally
312 * a FPDF_FORMFILLINFO interface.
313 */
315
316 /* Version 2. */
317
318 void* m_isolate; /* Unused in v3, retain for compatibility. */
319 unsigned int m_v8EmbedderSlot; /* Unused in v3, retain for compatibility. */
320
321 /* Version 3. */
322 /* Version 3 moves m_Isolate and m_v8EmbedderSlot to FPDF_LIBRARY_CONFIG. */
323} IPDF_JSPLATFORM;
324
325// Flags for Cursor type
326#define FXCT_ARROW 0
327#define FXCT_NESW 1
328#define FXCT_NWSE 2
329#define FXCT_VBEAM 3
330#define FXCT_HBEAM 4
331#define FXCT_HAND 5
332
333/*
334 * Function signature for the callback function passed to the FFI_SetTimer
335 * method.
336 * Parameters:
337 * idEvent - Identifier of the timer.
338 * Return value:
339 * None.
340 */
341typedef void (*TimerCallback)(int idEvent);
342
343/*
344 * Declares of a struct type to the local system time.
345 */
346typedef struct _FPDF_SYSTEMTIME {
347 unsigned short wYear; /* years since 1900 */
348 unsigned short wMonth; /* months since January - [0,11] */
349 unsigned short wDayOfWeek; /* days since Sunday - [0,6] */
350 unsigned short wDay; /* day of the month - [1,31] */
351 unsigned short wHour; /* hours since midnight - [0,23] */
352 unsigned short wMinute; /* minutes after the hour - [0,59] */
353 unsigned short wSecond; /* seconds after the minute - [0,59] */
354 unsigned short wMilliseconds; /* milliseconds after the second - [0,999] */
355} FPDF_SYSTEMTIME;
356
357#ifdef PDF_ENABLE_XFA
358
359// Pageview event flags
360#define FXFA_PAGEVIEWEVENT_POSTADDED 1 // After a new pageview is added.
361#define FXFA_PAGEVIEWEVENT_POSTREMOVED 3 // After a pageview is removed.
362
363// Definitions for Right Context Menu Features Of XFA Fields
364#define FXFA_MENU_COPY 1
365#define FXFA_MENU_CUT 2
366#define FXFA_MENU_SELECTALL 4
367#define FXFA_MENU_UNDO 8
368#define FXFA_MENU_REDO 16
369#define FXFA_MENU_PASTE 32
370
371// Definitions for File Type.
372#define FXFA_SAVEAS_XML 1
373#define FXFA_SAVEAS_XDP 2
374
375#endif // PDF_ENABLE_XFA
376
377typedef struct _FPDF_FORMFILLINFO {
378 /*
379 * Version number of the interface.
380 * Version 1 contains stable interfaces. Version 2 has additional
381 * experimental interfaces.
382 * When PDFium is built without the XFA module, version can be 1 or 2.
383 * With version 1, only stable interfaces are called. With version 2,
384 * additional experimental interfaces are also called.
385 * When PDFium is built with the XFA module, version must be 2.
386 * All the XFA related interfaces are experimental. If PDFium is built with
387 * the XFA module and version 1 then none of the XFA related interfaces
388 * would be called. When PDFium is built with XFA module then the version
389 * must be 2.
390 */
392
393 /* Version 1. */
394 /*
395 * Method: Release
396 * Give the implementation a chance to release any resources after the
397 * interface is no longer used.
398 * Interface Version:
399 * 1
400 * Implementation Required:
401 * No
402 * Comments:
403 * Called by PDFium during the final cleanup process.
404 * Parameters:
405 * pThis - Pointer to the interface structure itself
406 * Return Value:
407 * None
408 */
409 void (*Release)(struct _FPDF_FORMFILLINFO* pThis);
410
411 /*
412 * Method: FFI_Invalidate
413 * Invalidate the client area within the specified rectangle.
414 * Interface Version:
415 * 1
416 * Implementation Required:
417 * yes
418 * Parameters:
419 * pThis - Pointer to the interface structure itself.
420 * page - Handle to the page. Returned by FPDF_LoadPage().
421 * left - Left position of the client area in PDF page
422 * coordinates.
423 * top - Top position of the client area in PDF page
424 * coordinates.
425 * right - Right position of the client area in PDF page
426 * coordinates.
427 * bottom - Bottom position of the client area in PDF page
428 * coordinates.
429 * Return Value:
430 * None.
431 * Comments:
432 * All positions are measured in PDF "user space".
433 * Implementation should call FPDF_RenderPageBitmap() for repainting
434 * the specified page area.
435 */
436 void (*FFI_Invalidate)(struct _FPDF_FORMFILLINFO* pThis,
437 FPDF_PAGE page,
438 double left,
439 double top,
440 double right,
441 double bottom);
442
443 /*
444 * Method: FFI_OutputSelectedRect
445 * When the user selects text in form fields with the mouse, this
446 * callback function will be invoked with the selected areas.
447 * Interface Version:
448 * 1
449 * Implementation Required:
450 * No
451 * Parameters:
452 * pThis - Pointer to the interface structure itself.
453 * page - Handle to the page. Returned by FPDF_LoadPage()/
454 * left - Left position of the client area in PDF page
455 * coordinates.
456 * top - Top position of the client area in PDF page
457 * coordinates.
458 * right - Right position of the client area in PDF page
459 * coordinates.
460 * bottom - Bottom position of the client area in PDF page
461 * coordinates.
462 * Return Value:
463 * None.
464 * Comments:
465 * This callback function is useful for implementing special text
466 * selection effects. An implementation should first record the
467 * returned rectangles, then draw them one by one during the next
468 * painting period. Lastly, it should remove all the recorded
469 * rectangles when finished painting.
470 */
472 FPDF_PAGE page,
473 double left,
474 double top,
475 double right,
476 double bottom);
477
478 /*
479 * Method: FFI_SetCursor
480 * Set the Cursor shape.
481 * Interface Version:
482 * 1
483 * Implementation Required:
484 * yes
485 * Parameters:
486 * pThis - Pointer to the interface structure itself.
487 * nCursorType - Cursor type, see Flags for Cursor type for details.
488 * Return value:
489 * None.
490 */
491 void (*FFI_SetCursor)(struct _FPDF_FORMFILLINFO* pThis, int nCursorType);
492
493 /*
494 * Method: FFI_SetTimer
495 * This method installs a system timer. An interval value is specified,
496 * and every time that interval elapses, the system must call into the
497 * callback function with the timer ID as returned by this function.
498 * Interface Version:
499 * 1
500 * Implementation Required:
501 * yes
502 * Parameters:
503 * pThis - Pointer to the interface structure itself.
504 * uElapse - Specifies the time-out value, in milliseconds.
505 * lpTimerFunc - A pointer to the callback function-TimerCallback.
506 * Return value:
507 * The timer identifier of the new timer if the function is successful.
508 * An application passes this value to the FFI_KillTimer method to kill
509 * the timer. Nonzero if it is successful; otherwise, it is zero.
510 */
511 int (*FFI_SetTimer)(struct _FPDF_FORMFILLINFO* pThis,
512 int uElapse,
513 TimerCallback lpTimerFunc);
514
515 /*
516 * Method: FFI_KillTimer
517 * This method uninstalls a system timer, as set by an earlier call to
518 * FFI_SetTimer.
519 * Interface Version:
520 * 1
521 * Implementation Required:
522 * yes
523 * Parameters:
524 * pThis - Pointer to the interface structure itself.
525 * nTimerID - The timer ID returned by FFI_SetTimer function.
526 * Return value:
527 * None.
528 */
529 void (*FFI_KillTimer)(struct _FPDF_FORMFILLINFO* pThis, int nTimerID);
530
531 /*
532 * Method: FFI_GetLocalTime
533 * This method receives the current local time on the system.
534 * Interface Version:
535 * 1
536 * Implementation Required:
537 * yes
538 * Parameters:
539 * pThis - Pointer to the interface structure itself.
540 * Return value:
541 * The local time. See FPDF_SYSTEMTIME above for details.
542 * Note: Unused.
543 */
544 FPDF_SYSTEMTIME (*FFI_GetLocalTime)(struct _FPDF_FORMFILLINFO* pThis);
545
546 /*
547 * Method: FFI_OnChange
548 * This method will be invoked to notify the implementation when the
549 * value of any FormField on the document had been changed.
550 * Interface Version:
551 * 1
552 * Implementation Required:
553 * no
554 * Parameters:
555 * pThis - Pointer to the interface structure itself.
556 * Return value:
557 * None.
558 */
559 void (*FFI_OnChange)(struct _FPDF_FORMFILLINFO* pThis);
560
561 /*
562 * Method: FFI_GetPage
563 * This method receives the page handle associated with a specified
564 * page index.
565 * Interface Version:
566 * 1
567 * Implementation Required:
568 * yes
569 * Parameters:
570 * pThis - Pointer to the interface structure itself.
571 * document - Handle to document. Returned by FPDF_LoadDocument().
572 * nPageIndex - Index number of the page. 0 for the first page.
573 * Return value:
574 * Handle to the page, as previously returned to the implementation by
575 * FPDF_LoadPage().
576 * Comments:
577 * The implementation is expected to keep track of the page handles it
578 * receives from PDFium, and their mappings to page numbers. In some
579 * cases, the document-level JavaScript action may refer to a page
580 * which hadn't been loaded yet. To successfully run the Javascript
581 * action, the implementation needs to load the page.
582 */
583 FPDF_PAGE (*FFI_GetPage)(struct _FPDF_FORMFILLINFO* pThis,
584 FPDF_DOCUMENT document,
585 int nPageIndex);
586
587 /*
588 * Method: FFI_GetCurrentPage
589 * This method receives the handle to the current page.
590 * Interface Version:
591 * 1
592 * Implementation Required:
593 * Yes when V8 support is present, otherwise unused.
594 * Parameters:
595 * pThis - Pointer to the interface structure itself.
596 * document - Handle to document. Returned by FPDF_LoadDocument().
597 * Return value:
598 * Handle to the page. Returned by FPDF_LoadPage().
599 * Comments:
600 * PDFium doesn't keep keep track of the "current page" (e.g. the one
601 * that is most visible on screen), so it must ask the embedder for
602 * this information.
603 */
604 FPDF_PAGE (*FFI_GetCurrentPage)(struct _FPDF_FORMFILLINFO* pThis,
605 FPDF_DOCUMENT document);
606
607 /*
608 * Method: FFI_GetRotation
609 * This method receives currently rotation of the page view.
610 * Interface Version:
611 * 1
612 * Implementation Required:
613 * yes
614 * Parameters:
615 * pThis - Pointer to the interface structure itself.
616 * page - Handle to page, as returned by FPDF_LoadPage().
617 * Return value:
618 * A number to indicate the page rotation in 90 degree increments
619 * in a clockwise direction:
620 * 0 - 0 degrees
621 * 1 - 90 degrees
622 * 2 - 180 degrees
623 * 3 - 270 degrees
624 * Note: Unused.
625 */
626 int (*FFI_GetRotation)(struct _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page);
627
628 /*
629 * Method: FFI_ExecuteNamedAction
630 * This method will execute a named action.
631 * Interface Version:
632 * 1
633 * Implementation Required:
634 * yes
635 * Parameters:
636 * pThis - Pointer to the interface structure itself.
637 * namedAction - A byte string which indicates the named action,
638 * terminated by 0.
639 * Return value:
640 * None.
641 * Comments:
642 * See ISO 32000-1:2008, section 12.6.4.11 for descriptions of the
643 * standard named actions, but note that a document may supply any
644 * name of its choosing.
645 */
647 FPDF_BYTESTRING namedAction);
648 /*
649 * Method: FFI_SetTextFieldFocus
650 * Called when a text field is getting or losing focus.
651 * Interface Version:
652 * 1
653 * Implementation Required:
654 * no
655 * Parameters:
656 * pThis - Pointer to the interface structure itself.
657 * value - The string value of the form field, in UTF-16LE
658 * format.
659 * valueLen - The length of the string value. This is the
660 * number of characters, not bytes.
661 * is_focus - True if the form field is getting focus, false
662 * if the form field is losing focus.
663 * Return value:
664 * None.
665 * Comments:
666 * Only supports text fields and combobox fields.
667 */
669 FPDF_WIDESTRING value,
670 FPDF_DWORD valueLen,
671 FPDF_BOOL is_focus);
672
673 /*
674 * Method: FFI_DoURIAction
675 * Ask the implementation to navigate to a uniform resource identifier.
676 * Interface Version:
677 * 1
678 * Implementation Required:
679 * No
680 * Parameters:
681 * pThis - Pointer to the interface structure itself.
682 * bsURI - A byte string which indicates the uniform
683 * resource identifier, terminated by 0.
684 * Return value:
685 * None.
686 * Comments:
687 * If the embedder is version 2 or higher and have implementation for
688 * FFI_DoURIActionWithKeyboardModifier, then
689 * FFI_DoURIActionWithKeyboardModifier takes precedence over
690 * FFI_DoURIAction.
691 * See the URI actions description of <<PDF Reference, version 1.7>>
692 * for more details.
693 */
694 void (*FFI_DoURIAction)(struct _FPDF_FORMFILLINFO* pThis,
695 FPDF_BYTESTRING bsURI);
696
697 /*
698 * Method: FFI_DoGoToAction
699 * This action changes the view to a specified destination.
700 * Interface Version:
701 * 1
702 * Implementation Required:
703 * No
704 * Parameters:
705 * pThis - Pointer to the interface structure itself.
706 * nPageIndex - The index of the PDF page.
707 * zoomMode - The zoom mode for viewing page. See below.
708 * fPosArray - The float array which carries the position info.
709 * sizeofArray - The size of float array.
710 * PDFZoom values:
711 * - XYZ = 1
712 * - FITPAGE = 2
713 * - FITHORZ = 3
714 * - FITVERT = 4
715 * - FITRECT = 5
716 * - FITBBOX = 6
717 * - FITBHORZ = 7
718 * - FITBVERT = 8
719 * Return value:
720 * None.
721 * Comments:
722 * See the Destinations description of <<PDF Reference, version 1.7>>
723 * in 8.2.1 for more details.
724 */
726 int nPageIndex,
727 int zoomMode,
728 float* fPosArray,
729 int sizeofArray);
730
731 /*
732 * Pointer to IPDF_JSPLATFORM interface.
733 * Unused if PDFium is built without V8 support. Otherwise, if NULL, then
734 * JavaScript will be prevented from executing while rendering the document.
735 */
736 IPDF_JSPLATFORM* m_pJsPlatform;
737
738 /* Version 2 - Experimental. */
739 /*
740 * Whether the XFA module is disabled when built with the XFA module.
741 * Interface Version:
742 * Ignored if |version| < 2.
743 */
744 FPDF_BOOL xfa_disabled;
745
746 /*
747 * Method: FFI_DisplayCaret
748 * This method will show the caret at specified position.
749 * Interface Version:
750 * Ignored if |version| < 2.
751 * Implementation Required:
752 * Required for XFA, otherwise set to NULL.
753 * Parameters:
754 * pThis - Pointer to the interface structure itself.
755 * page - Handle to page. Returned by FPDF_LoadPage().
756 * left - Left position of the client area in PDF page
757 * coordinates.
758 * top - Top position of the client area in PDF page
759 * coordinates.
760 * right - Right position of the client area in PDF page
761 * coordinates.
762 * bottom - Bottom position of the client area in PDF page
763 * coordinates.
764 * Return value:
765 * None.
766 */
768 FPDF_PAGE page,
769 FPDF_BOOL bVisible,
770 double left,
771 double top,
772 double right,
773 double bottom);
774
775 /*
776 * Method: FFI_GetCurrentPageIndex
777 * This method will get the current page index.
778 * Interface Version:
779 * Ignored if |version| < 2.
780 * Implementation Required:
781 * Required for XFA, otherwise set to NULL.
782 * Parameters:
783 * pThis - Pointer to the interface structure itself.
784 * document - Handle to document from FPDF_LoadDocument().
785 * Return value:
786 * The index of current page.
787 */
789 FPDF_DOCUMENT document);
790
791 /*
792 * Method: FFI_SetCurrentPage
793 * This method will set the current page.
794 * Interface Version:
795 * Ignored if |version| < 2.
796 * Implementation Required:
797 * Required for XFA, otherwise set to NULL.
798 * Parameters:
799 * pThis - Pointer to the interface structure itself.
800 * document - Handle to document from FPDF_LoadDocument().
801 * iCurPage - The index of the PDF page.
802 * Return value:
803 * None.
804 */
806 FPDF_DOCUMENT document,
807 int iCurPage);
808
809 /*
810 * Method: FFI_GotoURL
811 * This method will navigate to the specified URL.
812 * Interface Version:
813 * Ignored if |version| < 2.
814 * Implementation Required:
815 * Required for XFA, otherwise set to NULL.
816 * Parameters:
817 * pThis - Pointer to the interface structure itself.
818 * document - Handle to document from FPDF_LoadDocument().
819 * wsURL - The string value of the URL, in UTF-16LE format.
820 * Return value:
821 * None.
822 */
823 void (*FFI_GotoURL)(struct _FPDF_FORMFILLINFO* pThis,
824 FPDF_DOCUMENT document,
825 FPDF_WIDESTRING wsURL);
826
827 /*
828 * Method: FFI_GetPageViewRect
829 * This method will get the current page view rectangle.
830 * Interface Version:
831 * Ignored if |version| < 2.
832 * Implementation Required:
833 * Required for XFA, otherwise set to NULL.
834 * Parameters:
835 * pThis - Pointer to the interface structure itself.
836 * page - Handle to page. Returned by FPDF_LoadPage().
837 * left - The pointer to receive left position of the page
838 * view area in PDF page coordinates.
839 * top - The pointer to receive top position of the page
840 * view area in PDF page coordinates.
841 * right - The pointer to receive right position of the
842 * page view area in PDF page coordinates.
843 * bottom - The pointer to receive bottom position of the
844 * page view area in PDF page coordinates.
845 * Return value:
846 * None.
847 */
849 FPDF_PAGE page,
850 double* left,
851 double* top,
852 double* right,
853 double* bottom);
854
855 /*
856 * Method: FFI_PageEvent
857 * This method fires when pages have been added to or deleted from
858 * the XFA document.
859 * Interface Version:
860 * Ignored if |version| < 2.
861 * Implementation Required:
862 * Required for XFA, otherwise set to NULL.
863 * Parameters:
864 * pThis - Pointer to the interface structure itself.
865 * page_count - The number of pages to be added or deleted.
866 * event_type - See FXFA_PAGEVIEWEVENT_* above.
867 * Return value:
868 * None.
869 * Comments:
870 * The pages to be added or deleted always start from the last page
871 * of document. This means that if parameter page_count is 2 and
872 * event type is FXFA_PAGEVIEWEVENT_POSTADDED, 2 new pages have been
873 * appended to the tail of document; If page_count is 2 and
874 * event type is FXFA_PAGEVIEWEVENT_POSTREMOVED, the last 2 pages
875 * have been deleted.
876 */
877 void (*FFI_PageEvent)(struct _FPDF_FORMFILLINFO* pThis,
878 int page_count,
879 FPDF_DWORD event_type);
880
881 /*
882 * Method: FFI_PopupMenu
883 * This method will track the right context menu for XFA fields.
884 * Interface Version:
885 * Ignored if |version| < 2.
886 * Implementation Required:
887 * Required for XFA, otherwise set to NULL.
888 * Parameters:
889 * pThis - Pointer to the interface structure itself.
890 * page - Handle to page. Returned by FPDF_LoadPage().
891 * hWidget - Always null, exists for compatibility.
892 * menuFlag - The menu flags. Please refer to macro definition
893 * of FXFA_MENU_XXX and this can be one or a
894 * combination of these macros.
895 * x - X position of the client area in PDF page
896 * coordinates.
897 * y - Y position of the client area in PDF page
898 * coordinates.
899 * Return value:
900 * TRUE indicates success; otherwise false.
901 */
902 FPDF_BOOL (*FFI_PopupMenu)(struct _FPDF_FORMFILLINFO* pThis,
903 FPDF_PAGE page,
904 FPDF_WIDGET hWidget,
905 int menuFlag,
906 float x,
907 float y);
908
909 /*
910 * Method: FFI_OpenFile
911 * This method will open the specified file with the specified mode.
912 * Interface Version:
913 * Ignored if |version| < 2.
914 * Implementation Required:
915 * Required for XFA, otherwise set to NULL.
916 * Parameters:
917 * pThis - Pointer to the interface structure itself.
918 * fileFlag - The file flag. Please refer to macro definition
919 * of FXFA_SAVEAS_XXX and use one of these macros.
920 * wsURL - The string value of the file URL, in UTF-16LE
921 * format.
922 * mode - The mode for open file, e.g. "rb" or "wb".
923 * Return value:
924 * The handle to FPDF_FILEHANDLER.
925 */
926 FPDF_FILEHANDLER* (*FFI_OpenFile)(struct _FPDF_FORMFILLINFO* pThis,
927 int fileFlag,
928 FPDF_WIDESTRING wsURL,
929 const char* mode);
930
931 /*
932 * Method: FFI_EmailTo
933 * This method will email the specified file stream to the specified
934 * contact.
935 * Interface Version:
936 * Ignored if |version| < 2.
937 * Implementation Required:
938 * Required for XFA, otherwise set to NULL.
939 * Parameters:
940 * pThis - Pointer to the interface structure itself.
941 * pFileHandler - Handle to the FPDF_FILEHANDLER.
942 * pTo - A semicolon-delimited list of recipients for the
943 * message,in UTF-16LE format.
944 * pSubject - The subject of the message,in UTF-16LE format.
945 * pCC - A semicolon-delimited list of CC recipients for
946 * the message,in UTF-16LE format.
947 * pBcc - A semicolon-delimited list of BCC recipients for
948 * the message,in UTF-16LE format.
949 * pMsg - Pointer to the data buffer to be sent.Can be
950 * NULL,in UTF-16LE format.
951 * Return value:
952 * None.
953 */
954 void (*FFI_EmailTo)(struct _FPDF_FORMFILLINFO* pThis,
955 FPDF_FILEHANDLER* fileHandler,
956 FPDF_WIDESTRING pTo,
957 FPDF_WIDESTRING pSubject,
958 FPDF_WIDESTRING pCC,
959 FPDF_WIDESTRING pBcc,
960 FPDF_WIDESTRING pMsg);
961
962 /*
963 * Method: FFI_UploadTo
964 * This method will upload the specified file stream to the
965 * specified URL.
966 * Interface Version:
967 * Ignored if |version| < 2.
968 * Implementation Required:
969 * Required for XFA, otherwise set to NULL.
970 * Parameters:
971 * pThis - Pointer to the interface structure itself.
972 * pFileHandler - Handle to the FPDF_FILEHANDLER.
973 * fileFlag - The file flag. Please refer to macro definition
974 * of FXFA_SAVEAS_XXX and use one of these macros.
975 * uploadTo - Pointer to the URL path, in UTF-16LE format.
976 * Return value:
977 * None.
978 */
979 void (*FFI_UploadTo)(struct _FPDF_FORMFILLINFO* pThis,
980 FPDF_FILEHANDLER* fileHandler,
981 int fileFlag,
982 FPDF_WIDESTRING uploadTo);
983
984 /*
985 * Method: FFI_GetPlatform
986 * This method will get the current platform.
987 * Interface Version:
988 * Ignored if |version| < 2.
989 * Implementation Required:
990 * Required for XFA, otherwise set to NULL.
991 * Parameters:
992 * pThis - Pointer to the interface structure itself.
993 * platform - Pointer to the data buffer to receive the
994 * platform,in UTF-16LE format. Can be NULL.
995 * length - The length of the buffer in bytes. Can be
996 * 0 to query the required size.
997 * Return value:
998 * The length of the buffer, number of bytes.
999 */
1001 void* platform,
1002 int length);
1003
1004 /*
1005 * Method: FFI_GetLanguage
1006 * This method will get the current language.
1007 * Interface Version:
1008 * Ignored if |version| < 2.
1009 * Implementation Required:
1010 * Required for XFA, otherwise set to NULL.
1011 * Parameters:
1012 * pThis - Pointer to the interface structure itself.
1013 * language - Pointer to the data buffer to receive the
1014 * current language. Can be NULL.
1015 * length - The length of the buffer in bytes. Can be
1016 * 0 to query the required size.
1017 * Return value:
1018 * The length of the buffer, number of bytes.
1019 */
1021 void* language,
1022 int length);
1023
1024 /*
1025 * Method: FFI_DownloadFromURL
1026 * This method will download the specified file from the URL.
1027 * Interface Version:
1028 * Ignored if |version| < 2.
1029 * Implementation Required:
1030 * Required for XFA, otherwise set to NULL.
1031 * Parameters:
1032 * pThis - Pointer to the interface structure itself.
1033 * URL - The string value of the file URL, in UTF-16LE
1034 * format.
1035 * Return value:
1036 * The handle to FPDF_FILEHANDLER.
1037 */
1038 FPDF_FILEHANDLER* (*FFI_DownloadFromURL)(struct _FPDF_FORMFILLINFO* pThis,
1039 FPDF_WIDESTRING URL);
1040 /*
1041 * Method: FFI_PostRequestURL
1042 * This method will post the request to the server URL.
1043 * Interface Version:
1044 * Ignored if |version| < 2.
1045 * Implementation Required:
1046 * Required for XFA, otherwise set to NULL.
1047 * Parameters:
1048 * pThis - Pointer to the interface structure itself.
1049 * wsURL - The string value of the server URL, in UTF-16LE
1050 * format.
1051 * wsData - The post data,in UTF-16LE format.
1052 * wsContentType - The content type of the request data, in
1053 * UTF-16LE format.
1054 * wsEncode - The encode type, in UTF-16LE format.
1055 * wsHeader - The request header,in UTF-16LE format.
1056 * response - Pointer to the FPDF_BSTR to receive the response
1057 * data from the server, in UTF-16LE format.
1058 * Return value:
1059 * TRUE indicates success, otherwise FALSE.
1060 */
1061 FPDF_BOOL (*FFI_PostRequestURL)(struct _FPDF_FORMFILLINFO* pThis,
1062 FPDF_WIDESTRING wsURL,
1063 FPDF_WIDESTRING wsData,
1064 FPDF_WIDESTRING wsContentType,
1065 FPDF_WIDESTRING wsEncode,
1066 FPDF_WIDESTRING wsHeader,
1067 FPDF_BSTR* response);
1068
1069 /*
1070 * Method: FFI_PutRequestURL
1071 * This method will put the request to the server URL.
1072 * Interface Version:
1073 * Ignored if |version| < 2.
1074 * Implementation Required:
1075 * Required for XFA, otherwise set to NULL.
1076 * Parameters:
1077 * pThis - Pointer to the interface structure itself.
1078 * wsURL - The string value of the server URL, in UTF-16LE
1079 * format.
1080 * wsData - The put data, in UTF-16LE format.
1081 * wsEncode - The encode type, in UTR-16LE format.
1082 * Return value:
1083 * TRUE indicates success, otherwise FALSE.
1084 */
1085 FPDF_BOOL (*FFI_PutRequestURL)(struct _FPDF_FORMFILLINFO* pThis,
1086 FPDF_WIDESTRING wsURL,
1087 FPDF_WIDESTRING wsData,
1088 FPDF_WIDESTRING wsEncode);
1089
1090 /*
1091 * Method: FFI_OnFocusChange
1092 * Called when the focused annotation is updated.
1093 * Interface Version:
1094 * Ignored if |version| < 2.
1095 * Implementation Required:
1096 * No
1097 * Parameters:
1098 * param - Pointer to the interface structure itself.
1099 * annot - The focused annotation.
1100 * page_index - Index number of the page which contains the
1101 * focused annotation. 0 for the first page.
1102 * Return value:
1103 * None.
1104 * Comments:
1105 * This callback function is useful for implementing any view based
1106 * action such as scrolling the annotation rect into view. The
1107 * embedder should not copy and store the annot as its scope is
1108 * limited to this call only.
1109 */
1111 FPDF_ANNOTATION annot,
1112 int page_index);
1113
1114 /**
1115 * Method: FFI_DoURIActionWithKeyboardModifier
1116 * Ask the implementation to navigate to a uniform resource identifier
1117 * with the specified modifiers.
1118 * Interface Version:
1119 * Ignored if |version| < 2.
1120 * Implementation Required:
1121 * No
1122 * Parameters:
1123 * param - Pointer to the interface structure itself.
1124 * uri - A byte string which indicates the uniform
1125 * resource identifier, terminated by 0.
1126 * modifiers - Keyboard modifier that indicates which of
1127 * the virtual keys are down, if any.
1128 * Return value:
1129 * None.
1130 * Comments:
1131 * If the embedder who is version 2 and does not implement this API,
1132 * then a call will be redirected to FFI_DoURIAction.
1133 * See the URI actions description of <<PDF Reference, version 1.7>>
1134 * for more details.
1135 */
1137 FPDF_BYTESTRING uri,
1138 int modifiers);
1139} FPDF_FORMFILLINFO;
1140
1141/*
1142 * Function: FPDFDOC_InitFormFillEnvironment
1143 * Initialize form fill environment.
1144 * Parameters:
1145 * document - Handle to document from FPDF_LoadDocument().
1146 * formInfo - Pointer to a FPDF_FORMFILLINFO structure.
1147 * Return Value:
1148 * Handle to the form fill module, or NULL on failure.
1149 * Comments:
1150 * This function should be called before any form fill operation.
1151 * The FPDF_FORMFILLINFO passed in via |formInfo| must remain valid until
1152 * the returned FPDF_FORMHANDLE is closed.
1153 */
1154FPDF_EXPORT FPDF_FORMHANDLE FPDF_CALLCONV
1155FPDFDOC_InitFormFillEnvironment(FPDF_DOCUMENT document,
1156 FPDF_FORMFILLINFO* formInfo);
1157
1158/*
1159 * Function: FPDFDOC_ExitFormFillEnvironment
1160 * Take ownership of |hHandle| and exit form fill environment.
1161 * Parameters:
1162 * hHandle - Handle to the form fill module, as returned by
1163 * FPDFDOC_InitFormFillEnvironment().
1164 * Return Value:
1165 * None.
1166 * Comments:
1167 * This function is a no-op when |hHandle| is null.
1168 */
1170FPDFDOC_ExitFormFillEnvironment(FPDF_FORMHANDLE hHandle);
1171
1172/*
1173 * Function: FORM_OnAfterLoadPage
1174 * This method is required for implementing all the form related
1175 * functions. Should be invoked after user successfully loaded a
1176 * PDF page, and FPDFDOC_InitFormFillEnvironment() has been invoked.
1177 * Parameters:
1178 * hHandle - Handle to the form fill module, as returned by
1179 * FPDFDOC_InitFormFillEnvironment().
1180 * Return Value:
1181 * None.
1182 */
1184 FPDF_FORMHANDLE hHandle);
1185
1186/*
1187 * Function: FORM_OnBeforeClosePage
1188 * This method is required for implementing all the form related
1189 * functions. Should be invoked before user closes the PDF page.
1190 * Parameters:
1191 * page - Handle to the page, as returned by FPDF_LoadPage().
1192 * hHandle - Handle to the form fill module, as returned by
1193 * FPDFDOC_InitFormFillEnvironment().
1194 * Return Value:
1195 * None.
1196 */
1198 FPDF_FORMHANDLE hHandle);
1199
1200/*
1201 * Function: FORM_DoDocumentJSAction
1202 * This method is required for performing document-level JavaScript
1203 * actions. It should be invoked after the PDF document has been loaded.
1204 * Parameters:
1205 * hHandle - Handle to the form fill module, as returned by
1206 * FPDFDOC_InitFormFillEnvironment().
1207 * Return Value:
1208 * None.
1209 * Comments:
1210 * If there is document-level JavaScript action embedded in the
1211 * document, this method will execute the JavaScript action. Otherwise,
1212 * the method will do nothing.
1213 */
1215FORM_DoDocumentJSAction(FPDF_FORMHANDLE hHandle);
1216
1217/*
1218 * Function: FORM_DoDocumentOpenAction
1219 * This method is required for performing open-action when the document
1220 * is opened.
1221 * Parameters:
1222 * hHandle - Handle to the form fill module, as returned by
1223 * FPDFDOC_InitFormFillEnvironment().
1224 * Return Value:
1225 * None.
1226 * Comments:
1227 * This method will do nothing if there are no open-actions embedded
1228 * in the document.
1229 */
1231FORM_DoDocumentOpenAction(FPDF_FORMHANDLE hHandle);
1232
1233// Additional actions type of document:
1234// WC, before closing document, JavaScript action.
1235// WS, before saving document, JavaScript action.
1236// DS, after saving document, JavaScript action.
1237// WP, before printing document, JavaScript action.
1238// DP, after printing document, JavaScript action.
1239#define FPDFDOC_AACTION_WC 0x10
1240#define FPDFDOC_AACTION_WS 0x11
1241#define FPDFDOC_AACTION_DS 0x12
1242#define FPDFDOC_AACTION_WP 0x13
1243#define FPDFDOC_AACTION_DP 0x14
1244
1245/*
1246 * Function: FORM_DoDocumentAAction
1247 * This method is required for performing the document's
1248 * additional-action.
1249 * Parameters:
1250 * hHandle - Handle to the form fill module. Returned by
1251 * FPDFDOC_InitFormFillEnvironment.
1252 * aaType - The type of the additional-actions which defined
1253 * above.
1254 * Return Value:
1255 * None.
1256 * Comments:
1257 * This method will do nothing if there is no document
1258 * additional-action corresponding to the specified |aaType|.
1259 */
1260FPDF_EXPORT void FPDF_CALLCONV FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle,
1261 int aaType);
1262
1263// Additional-action types of page object:
1264// OPEN (/O) -- An action to be performed when the page is opened
1265// CLOSE (/C) -- An action to be performed when the page is closed
1266#define FPDFPAGE_AACTION_OPEN 0
1267#define FPDFPAGE_AACTION_CLOSE 1
1268
1269/*
1270 * Function: FORM_DoPageAAction
1271 * This method is required for performing the page object's
1272 * additional-action when opened or closed.
1273 * Parameters:
1274 * page - Handle to the page, as returned by FPDF_LoadPage().
1275 * hHandle - Handle to the form fill module, as returned by
1276 * FPDFDOC_InitFormFillEnvironment().
1277 * aaType - The type of the page object's additional-actions
1278 * which defined above.
1279 * Return Value:
1280 * None.
1281 * Comments:
1282 * This method will do nothing if no additional-action corresponding
1283 * to the specified |aaType| exists.
1284 */
1285FPDF_EXPORT void FPDF_CALLCONV FORM_DoPageAAction(FPDF_PAGE page,
1286 FPDF_FORMHANDLE hHandle,
1287 int aaType);
1288
1289/*
1290 * Function: FORM_OnMouseMove
1291 * Call this member function when the mouse cursor moves.
1292 * Parameters:
1293 * hHandle - Handle to the form fill module, as returned by
1294 * FPDFDOC_InitFormFillEnvironment().
1295 * page - Handle to the page, as returned by FPDF_LoadPage().
1296 * modifier - Indicates whether various virtual keys are down.
1297 * page_x - Specifies the x-coordinate of the cursor in PDF user
1298 * space.
1299 * page_y - Specifies the y-coordinate of the cursor in PDF user
1300 * space.
1301 * Return Value:
1302 * True indicates success; otherwise false.
1303 */
1304FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnMouseMove(FPDF_FORMHANDLE hHandle,
1305 FPDF_PAGE page,
1306 int modifier,
1307 double page_x,
1308 double page_y);
1309
1310/*
1311 * Experimental API
1312 * Function: FORM_OnMouseWheel
1313 * Call this member function when the user scrolls the mouse wheel.
1314 * Parameters:
1315 * hHandle - Handle to the form fill module, as returned by
1316 * FPDFDOC_InitFormFillEnvironment().
1317 * page - Handle to the page, as returned by FPDF_LoadPage().
1318 * modifier - Indicates whether various virtual keys are down.
1319 * page_coord - Specifies the coordinates of the cursor in PDF user
1320 * space.
1321 * delta_x - Specifies the amount of wheel movement on the x-axis,
1322 * in units of platform-agnostic wheel deltas. Negative
1323 * values mean left.
1324 * delta_y - Specifies the amount of wheel movement on the y-axis,
1325 * in units of platform-agnostic wheel deltas. Negative
1326 * values mean down.
1327 * Return Value:
1328 * True indicates success; otherwise false.
1329 * Comments:
1330 * For |delta_x| and |delta_y|, the caller must normalize
1331 * platform-specific wheel deltas. e.g. On Windows, a delta value of 240
1332 * for a WM_MOUSEWHEEL event normalizes to 2, since Windows defines
1333 * WHEEL_DELTA as 120.
1334 */
1336 FPDF_FORMHANDLE hHandle,
1337 FPDF_PAGE page,
1338 int modifier,
1339 const FS_POINTF* page_coord,
1340 int delta_x,
1341 int delta_y);
1342
1343/*
1344 * Function: FORM_OnFocus
1345 * This function focuses the form annotation at a given point. If the
1346 * annotation at the point already has focus, nothing happens. If there
1347 * is no annotation at the point, removes form focus.
1348 * Parameters:
1349 * hHandle - Handle to the form fill module, as returned by
1350 * FPDFDOC_InitFormFillEnvironment().
1351 * page - Handle to the page, as returned by FPDF_LoadPage().
1352 * modifier - Indicates whether various virtual keys are down.
1353 * page_x - Specifies the x-coordinate of the cursor in PDF user
1354 * space.
1355 * page_y - Specifies the y-coordinate of the cursor in PDF user
1356 * space.
1357 * Return Value:
1358 * True if there is an annotation at the given point and it has focus.
1359 */
1360FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnFocus(FPDF_FORMHANDLE hHandle,
1361 FPDF_PAGE page,
1362 int modifier,
1363 double page_x,
1364 double page_y);
1365
1366/*
1367 * Function: FORM_OnLButtonDown
1368 * Call this member function when the user presses the left
1369 * mouse button.
1370 * Parameters:
1371 * hHandle - Handle to the form fill module, as returned by
1372 * FPDFDOC_InitFormFillEnvironment().
1373 * page - Handle to the page, as returned by FPDF_LoadPage().
1374 * modifier - Indicates whether various virtual keys are down.
1375 * page_x - Specifies the x-coordinate of the cursor in PDF user
1376 * space.
1377 * page_y - Specifies the y-coordinate of the cursor in PDF user
1378 * space.
1379 * Return Value:
1380 * True indicates success; otherwise false.
1381 */
1382FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnLButtonDown(FPDF_FORMHANDLE hHandle,
1383 FPDF_PAGE page,
1384 int modifier,
1385 double page_x,
1386 double page_y);
1387
1388/*
1389 * Function: FORM_OnRButtonDown
1390 * Same as above, execpt for the right mouse button.
1391 * Comments:
1392 * At the present time, has no effect except in XFA builds, but is
1393 * included for the sake of symmetry.
1394 */
1395FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnRButtonDown(FPDF_FORMHANDLE hHandle,
1396 FPDF_PAGE page,
1397 int modifier,
1398 double page_x,
1399 double page_y);
1400/*
1401 * Function: FORM_OnLButtonUp
1402 * Call this member function when the user releases the left
1403 * mouse button.
1404 * Parameters:
1405 * hHandle - Handle to the form fill module, as returned by
1406 * FPDFDOC_InitFormFillEnvironment().
1407 * page - Handle to the page, as returned by FPDF_LoadPage().
1408 * modifier - Indicates whether various virtual keys are down.
1409 * page_x - Specifies the x-coordinate of the cursor in device.
1410 * page_y - Specifies the y-coordinate of the cursor in device.
1411 * Return Value:
1412 * True indicates success; otherwise false.
1413 */
1414FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnLButtonUp(FPDF_FORMHANDLE hHandle,
1415 FPDF_PAGE page,
1416 int modifier,
1417 double page_x,
1418 double page_y);
1419
1420/*
1421 * Function: FORM_OnRButtonUp
1422 * Same as above, execpt for the right mouse button.
1423 * Comments:
1424 * At the present time, has no effect except in XFA builds, but is
1425 * included for the sake of symmetry.
1426 */
1427FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnRButtonUp(FPDF_FORMHANDLE hHandle,
1428 FPDF_PAGE page,
1429 int modifier,
1430 double page_x,
1431 double page_y);
1432
1433/*
1434 * Function: FORM_OnLButtonDoubleClick
1435 * Call this member function when the user double clicks the
1436 * left mouse button.
1437 * Parameters:
1438 * hHandle - Handle to the form fill module, as returned by
1439 * FPDFDOC_InitFormFillEnvironment().
1440 * page - Handle to the page, as returned by FPDF_LoadPage().
1441 * modifier - Indicates whether various virtual keys are down.
1442 * page_x - Specifies the x-coordinate of the cursor in PDF user
1443 * space.
1444 * page_y - Specifies the y-coordinate of the cursor in PDF user
1445 * space.
1446 * Return Value:
1447 * True indicates success; otherwise false.
1448 */
1449FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
1450FORM_OnLButtonDoubleClick(FPDF_FORMHANDLE hHandle,
1451 FPDF_PAGE page,
1452 int modifier,
1453 double page_x,
1454 double page_y);
1455
1456/*
1457 * Function: FORM_OnKeyDown
1458 * Call this member function when a nonsystem key is pressed.
1459 * Parameters:
1460 * hHandle - Handle to the form fill module, aseturned by
1461 * FPDFDOC_InitFormFillEnvironment().
1462 * page - Handle to the page, as returned by FPDF_LoadPage().
1463 * nKeyCode - The virtual-key code of the given key (see
1464 * fpdf_fwlevent.h for virtual key codes).
1465 * modifier - Mask of key flags (see fpdf_fwlevent.h for key
1466 * flag values).
1467 * Return Value:
1468 * True indicates success; otherwise false.
1469 */
1470FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnKeyDown(FPDF_FORMHANDLE hHandle,
1471 FPDF_PAGE page,
1472 int nKeyCode,
1473 int modifier);
1474
1475/*
1476 * Function: FORM_OnKeyUp
1477 * Call this member function when a nonsystem key is released.
1478 * Parameters:
1479 * hHandle - Handle to the form fill module, as returned by
1480 * FPDFDOC_InitFormFillEnvironment().
1481 * page - Handle to the page, as returned by FPDF_LoadPage().
1482 * nKeyCode - The virtual-key code of the given key (see
1483 * fpdf_fwlevent.h for virtual key codes).
1484 * modifier - Mask of key flags (see fpdf_fwlevent.h for key
1485 * flag values).
1486 * Return Value:
1487 * True indicates success; otherwise false.
1488 * Comments:
1489 * Currently unimplemented and always returns false. PDFium reserves this
1490 * API and may implement it in the future on an as-needed basis.
1491 */
1492FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnKeyUp(FPDF_FORMHANDLE hHandle,
1493 FPDF_PAGE page,
1494 int nKeyCode,
1495 int modifier);
1496
1497/*
1498 * Function: FORM_OnChar
1499 * Call this member function when a keystroke translates to a
1500 * nonsystem character.
1501 * Parameters:
1502 * hHandle - Handle to the form fill module, as returned by
1503 * FPDFDOC_InitFormFillEnvironment().
1504 * page - Handle to the page, as returned by FPDF_LoadPage().
1505 * nChar - The character code value itself.
1506 * modifier - Mask of key flags (see fpdf_fwlevent.h for key
1507 * flag values).
1508 * Return Value:
1509 * True indicates success; otherwise false.
1510 */
1511FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnChar(FPDF_FORMHANDLE hHandle,
1512 FPDF_PAGE page,
1513 int nChar,
1514 int modifier);
1515
1516/*
1517 * Experimental API
1518 * Function: FORM_GetFocusedText
1519 * Call this function to obtain the text within the current focused
1520 * field, if any.
1521 * Parameters:
1522 * hHandle - Handle to the form fill module, as returned by
1523 * FPDFDOC_InitFormFillEnvironment().
1524 * page - Handle to the page, as returned by FPDF_LoadPage().
1525 * buffer - Buffer for holding the form text, encoded in
1526 * UTF-16LE. If NULL, |buffer| is not modified.
1527 * buflen - Length of |buffer| in bytes. If |buflen| is less
1528 * than the length of the form text string, |buffer| is
1529 * not modified.
1530 * Return Value:
1531 * Length in bytes for the text in the focused field.
1532 */
1533FPDF_EXPORT unsigned long FPDF_CALLCONV
1534FORM_GetFocusedText(FPDF_FORMHANDLE hHandle,
1535 FPDF_PAGE page,
1536 void* buffer,
1537 unsigned long buflen);
1538
1539/*
1540 * Function: FORM_GetSelectedText
1541 * Call this function to obtain selected text within a form text
1542 * field or form combobox text field.
1543 * Parameters:
1544 * hHandle - Handle to the form fill module, as returned by
1545 * FPDFDOC_InitFormFillEnvironment().
1546 * page - Handle to the page, as returned by FPDF_LoadPage().
1547 * buffer - Buffer for holding the selected text, encoded in
1548 * UTF-16LE. If NULL, |buffer| is not modified.
1549 * buflen - Length of |buffer| in bytes. If |buflen| is less
1550 * than the length of the selected text string,
1551 * |buffer| is not modified.
1552 * Return Value:
1553 * Length in bytes of selected text in form text field or form combobox
1554 * text field.
1555 */
1556FPDF_EXPORT unsigned long FPDF_CALLCONV
1557FORM_GetSelectedText(FPDF_FORMHANDLE hHandle,
1558 FPDF_PAGE page,
1559 void* buffer,
1560 unsigned long buflen);
1561
1562/*
1563 * Experimental API
1564 * Function: FORM_ReplaceAndKeepSelection
1565 * Call this function to replace the selected text in a form
1566 * text field or user-editable form combobox text field with another
1567 * text string (which can be empty or non-empty). If there is no
1568 * selected text, this function will append the replacement text after
1569 * the current caret position. After the insertion, the inserted text
1570 * will be selected.
1571 * Parameters:
1572 * hHandle - Handle to the form fill module, as returned by
1573 * FPDFDOC_InitFormFillEnvironment().
1574 * page - Handle to the page, as Returned by FPDF_LoadPage().
1575 * wsText - The text to be inserted, in UTF-16LE format.
1576 * Return Value:
1577 * None.
1578 */
1580FORM_ReplaceAndKeepSelection(FPDF_FORMHANDLE hHandle,
1581 FPDF_PAGE page,
1582 FPDF_WIDESTRING wsText);
1583
1584/*
1585 * Function: FORM_ReplaceSelection
1586 * Call this function to replace the selected text in a form
1587 * text field or user-editable form combobox text field with another
1588 * text string (which can be empty or non-empty). If there is no
1589 * selected text, this function will append the replacement text after
1590 * the current caret position. After the insertion, the selection range
1591 * will be set to empty.
1592 * Parameters:
1593 * hHandle - Handle to the form fill module, as returned by
1594 * FPDFDOC_InitFormFillEnvironment().
1595 * page - Handle to the page, as Returned by FPDF_LoadPage().
1596 * wsText - The text to be inserted, in UTF-16LE format.
1597 * Return Value:
1598 * None.
1599 */
1600FPDF_EXPORT void FPDF_CALLCONV FORM_ReplaceSelection(FPDF_FORMHANDLE hHandle,
1601 FPDF_PAGE page,
1602 FPDF_WIDESTRING wsText);
1603
1604/*
1605 * Experimental API
1606 * Function: FORM_SelectAllText
1607 * Call this function to select all the text within the currently focused
1608 * form text field or form combobox text field.
1609 * Parameters:
1610 * hHandle - Handle to the form fill module, as returned by
1611 * FPDFDOC_InitFormFillEnvironment().
1612 * page - Handle to the page, as returned by FPDF_LoadPage().
1613 * Return Value:
1614 * Whether the operation succeeded or not.
1615 */
1616FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
1617FORM_SelectAllText(FPDF_FORMHANDLE hHandle, FPDF_PAGE page);
1618
1619/*
1620 * Function: FORM_CanUndo
1621 * Find out if it is possible for the current focused widget in a given
1622 * form to perform an undo operation.
1623 * Parameters:
1624 * hHandle - Handle to the form fill module, as returned by
1625 * FPDFDOC_InitFormFillEnvironment().
1626 * page - Handle to the page, as returned by FPDF_LoadPage().
1627 * Return Value:
1628 * True if it is possible to undo.
1629 */
1630FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_CanUndo(FPDF_FORMHANDLE hHandle,
1631 FPDF_PAGE page);
1632
1633/*
1634 * Function: FORM_CanRedo
1635 * Find out if it is possible for the current focused widget in a given
1636 * form to perform a redo operation.
1637 * Parameters:
1638 * hHandle - Handle to the form fill module, as returned by
1639 * FPDFDOC_InitFormFillEnvironment().
1640 * page - Handle to the page, as returned by FPDF_LoadPage().
1641 * Return Value:
1642 * True if it is possible to redo.
1643 */
1644FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_CanRedo(FPDF_FORMHANDLE hHandle,
1645 FPDF_PAGE page);
1646
1647/*
1648 * Function: FORM_Undo
1649 * Make the current focussed widget perform an undo operation.
1650 * Parameters:
1651 * hHandle - Handle to the form fill module, as returned by
1652 * FPDFDOC_InitFormFillEnvironment().
1653 * page - Handle to the page, as returned by FPDF_LoadPage().
1654 * Return Value:
1655 * True if the undo operation succeeded.
1656 */
1657FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_Undo(FPDF_FORMHANDLE hHandle,
1658 FPDF_PAGE page);
1659
1660/*
1661 * Function: FORM_Redo
1662 * Make the current focussed widget perform a redo operation.
1663 * Parameters:
1664 * hHandle - Handle to the form fill module, as returned by
1665 * FPDFDOC_InitFormFillEnvironment().
1666 * page - Handle to the page, as returned by FPDF_LoadPage().
1667 * Return Value:
1668 * True if the redo operation succeeded.
1669 */
1670FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_Redo(FPDF_FORMHANDLE hHandle,
1671 FPDF_PAGE page);
1672
1673/*
1674 * Function: FORM_ForceToKillFocus.
1675 * Call this member function to force to kill the focus of the form
1676 * field which has focus. If it would kill the focus of a form field,
1677 * save the value of form field if was changed by theuser.
1678 * Parameters:
1679 * hHandle - Handle to the form fill module, as returned by
1680 * FPDFDOC_InitFormFillEnvironment().
1681 * Return Value:
1682 * True indicates success; otherwise false.
1683 */
1684FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
1685FORM_ForceToKillFocus(FPDF_FORMHANDLE hHandle);
1686
1687/*
1688 * Experimental API.
1689 * Function: FORM_GetFocusedAnnot.
1690 * Call this member function to get the currently focused annotation.
1691 * Parameters:
1692 * handle - Handle to the form fill module, as returned by
1693 * FPDFDOC_InitFormFillEnvironment().
1694 * page_index - Buffer to hold the index number of the page which
1695 * contains the focused annotation. 0 for the first page.
1696 * Can't be NULL.
1697 * annot - Buffer to hold the focused annotation. Can't be NULL.
1698 * Return Value:
1699 * On success, return true and write to the out parameters. Otherwise return
1700 * false and leave the out parameters unmodified.
1701 * Comments:
1702 * Not currently supported for XFA forms - will report no focused
1703 * annotation.
1704 * Must call FPDFPage_CloseAnnot() when the annotation returned in |annot|
1705 * by this function is no longer needed.
1706 * This will return true and set |page_index| to -1 and |annot| to NULL, if
1707 * there is no focused annotation.
1708 */
1709FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
1710FORM_GetFocusedAnnot(FPDF_FORMHANDLE handle,
1711 int* page_index,
1712 FPDF_ANNOTATION* annot);
1713
1714/*
1715 * Experimental API.
1716 * Function: FORM_SetFocusedAnnot.
1717 * Call this member function to set the currently focused annotation.
1718 * Parameters:
1719 * handle - Handle to the form fill module, as returned by
1720 * FPDFDOC_InitFormFillEnvironment().
1721 * annot - Handle to an annotation.
1722 * Return Value:
1723 * True indicates success; otherwise false.
1724 * Comments:
1725 * |annot| can't be NULL. To kill focus, use FORM_ForceToKillFocus()
1726 * instead.
1727 */
1728FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
1729FORM_SetFocusedAnnot(FPDF_FORMHANDLE handle, FPDF_ANNOTATION annot);
1730
1731// Form Field Types
1732// The names of the defines are stable, but the specific values associated with
1733// them are not, so do not hardcode their values.
1734#define FPDF_FORMFIELD_UNKNOWN 0 // Unknown.
1735#define FPDF_FORMFIELD_PUSHBUTTON 1 // push button type.
1736#define FPDF_FORMFIELD_CHECKBOX 2 // check box type.
1737#define FPDF_FORMFIELD_RADIOBUTTON 3 // radio button type.
1738#define FPDF_FORMFIELD_COMBOBOX 4 // combo box type.
1739#define FPDF_FORMFIELD_LISTBOX 5 // list box type.
1740#define FPDF_FORMFIELD_TEXTFIELD 6 // text field type.
1741#define FPDF_FORMFIELD_SIGNATURE 7 // text field type.
1742#ifdef PDF_ENABLE_XFA
1743#define FPDF_FORMFIELD_XFA 8 // Generic XFA type.
1744#define FPDF_FORMFIELD_XFA_CHECKBOX 9 // XFA check box type.
1745#define FPDF_FORMFIELD_XFA_COMBOBOX 10 // XFA combo box type.
1746#define FPDF_FORMFIELD_XFA_IMAGEFIELD 11 // XFA image field type.
1747#define FPDF_FORMFIELD_XFA_LISTBOX 12 // XFA list box type.
1748#define FPDF_FORMFIELD_XFA_PUSHBUTTON 13 // XFA push button type.
1749#define FPDF_FORMFIELD_XFA_SIGNATURE 14 // XFA signture field type.
1750#define FPDF_FORMFIELD_XFA_TEXTFIELD 15 // XFA text field type.
1751#endif // PDF_ENABLE_XFA
1752
1753#ifdef PDF_ENABLE_XFA
1754#define FPDF_FORMFIELD_COUNT 16
1755#else // PDF_ENABLE_XFA
1756#define FPDF_FORMFIELD_COUNT 8
1757#endif // PDF_ENABLE_XFA
1758
1759#ifdef PDF_ENABLE_XFA
1760#define IS_XFA_FORMFIELD(type)
1761 (((type) == FPDF_FORMFIELD_XFA) ||
1762 ((type) == FPDF_FORMFIELD_XFA_CHECKBOX) ||
1763 ((type) == FPDF_FORMFIELD_XFA_COMBOBOX) ||
1764 ((type) == FPDF_FORMFIELD_XFA_IMAGEFIELD) ||
1765 ((type) == FPDF_FORMFIELD_XFA_LISTBOX) ||
1766 ((type) == FPDF_FORMFIELD_XFA_PUSHBUTTON) ||
1767 ((type) == FPDF_FORMFIELD_XFA_SIGNATURE) ||
1768 ((type) == FPDF_FORMFIELD_XFA_TEXTFIELD))
1769#endif // PDF_ENABLE_XFA
1770
1771/*
1772 * Function: FPDFPage_HasFormFieldAtPoint
1773 * Get the form field type by point.
1774 * Parameters:
1775 * hHandle - Handle to the form fill module. Returned by
1776 * FPDFDOC_InitFormFillEnvironment().
1777 * page - Handle to the page. Returned by FPDF_LoadPage().
1778 * page_x - X position in PDF "user space".
1779 * page_y - Y position in PDF "user space".
1780 * Return Value:
1781 * Return the type of the form field; -1 indicates no field.
1782 * See field types above.
1783 */
1785FPDFPage_HasFormFieldAtPoint(FPDF_FORMHANDLE hHandle,
1786 FPDF_PAGE page,
1787 double page_x,
1788 double page_y);
1789
1790/*
1791 * Function: FPDFPage_FormFieldZOrderAtPoint
1792 * Get the form field z-order by point.
1793 * Parameters:
1794 * hHandle - Handle to the form fill module. Returned by
1795 * FPDFDOC_InitFormFillEnvironment().
1796 * page - Handle to the page. Returned by FPDF_LoadPage().
1797 * page_x - X position in PDF "user space".
1798 * page_y - Y position in PDF "user space".
1799 * Return Value:
1800 * Return the z-order of the form field; -1 indicates no field.
1801 * Higher numbers are closer to the front.
1802 */
1804FPDFPage_FormFieldZOrderAtPoint(FPDF_FORMHANDLE hHandle,
1805 FPDF_PAGE page,
1806 double page_x,
1807 double page_y);
1808
1809/*
1810 * Function: FPDF_SetFormFieldHighlightColor
1811 * Set the highlight color of the specified (or all) form fields
1812 * in the document.
1813 * Parameters:
1814 * hHandle - Handle to the form fill module, as returned by
1815 * FPDFDOC_InitFormFillEnvironment().
1816 * doc - Handle to the document, as returned by
1817 * FPDF_LoadDocument().
1818 * fieldType - A 32-bit integer indicating the type of a form
1819 * field (defined above).
1820 * color - The highlight color of the form field. Constructed by
1821 * 0xxxrrggbb.
1822 * Return Value:
1823 * None.
1824 * Comments:
1825 * When the parameter fieldType is set to FPDF_FORMFIELD_UNKNOWN, the
1826 * highlight color will be applied to all the form fields in the
1827 * document.
1828 * Please refresh the client window to show the highlight immediately
1829 * if necessary.
1830 */
1832FPDF_SetFormFieldHighlightColor(FPDF_FORMHANDLE hHandle,
1833 int fieldType,
1834 unsigned long color);
1835
1836/*
1837 * Function: FPDF_SetFormFieldHighlightAlpha
1838 * Set the transparency of the form field highlight color in the
1839 * document.
1840 * Parameters:
1841 * hHandle - Handle to the form fill module, as returned by
1842 * FPDFDOC_InitFormFillEnvironment().
1843 * doc - Handle to the document, as returaned by
1844 * FPDF_LoadDocument().
1845 * alpha - The transparency of the form field highlight color,
1846 * between 0-255.
1847 * Return Value:
1848 * None.
1849 */
1851FPDF_SetFormFieldHighlightAlpha(FPDF_FORMHANDLE hHandle, unsigned char alpha);
1852
1853/*
1854 * Function: FPDF_RemoveFormFieldHighlight
1855 * Remove the form field highlight color in the document.
1856 * Parameters:
1857 * hHandle - Handle to the form fill module, as returned by
1858 * FPDFDOC_InitFormFillEnvironment().
1859 * Return Value:
1860 * None.
1861 * Comments:
1862 * Please refresh the client window to remove the highlight immediately
1863 * if necessary.
1864 */
1866FPDF_RemoveFormFieldHighlight(FPDF_FORMHANDLE hHandle);
1867
1868/*
1869* Function: FPDF_FFLDraw
1870* Render FormFields and popup window on a page to a device independent
1871* bitmap.
1872* Parameters:
1873* hHandle - Handle to the form fill module, as returned by
1874* FPDFDOC_InitFormFillEnvironment().
1875* bitmap - Handle to the device independent bitmap (as the
1876* output buffer). Bitmap handles can be created by
1877* FPDFBitmap_Create().
1878* page - Handle to the page, as returned by FPDF_LoadPage().
1879* start_x - Left pixel position of the display area in the
1880* device coordinates.
1881* start_y - Top pixel position of the display area in the device
1882* coordinates.
1883* size_x - Horizontal size (in pixels) for displaying the page.
1884* size_y - Vertical size (in pixels) for displaying the page.
1885* rotate - Page orientation: 0 (normal), 1 (rotated 90 degrees
1886* clockwise), 2 (rotated 180 degrees), 3 (rotated 90
1887* degrees counter-clockwise).
1888* flags - 0 for normal display, or combination of flags
1889* defined above.
1890* Return Value:
1891* None.
1892* Comments:
1893* This function is designed to render annotations that are
1894* user-interactive, which are widget annotations (for FormFields) and
1895* popup annotations.
1896* With the FPDF_ANNOT flag, this function will render a popup annotation
1897* when users mouse-hover on a non-widget annotation. Regardless of
1898* FPDF_ANNOT flag, this function will always render widget annotations
1899* for FormFields.
1900* In order to implement the FormFill functions, implementation should
1901* call this function after rendering functions, such as
1902* FPDF_RenderPageBitmap() or FPDF_RenderPageBitmap_Start(), have
1903* finished rendering the page contents.
1904*/
1905FPDF_EXPORT void FPDF_CALLCONV FPDF_FFLDraw(FPDF_FORMHANDLE hHandle,
1906 FPDF_BITMAP bitmap,
1907 FPDF_PAGE page,
1908 int start_x,
1909 int start_y,
1910 int size_x,
1911 int size_y,
1912 int rotate,
1913 int flags);
1914
1915#if defined(PDF_USE_SKIA)
1916FPDF_EXPORT void FPDF_CALLCONV FPDF_FFLDrawSkia(FPDF_FORMHANDLE hHandle,
1917 FPDF_SKIA_CANVAS canvas,
1918 FPDF_PAGE page,
1919 int start_x,
1920 int start_y,
1921 int size_x,
1922 int size_y,
1923 int rotate,
1924 int flags);
1925#endif
1926
1927/*
1928 * Experimental API
1929 * Function: FPDF_GetFormType
1930 * Returns the type of form contained in the PDF document.
1931 * Parameters:
1932 * document - Handle to document.
1933 * Return Value:
1934 * Integer value representing one of the FORMTYPE_ values.
1935 * Comments:
1936 * If |document| is NULL, then the return value is FORMTYPE_NONE.
1937 */
1938FPDF_EXPORT int FPDF_CALLCONV FPDF_GetFormType(FPDF_DOCUMENT document);
1939
1940/*
1941 * Experimental API
1942 * Function: FORM_SetIndexSelected
1943 * Selects/deselects the value at the given |index| of the focused
1944 * annotation.
1945 * Parameters:
1946 * hHandle - Handle to the form fill module. Returned by
1947 * FPDFDOC_InitFormFillEnvironment.
1948 * page - Handle to the page. Returned by FPDF_LoadPage
1949 * index - 0-based index of value to be set as
1950 * selected/unselected
1951 * selected - true to select, false to deselect
1952 * Return Value:
1953 * TRUE if the operation succeeded.
1954 * FALSE if the operation failed or widget is not a supported type.
1955 * Comments:
1956 * Intended for use with listbox/combobox widget types. Comboboxes
1957 * have at most a single value selected at a time which cannot be
1958 * deselected. Deselect on a combobox is a no-op that returns false.
1959 * Default implementation is a no-op that will return false for
1960 * other types.
1961 * Not currently supported for XFA forms - will return false.
1962 */
1963FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
1964FORM_SetIndexSelected(FPDF_FORMHANDLE hHandle,
1965 FPDF_PAGE page,
1966 int index,
1967 FPDF_BOOL selected);
1968
1969/*
1970 * Experimental API
1971 * Function: FORM_IsIndexSelected
1972 * Returns whether or not the value at |index| of the focused
1973 * annotation is currently selected.
1974 * Parameters:
1975 * hHandle - Handle to the form fill module. Returned by
1976 * FPDFDOC_InitFormFillEnvironment.
1977 * page - Handle to the page. Returned by FPDF_LoadPage
1978 * index - 0-based Index of value to check
1979 * Return Value:
1980 * TRUE if value at |index| is currently selected.
1981 * FALSE if value at |index| is not selected or widget is not a
1982 * supported type.
1983 * Comments:
1984 * Intended for use with listbox/combobox widget types. Default
1985 * implementation is a no-op that will return false for other types.
1986 * Not currently supported for XFA forms - will return false.
1987 */
1988FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
1989FORM_IsIndexSelected(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int index);
1990
1991/*
1992 * Function: FPDF_LoadXFA
1993 * If the document consists of XFA fields, call this method to
1994 * attempt to load XFA fields.
1995 * Parameters:
1996 * document - Handle to document from FPDF_LoadDocument().
1997 * Return Value:
1998 * TRUE upon success, otherwise FALSE. If XFA support is not built
1999 * into PDFium, performs no action and always returns FALSE.
2000 */
2001FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_LoadXFA(FPDF_DOCUMENT document);
2002
2003#ifdef __cplusplus
2004}
2005#endif
2006
2007#endif // PUBLIC_FPDF_FORMFILL_H_
FX_DOWNLOADHINTS * GetDownloadHints() const
FX_FILEAVAIL * GetFileAvail() const
FPDF_FILEACCESS * GetFileAccess() const
TEST_F(CPDF_CreatorEmbedderTest, SavedDocsAreEqualAfterParse)
FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetFormControlCount(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetFontSize(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot, float *value)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetRect(FPDF_ANNOTATION annot, const FS_RECTF *rect)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPage_RemoveAnnot(FPDF_PAGE page, int index)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetFocusableSubtypes(FPDF_FORMHANDLE hHandle, const FPDF_ANNOTATION_SUBTYPE *subtypes, size_t count)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetBorder(FPDF_ANNOTATION annot, float *horizontal_radius, float *vertical_radius, float *border_width)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetAttachmentPoints(FPDF_ANNOTATION annot, size_t quad_index, FS_QUADPOINTSF *quad_points)
FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetFocusableSubtypesCount(FPDF_FORMHANDLE hHandle)
FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_AddInkStroke(FPDF_ANNOTATION annot, const FS_POINTF *points, size_t point_count)
FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetOptionCount(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetVertices(FPDF_ANNOTATION annot, FS_POINTF *buffer, unsigned long length)
FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDFAnnot_GetObject(FPDF_ANNOTATION annot, int index)
FPDF_EXPORT size_t FPDF_CALLCONV FPDFAnnot_CountAttachmentPoints(FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetFlags(FPDF_ANNOTATION annot, int flags)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetFormFieldName(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot, FPDF_WCHAR *buffer, unsigned long buflen)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_HasKey(FPDF_ANNOTATION annot, FPDF_BYTESTRING key)
FPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV FPDFAnnot_GetLinkedAnnot(FPDF_ANNOTATION annot, FPDF_BYTESTRING key)
FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetObjectCount(FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_RemoveObject(FPDF_ANNOTATION annot, int index)
FPDF_EXPORT int FPDF_CALLCONV FPDFPage_GetAnnotCount(FPDF_PAGE page)
FPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV FPDFPage_CreateAnnot(FPDF_PAGE page, FPDF_ANNOTATION_SUBTYPE subtype)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_IsChecked(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetFormFieldAlternateName(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot, FPDF_WCHAR *buffer, unsigned long buflen)
FPDF_EXPORT FPDF_LINK FPDF_CALLCONV FPDFAnnot_GetLink(FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetAP(FPDF_ANNOTATION annot, FPDF_ANNOT_APPEARANCEMODE appearanceMode, FPDF_WIDESTRING value)
FPDF_EXPORT FPDF_ANNOTATION_SUBTYPE FPDF_CALLCONV FPDFAnnot_GetSubtype(FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_OBJECT_TYPE FPDF_CALLCONV FPDFAnnot_GetValueType(FPDF_ANNOTATION annot, FPDF_BYTESTRING key)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_AppendAttachmentPoints(FPDF_ANNOTATION annot, const FS_QUADPOINTSF *quad_points)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_HasAttachmentPoints(FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetColor(FPDF_ANNOTATION annot, FPDFANNOT_COLORTYPE type, unsigned int *R, unsigned int *G, unsigned int *B, unsigned int *A)
FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetFormFieldFlags(FPDF_FORMHANDLE handle, FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetStringValue(FPDF_ANNOTATION annot, FPDF_BYTESTRING key, FPDF_WIDESTRING value)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetOptionLabel(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot, int index, FPDF_WCHAR *buffer, unsigned long buflen)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetInkListPath(FPDF_ANNOTATION annot, unsigned long path_index, FS_POINTF *buffer, unsigned long length)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_IsOptionSelected(FPDF_FORMHANDLE handle, FPDF_ANNOTATION annot, int index)
FPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV FPDFPage_GetAnnot(FPDF_PAGE page, int index)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetFormFieldExportValue(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot, FPDF_WCHAR *buffer, unsigned long buflen)
FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetFlags(FPDF_ANNOTATION annot)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetStringValue(FPDF_ANNOTATION annot, FPDF_BYTESTRING key, FPDF_WCHAR *buffer, unsigned long buflen)
FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetFormControlIndex(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot)
FPDF_EXPORT void FPDF_CALLCONV FPDFPage_CloseAnnot(FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetNumberValue(FPDF_ANNOTATION annot, FPDF_BYTESTRING key, float *value)
FPDF_EXPORT int FPDF_CALLCONV FPDFAnnot_GetFormFieldType(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetURI(FPDF_ANNOTATION annot, const char *uri)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetFormFieldValue(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot, FPDF_WCHAR *buffer, unsigned long buflen)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetFocusableSubtypes(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION_SUBTYPE *subtypes, size_t count)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetRect(FPDF_ANNOTATION annot, FS_RECTF *rect)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetAP(FPDF_ANNOTATION annot, FPDF_ANNOT_APPEARANCEMODE appearanceMode, FPDF_WCHAR *buffer, unsigned long buflen)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_IsObjectSupportedSubtype(FPDF_ANNOTATION_SUBTYPE subtype)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_GetLine(FPDF_ANNOTATION annot, FS_POINTF *start, FS_POINTF *end)
FPDF_EXPORT int FPDF_CALLCONV FPDFPage_GetAnnotIndex(FPDF_PAGE page, FPDF_ANNOTATION annot)
FPDF_EXPORT FPDF_ANNOTATION FPDF_CALLCONV FPDFAnnot_GetFormFieldAtPoint(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, const FS_POINTF *point)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetInkListCount(FPDF_ANNOTATION annot)
FPDFANNOT_COLORTYPE
Definition fpdf_annot.h:95
@ FPDFANNOT_COLORTYPE_InteriorColor
Definition fpdf_annot.h:97
@ FPDFANNOT_COLORTYPE_Color
Definition fpdf_annot.h:96
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetBorder(FPDF_ANNOTATION annot, float horizontal_radius, float vertical_radius, float border_width)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_AppendObject(FPDF_ANNOTATION annot, FPDF_PAGEOBJECT obj)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetColor(FPDF_ANNOTATION annot, FPDFANNOT_COLORTYPE type, unsigned int R, unsigned int G, unsigned int B, unsigned int A)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_UpdateObject(FPDF_ANNOTATION annot, FPDF_PAGEOBJECT obj)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_IsSupportedSubtype(FPDF_ANNOTATION_SUBTYPE subtype)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_RemoveInkList(FPDF_ANNOTATION annot)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDFAnnot_GetFormAdditionalActionJavaScript(FPDF_FORMHANDLE hHandle, FPDF_ANNOTATION annot, int event, FPDF_WCHAR *buffer, unsigned long buflen)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetAttachmentPoints(FPDF_ANNOTATION annot, size_t quad_index, const FS_QUADPOINTSF *quad_points)
#define PDF_DATA_AVAIL
FPDF_EXPORT void FPDF_CALLCONV FPDFAvail_Destroy(FPDF_AVAIL avail)
FPDF_EXPORT void FPDF_CALLCONV FPDFFont_Close(FPDF_FONT font)
FPDF_EXPORT void FPDF_CALLCONV FPDFPageObj_Destroy(FPDF_PAGEOBJECT page_object)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnMouseMove(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
FPDF_EXPORT void FPDF_CALLCONV FORM_OnAfterLoadPage(FPDF_PAGE page, FPDF_FORMHANDLE hHandle)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_SetIndexSelected(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int index, FPDF_BOOL selected)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_ForceToKillFocus(FPDF_FORMHANDLE hHandle)
FPDF_EXPORT void FPDF_CALLCONV FPDF_SetFormFieldHighlightAlpha(FPDF_FORMHANDLE hHandle, unsigned char alpha)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnFocus(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
#define JSPLATFORM_ALERT_ICON_ERROR
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnLButtonUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnMouseWheel(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, const FS_POINTF *page_coord, int delta_x, int delta_y)
FPDF_EXPORT void FPDF_CALLCONV FORM_ReplaceAndKeepSelection(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, FPDF_WIDESTRING wsText)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnKeyDown(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int nKeyCode, int modifier)
FPDF_EXPORT void FPDF_CALLCONV FORM_OnBeforeClosePage(FPDF_PAGE page, FPDF_FORMHANDLE hHandle)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnLButtonDoubleClick(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
FPDF_EXPORT void FPDF_CALLCONV FORM_ReplaceSelection(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, FPDF_WIDESTRING wsText)
void(* TimerCallback)(int idEvent)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnRButtonUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
FPDF_EXPORT int FPDF_CALLCONV FPDFPage_FormFieldZOrderAtPoint(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, double page_x, double page_y)
FPDF_EXPORT void FPDF_CALLCONV FORM_DoPageAAction(FPDF_PAGE page, FPDF_FORMHANDLE hHandle, int aaType)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_CanRedo(FPDF_FORMHANDLE hHandle, FPDF_PAGE page)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_SetFocusedAnnot(FPDF_FORMHANDLE handle, FPDF_ANNOTATION annot)
FPDF_EXPORT void FPDF_CALLCONV FORM_DoDocumentJSAction(FPDF_FORMHANDLE hHandle)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_GetFocusedAnnot(FPDF_FORMHANDLE handle, int *page_index, FPDF_ANNOTATION *annot)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnLButtonDown(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
FPDF_EXPORT void FPDF_CALLCONV FORM_DoDocumentOpenAction(FPDF_FORMHANDLE hHandle)
#define JSPLATFORM_ALERT_BUTTON_OK
FPDF_EXPORT unsigned long FPDF_CALLCONV FORM_GetSelectedText(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, void *buffer, unsigned long buflen)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnRButtonDown(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int modifier, double page_x, double page_y)
FPDF_EXPORT void FPDF_CALLCONV FORM_DoDocumentAAction(FPDF_FORMHANDLE hHandle, int aaType)
FPDF_EXPORT void FPDF_CALLCONV FPDF_SetFormFieldHighlightColor(FPDF_FORMHANDLE hHandle, int fieldType, unsigned long color)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_Redo(FPDF_FORMHANDLE hHandle, FPDF_PAGE page)
FPDF_EXPORT int FPDF_CALLCONV FPDFPage_HasFormFieldAtPoint(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, double page_x, double page_y)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnChar(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int nChar, int modifier)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_IsIndexSelected(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int index)
FPDF_EXPORT FPDF_FORMHANDLE FPDF_CALLCONV FPDFDOC_InitFormFillEnvironment(FPDF_DOCUMENT document, FPDF_FORMFILLINFO *formInfo)
FPDF_EXPORT unsigned long FPDF_CALLCONV FORM_GetFocusedText(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, void *buffer, unsigned long buflen)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_CanUndo(FPDF_FORMHANDLE hHandle, FPDF_PAGE page)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_OnKeyUp(FPDF_FORMHANDLE hHandle, FPDF_PAGE page, int nKeyCode, int modifier)
FPDF_EXPORT void FPDF_CALLCONV FPDF_RemoveFormFieldHighlight(FPDF_FORMHANDLE hHandle)
FPDF_EXPORT void FPDF_CALLCONV FPDFDOC_ExitFormFillEnvironment(FPDF_FORMHANDLE hHandle)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_SelectAllText(FPDF_FORMHANDLE hHandle, FPDF_PAGE page)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FORM_Undo(FPDF_FORMHANDLE hHandle, FPDF_PAGE page)
FPDF_EXPORT void FPDF_CALLCONV FPDF_FFLDraw(FPDF_FORMHANDLE hHandle, FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y, int rotate, int flags)
FPDF_EXPORT int FPDF_CALLCONV FPDF_GetFormType(FPDF_DOCUMENT document)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_LoadXFA(FPDF_DOCUMENT document)
FPDF_EXPORT void FPDF_CALLCONV FPDFDoc_CloseJavaScriptAction(FPDF_JAVASCRIPT_ACTION javascript)
FPDF_EXPORT void FPDF_CALLCONV FPDF_StructTree_Close(FPDF_STRUCTTREE struct_tree)
FPDF_EXPORT void FPDF_CALLCONV FPDFLink_CloseWebLinks(FPDF_PAGELINK link_page)
FPDF_EXPORT void FPDF_CALLCONV FPDFText_FindClose(FPDF_SCHHANDLE handle)
FPDF_EXPORT void FPDF_CALLCONV FPDFText_ClosePage(FPDF_TEXTPAGE text_page)
Definition fpdf_text.cpp:53
FPDF_EXPORT void FPDF_CALLCONV FPDF_DestroyClipPath(FPDF_CLIPPATH clipPath)
FPDF_EXPORT FPDF_PAGE FPDF_CALLCONV FPDF_LoadPage(FPDF_DOCUMENT document, int page_index)
FPDF_EXPORT int FPDF_CALLCONV FPDF_GetPageCount(FPDF_DOCUMENT document)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDF_GetLastError()
FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV FPDFBitmap_CreateEx(int width, int height, int format, void *first_scan, int stride)
FPDF_EXPORT void FPDF_CALLCONV FPDF_SetSandBoxPolicy(FPDF_DWORD policy, FPDF_BOOL enable)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_VIEWERREF_GetPrintScaling(FPDF_DOCUMENT document)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_DeviceToPage(FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y, int rotate, int device_x, int device_y, double *page_x, double *page_y)
FPDF_EXPORT FPDF_DOCUMENT FPDF_CALLCONV FPDF_LoadCustomDocument(FPDF_FILEACCESS *pFileAccess, FPDF_BYTESTRING password)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_PageToDevice(FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y, int rotate, double page_x, double page_y, int *device_x, int *device_y)
FPDF_EXPORT FPDF_DOCUMENT FPDF_CALLCONV FPDF_LoadDocument(FPDF_STRING file_path, FPDF_BYTESTRING password)
FPDF_EXPORT int FPDF_CALLCONV FPDFBitmap_GetHeight(FPDF_BITMAP bitmap)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_DocumentHasValidCrossReferenceTable(FPDF_DOCUMENT document)
FPDF_EXPORT void FPDF_CALLCONV FPDFBitmap_Destroy(FPDF_BITMAP bitmap)
FPDF_EXPORT FPDF_DUPLEXTYPE FPDF_CALLCONV FPDF_VIEWERREF_GetDuplex(FPDF_DOCUMENT document)
FPDF_EXPORT float FPDF_CALLCONV FPDF_GetPageHeightF(FPDF_PAGE page)
FPDF_EXPORT void FPDF_CALLCONV FPDF_DestroyLibrary()
FPDF_EXPORT int FPDF_CALLCONV FPDF_GetXFAPacketCount(FPDF_DOCUMENT document)
FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV FPDFBitmap_Create(int width, int height, int alpha)
FPDF_EXPORT int FPDF_CALLCONV FPDFBitmap_GetStride(FPDF_BITMAP bitmap)
FPDF_EXPORT FPDF_PAGERANGE FPDF_CALLCONV FPDF_VIEWERREF_GetPrintPageRange(FPDF_DOCUMENT document)
FPDF_EXPORT int FPDF_CALLCONV FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, int page_index, double *width, double *height)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDF_GetDocUserPermissions(FPDF_DOCUMENT document)
FPDF_EXPORT double FPDF_CALLCONV FPDF_GetPageWidth(FPDF_PAGE page)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDF_GetDocPermissions(FPDF_DOCUMENT document)
FPDF_EXPORT void FPDF_CALLCONV FPDF_InitLibrary()
FPDF_EXPORT FPDF_DEST FPDF_CALLCONV FPDF_GetNamedDest(FPDF_DOCUMENT document, int index, void *buffer, long *buflen)
FPDF_EXPORT FPDF_DEST FPDF_CALLCONV FPDF_GetNamedDestByName(FPDF_DOCUMENT document, FPDF_BYTESTRING name)
FPDF_EXPORT void FPDF_CALLCONV FPDF_RenderPageBitmap(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y, int rotate, int flags)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_GetFileVersion(FPDF_DOCUMENT doc, int *fileVersion)
FPDF_EXPORT void FPDF_CALLCONV FPDF_RenderPageBitmapWithMatrix(FPDF_BITMAP bitmap, FPDF_PAGE page, const FS_MATRIX *matrix, const FS_RECTF *clipping, int flags)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_GetPageBoundingBox(FPDF_PAGE page, FS_RECTF *rect)
FPDF_EXPORT int FPDF_CALLCONV FPDFBitmap_GetFormat(FPDF_BITMAP bitmap)
FPDF_EXPORT void FPDF_CALLCONV FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, FPDF_DWORD color)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDF_VIEWERREF_GetName(FPDF_DOCUMENT document, FPDF_BYTESTRING key, char *buffer, unsigned long length)
FPDF_EXPORT void FPDF_CALLCONV FPDF_InitLibraryWithConfig(const FPDF_LIBRARY_CONFIG *config)
FPDF_EXPORT void *FPDF_CALLCONV FPDFBitmap_GetBuffer(FPDF_BITMAP bitmap)
FPDF_EXPORT FPDF_DWORD FPDF_CALLCONV FPDF_CountNamedDests(FPDF_DOCUMENT document)
FPDF_EXPORT void FPDF_CALLCONV FPDF_CloseDocument(FPDF_DOCUMENT document)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_GetPageSizeByIndexF(FPDF_DOCUMENT document, int page_index, FS_SIZEF *size)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_GetXFAPacketContent(FPDF_DOCUMENT document, int index, void *buffer, unsigned long buflen, unsigned long *out_buflen)
FPDF_EXPORT int FPDF_CALLCONV FPDF_VIEWERREF_GetNumCopies(FPDF_DOCUMENT document)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDF_GetXFAPacketName(FPDF_DOCUMENT document, int index, void *buffer, unsigned long buflen)
FPDF_EXPORT double FPDF_CALLCONV FPDF_GetPageHeight(FPDF_PAGE page)
FPDF_EXPORT int FPDF_CALLCONV FPDFBitmap_GetWidth(FPDF_BITMAP bitmap)
FPDF_EXPORT FPDF_DOCUMENT FPDF_CALLCONV FPDF_LoadMemDocument(const void *data_buf, int size, FPDF_BYTESTRING password)
FPDF_EXPORT unsigned long FPDF_CALLCONV FPDF_GetTrailerEnds(FPDF_DOCUMENT document, unsigned int *buffer, unsigned long length)
FPDF_EXPORT float FPDF_CALLCONV FPDF_GetPageWidthF(FPDF_PAGE page)
FPDF_EXPORT void FPDF_CALLCONV FPDF_ClosePage(FPDF_PAGE page)
FPDF_EXPORT int FPDF_CALLCONV FPDF_GetSecurityHandlerRevision(FPDF_DOCUMENT document)
#define FPDF_CALLCONV
Definition fpdfview.h:227
#define FPDF_EXPORT
Definition fpdfview.h:221
#define FPDF_ANNOT
Definition fpdfview.h:804
void operator()(FPDF_ANNOTATION annot)
void operator()(FPDF_AVAIL avail)
void operator()(FPDF_BITMAP bitmap)
void operator()(FPDF_CLIPPATH clip_path)
void operator()(FPDF_DOCUMENT doc)
void operator()(FPDF_FONT font)
void operator()(FPDF_FORMHANDLE form)
void operator()(FPDF_JAVASCRIPT_ACTION javascript)
void operator()(FPDF_PAGE page)
void operator()(FPDF_PAGELINK pagelink)
void operator()(FPDF_PAGEOBJECT object)
void operator()(FPDF_STRUCTTREE tree)
void operator()(FPDF_SCHHANDLE handle)
void operator()(FPDF_TEXTPAGE text)
void(* FFI_GotoURL)(struct _FPDF_FORMFILLINFO *pThis, FPDF_DOCUMENT document, FPDF_WIDESTRING wsURL)
int(* FFI_SetTimer)(struct _FPDF_FORMFILLINFO *pThis, int uElapse, TimerCallback lpTimerFunc)
int(* FFI_GetLanguage)(struct _FPDF_FORMFILLINFO *pThis, void *language, int length)
void(* FFI_UploadTo)(struct _FPDF_FORMFILLINFO *pThis, FPDF_FILEHANDLER *fileHandler, int fileFlag, FPDF_WIDESTRING uploadTo)
void(* FFI_Invalidate)(struct _FPDF_FORMFILLINFO *pThis, FPDF_PAGE page, double left, double top, double right, double bottom)
void(* FFI_DisplayCaret)(struct _FPDF_FORMFILLINFO *pThis, FPDF_PAGE page, FPDF_BOOL bVisible, double left, double top, double right, double bottom)
void(* FFI_KillTimer)(struct _FPDF_FORMFILLINFO *pThis, int nTimerID)
void(* FFI_GetPageViewRect)(struct _FPDF_FORMFILLINFO *pThis, FPDF_PAGE page, double *left, double *top, double *right, double *bottom)
int(* FFI_GetPlatform)(struct _FPDF_FORMFILLINFO *pThis, void *platform, int length)
void(* FFI_SetCurrentPage)(struct _FPDF_FORMFILLINFO *pThis, FPDF_DOCUMENT document, int iCurPage)
void(* FFI_SetCursor)(struct _FPDF_FORMFILLINFO *pThis, int nCursorType)
void(* FFI_DoGoToAction)(struct _FPDF_FORMFILLINFO *pThis, int nPageIndex, int zoomMode, float *fPosArray, int sizeofArray)
void(* FFI_DoURIAction)(struct _FPDF_FORMFILLINFO *pThis, FPDF_BYTESTRING bsURI)
void(* FFI_OnFocusChange)(struct _FPDF_FORMFILLINFO *param, FPDF_ANNOTATION annot, int page_index)
int(* FFI_GetCurrentPageIndex)(struct _FPDF_FORMFILLINFO *pThis, FPDF_DOCUMENT document)
void(* FFI_EmailTo)(struct _FPDF_FORMFILLINFO *pThis, FPDF_FILEHANDLER *fileHandler, FPDF_WIDESTRING pTo, FPDF_WIDESTRING pSubject, FPDF_WIDESTRING pCC, FPDF_WIDESTRING pBcc, FPDF_WIDESTRING pMsg)
IPDF_JSPLATFORM * m_pJsPlatform
void(* FFI_SetTextFieldFocus)(struct _FPDF_FORMFILLINFO *pThis, FPDF_WIDESTRING value, FPDF_DWORD valueLen, FPDF_BOOL is_focus)
void(* FFI_OutputSelectedRect)(struct _FPDF_FORMFILLINFO *pThis, FPDF_PAGE page, double left, double top, double right, double bottom)
int(* FFI_GetRotation)(struct _FPDF_FORMFILLINFO *pThis, FPDF_PAGE page)
void(* FFI_DoURIActionWithKeyboardModifier)(struct _FPDF_FORMFILLINFO *param, FPDF_BYTESTRING uri, int modifiers)
void(* FFI_ExecuteNamedAction)(struct _FPDF_FORMFILLINFO *pThis, FPDF_BYTESTRING namedAction)
void(* FFI_OnChange)(struct _FPDF_FORMFILLINFO *pThis)
void(* Release)(struct _FPDF_FORMFILLINFO *pThis)
void(* FFI_PageEvent)(struct _FPDF_FORMFILLINFO *pThis, int page_count, FPDF_DWORD event_type)
unsigned short wHour
unsigned short wMinute
unsigned short wMonth
unsigned short wDay
unsigned short wYear
unsigned short wMilliseconds
unsigned short wDayOfWeek
unsigned short wSecond
void(* Doc_submitForm)(struct _IPDF_JsPlatform *pThis, void *formData, int length, FPDF_WIDESTRING URL)
unsigned int m_v8EmbedderSlot
int(* Doc_getFilePath)(struct _IPDF_JsPlatform *pThis, void *filePath, int length)
void(* Doc_gotoPage)(struct _IPDF_JsPlatform *pThis, int nPageNum)
void(* Doc_print)(struct _IPDF_JsPlatform *pThis, FPDF_BOOL bUI, int nStart, int nEnd, FPDF_BOOL bSilent, FPDF_BOOL bShrinkToFit, FPDF_BOOL bPrintAsImage, FPDF_BOOL bReverse, FPDF_BOOL bAnnotations)
void(* Doc_mail)(struct _IPDF_JsPlatform *pThis, void *mailData, int length, FPDF_BOOL bUI, FPDF_WIDESTRING To, FPDF_WIDESTRING Subject, FPDF_WIDESTRING CC, FPDF_WIDESTRING BCC, FPDF_WIDESTRING Msg)
int(* app_response)(struct _IPDF_JsPlatform *pThis, FPDF_WIDESTRING Question, FPDF_WIDESTRING Title, FPDF_WIDESTRING Default, FPDF_WIDESTRING cLabel, FPDF_BOOL bPassword, void *response, int length)
int(* app_alert)(struct _IPDF_JsPlatform *pThis, FPDF_WIDESTRING Msg, FPDF_WIDESTRING Title, int Type, int Icon)
void(* app_beep)(struct _IPDF_JsPlatform *pThis, int nType)
int(* Field_browse)(struct _IPDF_JsPlatform *pThis, void *filePath, int length)