wrapper for pdfium
- Posted by begin Feb 21, 2018
- 3251 views
hi, my second wrapper. it is for pdfium´- you can get the dll (32/64) easy, if you make an vs C++ project and import them with nuget. i use that for creating and reading pdf's. the libs are also available for linux etc. as far as i know.
i left the ugly comments in there, so that one has kind of a reference. my be some can use that.
include std/dll.e include std/machine.e include std/math.e -- CCopyright 2014 PDFium Authors. All rights reserved. -- Use of this source code is governed by a BSD-style license that can be -- found in the LICENSE file. -- Original code copyright 2014 Foxit Software Inc. http:--www.foxitsoftware.com -- NOTE: External docs refer to this file as "fpdfview.h", so do not rename -- despite lack of consistency with other public files. /* Macro FPDF_ARGB(a, r, g, b) ((((b) & 0xff) | (((g) & 0xff) << 8) | (((r) & 0xff) << 16) | (((a) & 0xff) << 24))) EndMacro Macro FPDF_GetBValue(argb) argb EndMacro Macro FPDF_GetGValue(argb) ((argb)) >> 8) EndMacro Macro FPDF_GetRValue(argb) ((argb) >> 16) EndMacro Macro FPDF_GetAValue(argb) ((argb) >> 24) EndMacro */ -- PDF_USE_XFA is set in confirmation that this version of PDFium can support -- XFA forms as requested by the PDF_ENABLE_XFA setting. public constant PDF_USE_XFA = 1 -- Policy for accessing the local machine time. public constant FPDF_POLICY_MACHINETIME_ACCESS = 0 public constant FPDF_ERR_SUCCESS = 0 -- No error. public constant FPDF_ERR_UNKNOWN = 1 -- Unknown error. public constant FPDF_ERR_FILE = 2 -- File not found or could not be opened. public constant FPDF_ERR_FORMAT = 3 -- File not in PDF format or corrupted. public constant FPDF_ERR_PASSWORD = 4 -- Password required or incorrect password. public constant FPDF_ERR_SECURITY = 5 -- Unsupported security scheme. public constant FPDF_ERR_PAGE = 6 -- Page not found or content error. public constant FPDF_ERR_XFALOAD = 7 -- Load XFA error. public constant FPDF_ERR_XFALAYOUT = 8 -- Layout XFA error. -- Page rendering flags. They can be combined with bit-wise OR. -- -- Set if annotations are to be rendered. public constant FPDF_ANNOT = 0x01 -- Set if using text rendering optimized for LCD display. public constant FPDF_LCD_TEXT = 0x02 -- Don't use the native text output available on some platforms public constant FPDF_NO_NATIVETEXT = 0x04 -- Grayscale output. public constant FPDF_GRAYSCALE = 0x08 -- Set if you want to get some debug info. public constant FPDF_DEBUG_INFO = 0x80 -- Set if you don't want to catch exceptions. public constant FPDF_NO_CATCH = 0x100 -- Limit image cache size. public constant FPDF_RENDER_LIMITEDIMAGECACHE = 0x200 -- Always use halftone for image stretching. public constant FPDF_RENDER_FORCEHALFTONE = 0x400 -- Render for printing. public constant FPDF_PRINTING = 0x800 -- Set to disable anti-aliasing on text. public constant FPDF_RENDER_NO_SMOOTHTEXT = 0x1000 -- Set to disable anti-aliasing on images. public constant FPDF_RENDER_NO_SMOOTHIMAGE = 0x2000 -- Set to disable anti-aliasing on paths. public constant FPDF_RENDER_NO_SMOOTHPATH = 0x4000 -- Set whether to render in a reverse Byte order, this flag is only used when rendering to a bitmap. public constant FPDF_REVERSE_BYTE_ORDER = 0x10 -- More DIB formats -- Gray scale bitmap, one byte per pixel. public constant FPDFBitmap_Gray = 1 -- 3 bytes per pixel, byte order: blue, green, red. public constant FPDFBitmap_BGR = 2 -- 4 bytes per pixel, byte order: blue, green, red, unused. public constant FPDFBitmap_BGRx = 3 -- 4 bytes per pixel, byte order: blue, green, red, alpha. public constant FPDFBitmap_BGRA = 4 public constant PDF_LINEARIZATION_UNKNOWN = -1 public constant PDF_NOT_LINEARIZED = 0 public constant PDF_LINEARIZED = 1 public constant PDF_DATA_ERROR = -1 public constant PDF_DATA_NOTAVAIL = 0 public constant PDF_DATA_AVAIL = 1 public constant PDF_FORM_ERROR = -1 public constant PDF_FORM_NOTAVAIL = 0 public constant PDF_FORM_AVAIL = 1 public constant PDF_FORM_NOTEXIST = 2 -- Unsupported action type. public constant PDFACTION_UNSUPPORTED = 0 -- Go to a destination within current document. public constant PDFACTION_GOTO = 1 -- Go to a destination within another document. public constant PDFACTION_REMOTEGOTO = 2 -- URI, including web pages and other Internet resources. public constant PDFACTION_URI = 3 -- Launch an application or open a file. public constant PDFACTION_LAUNCH = 4 -- The page object constants. public constant FPDF_PAGEOBJ_TEXT = 1 public constant FPDF_PAGEOBJ_PATH = 2 public constant FPDF_PAGEOBJ_IMAGE = 3 public constant FPDF_PAGEOBJ_SHADING = 4 public constant FPDF_PAGEOBJ_FORM = 5 -- Unsupported XFA form. public constant FPDF_UNSP_DOC_XFAFORM = 1 -- Unsupported portable collection. public constant FPDF_UNSP_DOC_PORTABLECOLLECTION = 2 -- Unsupported attachment. public constant FPDF_UNSP_DOC_ATTACHMENT = 3 -- Unsupported security. public constant FPDF_UNSP_DOC_SECURITY = 4 -- Unsupported shared review. public constant FPDF_UNSP_DOC_SHAREDREVIEW = 5 -- Unsupported shared form, acrobat. public constant FPDF_UNSP_DOC_SHAREDFORM_ACROBAT = 6 -- Unsupported shared form, filesystem. public constant FPDF_UNSP_DOC_SHAREDFORM_FILESYSTEM = 7 -- Unsupported shared form, email. public constant FPDF_UNSP_DOC_SHAREDFORM_EMAIL = 8 -- Unsupported 3D annotation. public constant FPDF_UNSP_ANNOT_3DANNOT = 11 -- Unsupported movie annotation. public constant FPDF_UNSP_ANNOT_MOVIE = 12 -- Unsupported sound annotation. public constant FPDF_UNSP_ANNOT_SOUND = 13 -- Unsupported screen media annotation. public constant FPDF_UNSP_ANNOT_SCREEN_MEDIA = 14 -- Unsupported screen rich media annotation. public constant FPDF_UNSP_ANNOT_SCREEN_RICHMEDIA = 15 -- Unsupported attachment annotation. public constant FPDF_UNSP_ANNOT_ATTACHMENT = 16 -- Unsupported signature annotation. public constant FPDF_UNSP_ANNOT_SIG = 17 -- Unknown page mode. public constant PAGEMODE_UNKNOWN = -1 -- Document outline, and thumbnails hidden. public constant PAGEMODE_USENONE = 0 -- Document outline visible. public constant PAGEMODE_USEOUTLINES = 1 -- Thumbnail images visible. public constant PAGEMODE_USETHUMBS = 2 -- Full-screen mode, no menu bar, window controls, or other decorations visible. public constant PAGEMODE_FULLSCREEN = 3 -- Optional content group panel visible. public constant PAGEMODE_USEOC = 4 -- Attachments panel visible. public constant PAGEMODE_USEATTACHMENTS = 5 -- Flatten operation failed. public constant FLATTEN_FAIL = 0 -- Flatten operation succeed. public constant FLATTEN_SUCCESS = 1 -- Nothing to be flattened. public constant FLATTEN_NOTHINGTODO = 2 -- Flatten for normal display. public constant FLAT_NORMALDISPLAY = 0 -- Flatten for print. public constant FLAT_PRINT = 1 public constant DOCTYPE_PDF = 0 -- Normal pdf Document public constant DOCTYPE_DYNAMIC_XFA = 1 -- Dynamic xfa Document Type public constant DOCTYPE_STATIC_XFA = 2 -- Static xfa Document Type -- Flags for Cursor type public constant FXCT_ARROW = 0 public constant FXCT_NESW = 1 public constant FXCT_NWSE = 2 public constant FXCT_VBEAM = 3 public constant FXCT_HBEAM = 4 public constant FXCT_HAND = 5 -- XFA -- Pageview event flags -- After a new pageview is added. public constant FXFA_PAGEVIEWEVENT_POSTADDED = 1 -- After a pageview is removed. public constant FXFA_PAGEVIEWEVENT_POSTREMOVED = 3 -- menu -- Macro Definitions For Right Context Menu Features Of XFA Fields public constant FXFA_MENU_COPY = 1 public constant FXFA_MENU_CUT = 2 public constant FXFA_MENU_SELECTALL = 4 public constant FXFA_MENU_UNDO = 8 public constant FXFA_MENU_REDO = 16 public constant FXFA_MENU_PASTE = 32 -- file type -- Macro Definitions For File Type. public constant FXFA_SAVEAS_XML = 1 public constant FXFA_SAVEAS_XDP = 2 -- additional actions type of document. public constant FPDFDOC_AACTION_WC = 0x10 -- WC, before closing document, JavaScript action. public constant FPDFDOC_AACTION_WS = 0x11 -- WS, before saving document, JavaScript action. public constant FPDFDOC_AACTION_DS = 0x12 -- DS, after saving document, JavaScript action. public constant FPDFDOC_AACTION_WP = 0x13 -- WP, before printing document, JavaScript action. public constant FPDFDOC_AACTION_DP = 0x14 -- DP, after printing document, JavaScript action. -- Additional-action types of page object public constant FPDFPAGE_AACTION_OPEN = 0 -- /O -- An action to be performed when the page is opened public constant FPDFPAGE_AACTION_CLOSE = 1 -- /C -- An action to be performed when the page is closed -- Field Types public constant FPDF_FORMFIELD_UNKNOWN = 0 -- Unknown. public constant FPDF_FORMFIELD_PUSHBUTTON = 1 -- push button type. public constant FPDF_FORMFIELD_CHECKBOX = 2 -- check box type. public constant FPDF_FORMFIELD_RADIOBUTTON = 3 -- radio button type. public constant FPDF_FORMFIELD_COMBOBOX = 4 -- combo box type. public constant FPDF_FORMFIELD_LISTBOX = 5 -- list box type. public constant FPDF_FORMFIELD_TEXTFIELD = 6 -- text field type. public constant FPDF_FORMFIELD_XFA = 7 -- text field type. -- Flags for progressive process status. public constant FPDF_RENDER_READER = 0 public constant FPDF_RENDER_TOBECOUNTINUED = 1 public constant FPDF_RENDER_DONE = 2 public constant FPDF_RENDER_FAILED = 3 -- Incremental. public constant FPDF_INCREMENTAL = 1 -- No Incremental. public constant FPDF_NO_INCREMENTAL = 2 -- Remove security. public constant FPDF_REMOVE_SECURITY = 3 -- Character sets For the font public constant FXFONT_ANSI_CHARSET = 0 public constant FXFONT_DEFAULT_CHARSET = 1 public constant FXFONT_SYMBOL_CHARSET = 2 public constant FXFONT_SHIFTJIS_CHARSET = 128 public constant FXFONT_HANGEUL_CHARSET = 129 public constant FXFONT_GB2312_CHARSET = 134 public constant FXFONT_CHINESEBIG5_CHARSET = 136 -- Font pitch And family flags public constant FXFONT_FF_FIXEDPITCH = 1 public constant FXFONT_FF_ROMAN = shift_bits(1, -4) public constant FXFONT_FF_SCRIPT = shift_bits(4, -4) -- Typical weight values public constant FXFONT_FW_NORMAL = 400 public constant FXFONT_FW_BOLD = 700 -- Flags used by FPDFText_FindStart function. public constant FPDF_MATCHCASE = 0x00000001 -- If not set, it will not match case by default. public constant FPDF_MATCHWHOLEWORD = 0x00000002 -- If not set, it will not match the whole word by default. -- PDF types -- typedef void* FPDF_ACTION-- -- typedef void* FPDF_BITMAP-- -- typedef void* FPDF_BOOKMARK-- -- typedef void* FPDF_CLIPPATH-- -- typedef void* FPDF_DEST-- -- typedef void* FPDF_DOCSCHHANDLE-- -- typedef void* FPDF_DOCUMENT-- -- typedef void* FPDF_FONT-- -- typedef void* FPDF_HMODULE-- -- typedef void* FPDF_LINK-- -- typedef void* FPDF_MODULEMGR-- -- typedef void* FPDF_PAGE-- -- typedef void* FPDF_PAGELINK-- -- typedef void* FPDF_PAGEOBJECT-- -- Page object(text, path, etc) -- typedef void* FPDF_PAGERANGE-- -- typedef void* FPDF_PATH-- -- typedef void* FPDF_RECORDER-- -- typedef void* FPDF_SCHHANDLE-- -- typedef void* FPDF_TEXTPAGE-- -- typedef void* FPDF_STRINGHANDLE-- -- typedef void* FPDF_WIDGET-- -- Basic data types -- typedef int FPDF_BOOL-- -- typedef int FPDF_ERROR-- -- typedef unsigned long FPDF_DWORD-- -- typedef float FS_FLOAT-- -- typedef void* FPDF_LPVOID-- -- typedef void const* FPDF_LPCVOID-- -- typedef char const* FPDF_LPCSTR-- -- typedef int FPDF_RESULT-- -- Duplex types enum type FPDF_DUPLEXTYPE DuplexUndefined = 0, Simplex, DuplexFlipShortEdge, DuplexFlipLongEdge end type -- String types --typedef unsigned short FPDF_WCHAR-- --typedef unsigned char const* FPDF_LPCBYTE-- -- FPDFSDK may use three types of strings: byte string, wide string (UTF-16LE -- encoded), and platform dependent string --typedef const char* FPDF_BYTESTRING-- -- FPDFSDK always uses UTF-16LE encoded wide strings, each character uses 2 -- bytes (except surrogation), with the low byte first. --typedef const unsigned short* FPDF_WIDESTRING-- -- Structure for a byte string. -- Note, a byte string commonly means a UTF-16LE formated string. /*************************************************************** Structure FPDF_BSTR -- String buffer. *str -- Length of the string, in bytes. len.l EndStructure ***************************************************************/ public constant SizeOf_FPDF_BSTR = 12 -- For Windows programmers: In most cases it's OK to treat FPDF_WIDESTRING as a -- Windows unicode string, however, special care needs to be taken if you -- expect to process Unicode larger than 0xffff. -- -- For Linux/Unix programmers: most compiler/library environments use 4 bytes -- for a Unicode character, and you have to convert between FPDF_WIDESTRING and -- system wide string by yourself. --typedef const char* FPDF_STRING-- -- Matrix for transformation. /*************************************************************** Structure FS_MATRIX a.f b.f c.f d.f e.f f.f EndStructure ***************************************************************/ public constant SizeOf_FS_MATRIX = 24 -- Rectangle area(float) in device or page coordinate system. /*************************************************************** Structure FS_RECTF -- The x-coordinate of the left-top corner. left.f -- The y-coordinate of the left-top corner. top.f -- The x-coordinate of the right-bottom corner. right.f -- The y-coordinate of the right-bottom corner. bottom.f EndStructure --* FS_LPRECTF, FS_RECTF ***************************************************************/ public constant SizeOf_FS_RECTF = 16 -- Const Pointer to FS_RECTF structure. --typedef const FS_RECTF* FS_LPCRECTF-- -- Process-wide options for initializing the library. /*************************************************************** Structure FPDF_LIBRARY_CONFIG -- Version number of the interface. Currently must be 2. version.l -- Array of paths to scan in place of the defaults when using built-in -- FXGE font loading code. The array is terminated by a NULL pointer. -- The Array may be NULL itself to use the default paths. May be ignored -- entirely depending upon the platform. --*m_pUserFontPaths -- Version 2. -- pointer to the v8::Isolate to use, or NULL to force PDFium to create one. --m_pIsolate-- -- The embedder data slot to use in the v8::Isolate to store PDFium's -- per-isolate data. The value needs to be between 0 and -- v8::Internals::kNumIsolateDataLots (exclusive). Note that 0 is fine -- for most embedders. m_v8EmbedderSlot.l-- EndStructure ***************************************************************/ public constant SizeOf_FPDF_LIBRARY_CONFIG = 8 -- Prototype.i m_GetBlock(*param, position.i, *pBuf, size.i) -- Structure for custom file access. /*************************************************************** Structure FPDF_FILEACCESS -- File length, in bytes. m_FileLen.i -- A function pointer for getting a block of data from a specific position. -- Position is specified by byte offset from the beginning of the file. -- The position and size will never go out of range of the file length. -- It may be possible for FPDFSDK to call this function multiple times for -- the same position. -- Return value: should be non-zero if successful, zero for error. fptr.m_GetBlock --Int (*m_GetBlock)(void* param, unsigned long position, unsigned char* pBuf, unsigned long size)-- -- A custom pointer for all implementation specific data. This pointer will -- be used as the first parameter to the m_GetBlock callback. *m_Param-- EndStructure ***************************************************************/ public constant SizeOf_FPDF_FILEACCESS = 24 -- Prototype Release(*clientData) -- Prototype.l GetSize(*clientData) -- Prototype.l ReadBlock(*clientData, offset.i, *buffer, size.i) -- Prototype.l WriteBlock(*clientData, offset.i, *buffer, size.i) -- Prototype.l Flush(*clientData) -- Prototype.l Truncate(*clientData, size.i) -- -- Structure For file reading Or writing (I/O). -- -- This is a handler And should be implemented by callers. -- /*************************************************************** Structure FPDF_FILEHANDLER -- -- User-defined Data. -- Callers can use this field To track controls. -- --clientData-- -- -- Callback function To release the current file stream object. -- param[in] clientData Pointer To user-defined Data. -- return None. -- fptr0.Release --void (*Release)(FPDF_LPVOID clientData)-- -- -- Callback function To retrieve the current file stream size. -- param[in] clientData Pointer To user-defined Data. -- return Size of file stream. -- fptr1.GetSize --FPDF_DWORD (*GetSize)(FPDF_LPVOID clientData) -- -- Callback function To Read Data from the current file stream. -- param[in] clientData Pointer To user-defined Data. -- param[in] offset Offset position starts from the beginning of file stream. This parameter indicates reading position. -- param[in] buffer Memory buffer To store Data which are Read from file stream. This parameter should Not be <b>NULL</b>. -- param[in] size Size of Data which should be Read from file stream, in bytes. The buffer indicated by the parameter <i>buffer</i> -- should be enough To store specified Data. -- return 0 For success, other value For failure. -- fptr2.ReadBlock --(*ReadBlock)(FPDF_LPVOID clientData, FPDF_DWORD offset, FPDF_LPVOID buffer, FPDF_DWORD size) -- -- Callback function To write Data into the current file stream. -- param[in] clientData Pointer To user-defined Data. -- param[in] offset Offset position starts from the beginning of file stream. This parameter indicates writing position. -- param[in] buffer Memory buffer contains Data which is written into file stream. This parameter should Not be <b>NULL</b>. -- param[in] size Size of Data which should be written into file stream, in bytes. -- return 0 For success, other value For failure. -- fptr3.WriteBlock --FPDF_RESULT (*WriteBlock)(FPDF_LPVOID clientData, FPDF_DWORD offset, FPDF_LPCVOID buffer, FPDF_DWORD size)-- -- -- Callback function To flush all internal accessing buffers. -- param[in] clientData Pointer To user-defined Data. -- return 0 For success, other value For failure. -- fptr4.Flush --FPDF_RESULT (*Flush)(FPDF_LPVOID clientData)-- -- -- Callback function To change file size. details This function is called under writing mode usually. Implementer can determine whether To realize it based on application requests. -- param[in] clientData Pointer To user-defined Data. -- param[in] size New size of file stream, in bytes. -- return 0 For success, other value For failure. -- fptr5.Truncate --FPDF_RESULT (*Truncate)(FPDF_LPVOID clientData, FPDF_DWORD size)-- EndStructure -- FPDF_FILEHANDLER,--FPDF_LPFILEHANDLER-- ***************************************************************/ public constant SizeOf_FPDF_FILEHANDLER = 48 ---------------------------------------------------------------------------------------------------------------------------------- -- prototype.l IsDataAvail(*pThis.FX_FILEAVAIL, offset.i, size.i) ---------------------------------------------------------------------------------------------------------------------------------- -- Prototype.l IsDataAvail(*pThis, offset.i, size.i) -- Interface for checking whether sections of the file are available. /*************************************************************** Structure FX_FILEAVAIL -- Version number of the interface. Must be 1. version.l -- Reports if the specified data section is currently available. A section is -- available if all bytes in the section are available. -- -- Interface Version: 1 -- Implementation Required: Yes -- -- pThis - pointer to the interface structure. -- offset - the offset of the data section in the file. -- size - the size of the data section. -- -- Returns true if the specified data section at |offset| of |size| -- is available. fptr.IsDataAvail -- FPDF_BOOL (*IsDataAvail)(structure _FX_FILEAVAIL* pThis, size_t offset, size_t size)-- EndStructure --FX_FILEAVAIL --typedef void* FPDF_AVAIL-- ***************************************************************/ public constant SizeOf_FX_FILEAVAIL = 12 ---------------------------------------------------------------------------------------------------------------------------------- --prototype AddSegment(*pThis.FX_DOWNLOADHINTS, offset.i, size.i) ---------------------------------------------------------------------------------------------------------------------------------- -- Prototype AddSegment(*pThis, offset.i, size.i) -- Download hints interface. Used to receive hints for further downloading. /*************************************************************** Structure FX_DOWNLOADHINTS -- Version number of the interface. Must be 1. version.l -- Add a section to be downloaded. -- -- Interface Version: 1 -- Implementation Required: Yes -- -- pThis - pointer to the interface structure. -- offset - the offset of the hint reported to be downloaded. -- size - the size of the hint reported to be downloaded. -- -- The |offset| and |size| of the section may not be unique. Part of the -- section might be already available. The download manager must deal with -- overlapping sections. fptr.AddSegment-- void (*AddSegment)(structure _FX_DOWNLOADHINTS* pThis, size_t offset, size_t size)-- EndStructure ***************************************************************/ public constant SizeOf_FX_DOWNLOADHINTS = 12 /*************************************************************** Structure FS_QUADPOINTSF x1.f y1.f x2.f y2.f x3.f y3.f x4.f y4.f EndStructure ***************************************************************/ public constant SizeOf_FS_QUADPOINTSF = 32 ---------------------------------------------------------------------------------------------------------------------------------- --prototype FSDK_UnSupport_Handler(*pThis.UNSUPPORT_INFO, nType.l) ---------------------------------------------------------------------------------------------------------------------------------- -- Prototype FSDK_UnSupport_Handler(*pThis, nType.l) -- Interface for unsupported feature notifications. /*************************************************************** Structure UNSUPPORT_INFO -- Version number of the interface. Must be 1. version.l -- Unsupported object notification function. -- Interface Version: 1 -- Implementation Required: Yes -- -- pThis - pointer to the interface structure. -- nType - the type of unsupported object. One of the |FPDF_UNSP_*| entries. fptr.FSDK_UnSupport_Handler -- void (*FSDK_UnSupport_Handler)(structure _UNSUPPORT_INFO* pThis, int nType)-- EndStructure ***************************************************************/ public constant SizeOf_UNSUPPORT_INFO = 12 --typedef void* FPDF_FORMHANDLE-- -- -- Prototype.l app_alert(*pThis.IPDF_JsPlatform, *Msg.string, *Title.string, Type.l, Icon.l)-- -- -- Prototype app_beep(*pThis.IPDF_JsPlatform, nType.l) -- -- Prototype.l app_response(*pThis.IPDF_JsPlatform, *Question.string, *Title.string, *Default.string, *cLabel.string, bPassword.l, void* response, int length) -- -- Prototype.l Doc_getFilePath(*pThis.IPDF_JsPlatform, *filePath, length.l) -- -- Prototype Doc_mail(*pThis.IPDF_JsPlatform, *mailData, length.l, bUI.l, *To.string, *Subject.string, *CC.string, *BCC.string, *Msg.string) -- -- Prototype Doc_print(*pThis.IPDF_JsPlatform, bUI.l, nStart.l, int nEnd, bSilent.l, bShrinkToFit.l, bPrintAsImage.l, bReverse.l, bAnnotations.l)-- -- -- Prototype Doc_submitForm(*pThis.IPDF_JsPlatform, *formData, length.l, *URL.string) -- -- Prototype Doc_gotoPage(*pThis.IPDF_JsPlatform, nPageNum.l) -- -- Prototype.l Field_browse(*pThis.IPDF_JsPlatform, *filePath, length.l) -- Prototype.l app_alert(*pThis, *Msg.string, *Title.string, Type.l, Icon.l)-- -- Prototype app_beep(*pThis, nType.l) -- Prototype.l app_response(*pThis, *Question.string, *Title.string, *Default.string, *cLabel.string, bPassword.l, *response, length.l) -- Prototype.l Doc_getFilePath(*pThis, *filePath, length.l) -- Prototype Doc_mail(*pThis, *mailData, length.l, bUI.l, *To.string, *Subject.string, *CC.string, *BCC.string, *Msg.string) -- Prototype Doc_print(*pThis, bUI.l, nStart.l, nEnd.l, bSilent.l, bShrinkToFit.l, bPrintAsImage.l, bReverse.l, bAnnotations.l) -- Prototype Doc_submitForm(*pThis, *formData, length.l, *URL.string) -- Prototype Doc_gotoPage(*pThis, nPageNum.l) -- Prototype.l Field_browse(*pThis, *filePath, length.l) /*************************************************************** Structure IPDF_JSPLATFORM --IPDF_JsPlatform -- -- Version number of the Interface. Currently must be 2. -- version.l -- Version 1. -- -- Method: app_alert -- pop up a dialog To show warning Or hint. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself -- Msg - A string containing the message To be displayed. -- Title - The title of the dialog. -- Type - The stype of button group. -- 0-OK(Default)-- -- 1-OK,Cancel-- -- 2-Yes,NO-- -- 3-Yes, NO, Cancel. -- nIcon - The Icon type. -- 0-Error(Default)-- -- 1-Warning-- -- 2-Question-- -- 3-Status. -- 4-Asterisk -- Return Value: -- The Return value could be the folowing type: -- 1-OK-- -- 2-Cancel-- -- 3-NO-- -- 4-Yes-- -- fptr.app_alert --Int (*app_alert)(structure _IPDF_JsPlatform* pThis, FPDF_WIDESTRING Msg, FPDF_WIDESTRING Title, int Type, int Icon)-- -- -- Method: app_beep -- Causes the system To play a sound. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself -- nType - The sound type. -- 0 - Error -- 1 - Warning -- 2 - Question -- 3 - Status -- 4 - Default (Default value) -- Return Value: -- None -- fptr1.app_beep -- void (*app_beep)(structure _IPDF_JsPlatform* pThis, int nType)-- -- -- Method: app_response -- Displays a dialog box containing a question And an entry field For -- the user To reply To the question. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself -- Question - The question To be posed To the user. -- Title - The title of the dialog box. -- Default - A Default value For the answer To the question. If -- Not specified, no Default value is presented. -- cLabel - A short string To appear in front of And on the -- same line As the edit text field. -- bPassword - If true, indicates that the user's response should -- show As asterisks (*) Or bullets (?) To mask the response, which might be -- sensitive information. The Default is false. -- response - A string buffer allocated by SDK, To receive the -- user's response. -- length - The length of the buffer, number of bytes. -- Currently, It's always be 2048. -- Return Value: -- Number of bytes the complete user input would actually require, Not -- including trailing zeros, regardless of the value of the length -- parameter Or the presence of the response buffer. -- Comments: -- No matter on what platform, the response buffer should be always -- written using UTF-16LE encoding. If a response buffer is -- present And the size of the user input exceeds the capacity of the -- buffer As specified by the length parameter, only the -- first "length" bytes of the user input are To be written To the -- buffer. -- fptr2.app_response -- Int (*app_response)(structure _IPDF_JsPlatform* pThis, FPDF_WIDESTRING Question, FPDF_WIDESTRING Title, FPDF_WIDESTRING Default, FPDF_WIDESTRING cLabel, FPDF_BOOL bPassword, void* response, int length)-- -- -- Method: Doc_getFilePath -- Get the file path of the current document. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself -- filePath - The string buffer To receive the file path. Can be -- NULL. -- length - The length of the buffer, number of bytes. Can be -- 0. -- Return Value: -- Number of bytes the filePath consumes, including trailing zeros. -- Comments: -- The filePath should be always input in local encoding. -- -- The Return value always indicated number of bytes required For the -- buffer, even when there is -- no buffer specified, Or the buffer size is less then required. In this -- Case, the buffer will Not -- be modified. -- fptr3.Doc_getFilePath -- Int (*Doc_getFilePath)(structure _IPDF_JsPlatform* pThis, void* filePath, int length)-- -- -- Method: Doc_mail -- Mails the Data buffer As an attachment To all recipients, With Or -- without user interaction. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself -- mailData - Pointer To the Data buffer To be sent.Can be NULL. -- length - The size,in bytes, of the buffer pointed by -- mailData parameter.Can be 0. -- bUI - If true, the rest of the parameters are used in a -- compose-new-message window that is displayed To the user. If false, the cTo -- parameter is required And all others are optional. -- To - A semicolon-delimited List of recipients For the -- message. -- Subject - The subject of the message. The length limit is 64 -- KB. -- CC - A semicolon-delimited List of CC recipients For -- the message. -- BCC - A semicolon-delimited List of BCC recipients For -- the message. -- Msg - The content of the message. The length limit is 64 -- KB. -- Return Value: -- None. -- Comments: -- If the parameter mailData is NULL Or length is 0, the current -- document will be mailed As an attachment To all recipients. -- fptr4.Doc_mail -- void (*Doc_mail)(structure _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)-- -- -- Method: Doc_print -- Prints all Or a specific number of pages of the document. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- bUI - If true, will cause a UI To be presented To the -- user To obtain printing information And confirm the action. -- nStart - A 0-based index that defines the start of an -- inclusive range of pages. -- nEnd - A 0-based index that defines the End of an -- inclusive page range. -- bSilent - If true, suppresses the cancel dialog box While -- the document is printing. The Default is false. -- bShrinkToFit - If true, the page is shrunk (If necessary) To -- fit within the imageable area of the printed page. -- bPrintAsImage - If true, print pages As an image. -- bReverse - If true, print from nEnd To nStart. -- bAnnotations - If true (the Default), annotations are -- printed. -- fptr5.Doc_print -- void (*Doc_print)(structure _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)-- -- -- Method: Doc_submitForm -- Send the form Data To a specified URL. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself -- formData - Pointer To the Data buffer To be sent. -- length - The size,in bytes, of the buffer pointed by -- formData parameter. -- URL - The URL To send To. -- Return Value: -- None. -- -- fptr6.Doc_submitForm -- void (*Doc_submitForm)(structure _IPDF_JsPlatform* pThis, void* formData, int length, FPDF_WIDESTRING URL)-- -- -- Method: Doc_gotoPage -- Jump To a specified page. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself -- nPageNum - The specified page number, zero For the first -- page. -- Return Value: -- None. -- -- fptr7.Doc_gotoPage -- void (*Doc_gotoPage)(structure _IPDF_JsPlatform* pThis, int nPageNum)-- -- -- Method: Field_browse -- Show a file selection dialog, And Return the selected file path. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- filePath - Pointer To the Data buffer To receive the file -- path.Can be NULL. -- length - The length of the buffer, number of bytes. Can be -- 0. -- Return Value: -- Number of bytes the filePath consumes, including trailing zeros. -- Comments: -- The filePath shoule be always input in local encoding. -- fptr8.Field_browse -- Int (*Field_browse)(structure _IPDF_JsPlatform* pThis, void* filePath, int length)-- -- -- pointer To FPDF_FORMFILLINFO Interface. -- *m_pFormfillinfo-- -- Version 2. *m_isolate-- -- Unused in v3, retain for compatibility. m_v8EmbedderSlot.l -- Unused in v3, retain for compatibility. -- Version 3. -- Version 3 moves m_Isolate And m_v8EmbedderSlot To FPDF_LIBRARY_CONFIG. EndStructure ***************************************************************/ public constant SizeOf_IPDF_JSPLATFORM = 96 /*************************************************************** -- Declares of a structure type To the local system time. Structure FPDF_SYSTEMTIME wYear.l -- years since 1900 wMonth.l -- months since January - [0,11] wDayOfWeek.l -- days since Sunday - [0,6] wDay.l -- day of the month - [1,31] wHour.l -- hours since midnight - [0,23] wMinute.l -- minutes after the hour - [0,59] wSecond.l -- seconds after the minute - [0,59] wMilliseconds.l -- milliseconds after the second - [0,999] EndStructure ***************************************************************/ public constant SizeOf_FPDF_SYSTEMTIME = 32 -- Prototype lpTimerFunc()-- TimerCallback lpTimerFunc -- Prototype ReleaseFORMFILLINFO(*pThis) -- Prototype FFI_Invalidate(*pThis, *page, left.d, top.d, right.d, bottom.d) -- Prototype FFI_OutputSelectedRect(*pThis, *page, left.d, top.d, right.d, bottom.d) -- Prototype FFI_SetCursor(*pThis, nCursorType.l) -- Prototype.l FFI_SetTimer(*pThis, uElapse.l, TimerCallback.lpTimerFunc) -- Prototype FFI_KillTimer(*pThis, nTimerID.l) -- Prototype.i FFI_GetLocalTime(*pThis) -- Prototype FFI_OnChange(*pThis) -- Prototype.i FFI_GetPage(*pThis, *document, nPageIndex.l) -- Prototype.i FFI_GetCurrentPage(*pThis, *document) -- Prototype.l FFI_GetRotation(*pThis, *page) -- Prototype FFI_ExecuteNamedAction(*pThis, *namedAction.string) -- Prototype FFI_SetTextFieldFocus(*pThis, *stringvalue.string, valueLen.i, is_focus.l) -- Prototype FFI_DoURIAction(*pThis, *bsURI.p-ascii) -- Prototype FFI_DoGoToAction(*pThis, nPageIndex.l, zoomMode.l, *fPosArray.float, sizeofArray.l) -- Prototype FFI_DisplayCaret(*pThis, *page, bVisible.l, left.d, top.d, right.d, bottom.d) -- Prototype.l FFI_GetCurrentPageIndex(*pThis, *document) -- Prototype FFI_SetCurrentPage(*pThis, *document, iCurPage.l) -- Prototype FFI_GotoURL(*pThis, *document, *wsURL.string) -- Prototype FFI_GetPageViewRect(*pThis, *page, *left.double, *top.double, *right.double, *bottom.double) -- Prototype FFI_PageEvent(*pThis, page_count.l, event_type.i) -- Prototype.l FFI_PopupMenu(*pThis, *page, *hWidget, menuFlag.l, x.f, y.f) -- Prototype.i FFI_OpenFile(*pThis, fileFlag.l, *wsURL.string, mode.p-ascii) -- Prototype FFI_EmailTo(*pThis, *fileHandler.FPDF_FILEHANDLER, *pTo.string, *pSubject.string, *pCC.string, *pBcc.string, *pMsg.string) -- Prototype FFI_UploadTo(*pThis, *fileHandler.FPDF_FILEHANDLER, fileFlag.l, *uploadTo.string) -- Prototype.l FFI_GetPlatform(*pThis, *platform, length.l) -- Prototype.l FFI_GetLanguage(*pThis, *language, length.l) -- Prototype.i FFI_DownloadFromURL(*pThis, *URL.string) -- Prototype.l FFI_PostRequestURL(*pThis, *wsURL.string, *wsData.string, *wsContentType.string, *wsEncode.string, *wsHeader.string, *respone.FPDF_BSTR) -- Prototype.l FFI_PutRequestURL(*pThis, *wsURL.string, *wsData.string, *wsEncode.string) /*************************************************************** Structure FPDF_FORMFILLINFO -- -- Version number of the Interface. Currently must be 1 (when PDFium is built -- without the XFA Module) Or must be 2 (when built With the XFA Module). -- version.l -- Version 1. -- --Method: Release -- Give implementation a chance To release any Data after the -- Interface is no longer used --Interface Version: -- 1 --Implementation Required: -- No --Comments: -- Called by Foxit SDK during the final cleanup process. --Parameters: -- pThis - Pointer To the Interface Structure itself --Return Value: -- None -- fptr.ReleaseFORMFILLINFO -- void (*ReleaseFORMFILLINFO)(structure _FPDF_FORMFILLINFO* pThis)-- -- -- Method: FFI_Invalidate -- Invalidate the client area within the specified rectangle. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- left - Left position of the client area in PDF page --coordinate. -- top - Top position of the client area in PDF page --coordinate. -- right - Right position of the client area in PDF page --coordinate. -- bottom - Bottom position of the client area in PDF page --coordinate. -- Return Value: -- None. -- --comments: -- All positions are measured in PDF "user space". -- Implementation should call FPDF_RenderPageBitmap() function For repainting a specified page area. -- fptr1.FFI_Invalidate -- void (*FFI_Invalidate)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, double left, double top, double right, double bottom)-- -- -- Method: FFI_OutputSelectedRect -- When user is taking the mouse To Select texts on a form field, * this callback function will keep -- returning the selected areas To the implementation. -- -- Interface Version: -- 1 -- Implementation Required: -- No -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- page - Handle To the page. Returned by FPDF_LoadPage -- function. -- left - Left position of the client area in PDF page -- coordinate. -- top - Top position of the client area in PDF page -- coordinate. -- right - Right position of the client area in PDF page -- coordinate. -- bottom - Bottom position of the client area in PDF page -- coordinate. -- Return Value: -- None. -- -- comments: -- This CALLBACK function is useful For implementing special text -- selection effect. Implementation should -- first records the returned rectangles, then draw them one by one -- at the painting period, last,remove all -- the recorded rectangles when finish painting. -- fptr2.FFI_OutputSelectedRect -- void (*FFI_OutputSelectedRect)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, double left, double top, double right, double bottom)-- -- -- Method: FFI_SetCursor -- Set the Cursor shape. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- nCursorType - Cursor type. see Flags For Cursor type For the -- details. -- Return value: -- None. -- fptr3.FFI_SetCursor -- void (*FFI_SetCursor)(structure _FPDF_FORMFILLINFO* pThis, int nCursorType)-- -- -- Method: FFI_SetTimer -- This method installs a system timer. An interval value is specified, * And every time that interval elapses, the system must call into the -- callback function With the timer ID As returned by this function. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- uElapse - Specifies the time-out value, in milliseconds. -- lpTimerFunc - A pointer To the callback function-TimerCallback. -- Return value: -- The timer identifier of the new timer If the function is successful. -- An application passes this value To the FFI_KillTimer method To kill -- the timer. Nonzero If it is successful-- otherwise, it is zero. -- fptr4.FFI_SetTimer -- Int (*FFI_SetTimer)(structure _FPDF_FORMFILLINFO* pThis, int uElapse, TimerCallback lpTimerFunc)-- -- -- Method: FFI_KillTimer -- This method uninstalls a system timer identified by nIDEvent, As -- set by an earlier call To FFI_SetTimer. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- nTimerID - The timer ID returned by FFI_SetTimer function. -- Return value: -- None. -- fptr5.FFI_KillTimer -- void (*FFI_KillTimer)(structure _FPDF_FORMFILLINFO* pThis, int nTimerID)-- -- -- Method: FFI_GetLocalTime -- This method receives the current local time on the system. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- Return value: -- None. -- fptr6.FFI_GetLocalTime -- FPDF_SYSTEMTIME (*FFI_GetLocalTime)(structure _FPDF_FORMFILLINFO* pThis)-- -- -- Method: FFI_OnChange -- This method will be invoked To notify implementation when the -- value of any FormField on the document had been changed. -- Interface Version: -- 1 -- Implementation Required: -- no -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- Return value: -- None. -- fptr7.FFI_OnChange -- void (*FFI_OnChange)(structure _FPDF_FORMFILLINFO* pThis)-- -- -- Method: FFI_GetPage -- This method receives the page pointer associated With a specified -- page index. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- document - Handle To document. Returned by FPDF_LoadDocument -- function. -- nPageIndex - Index number of the page. 0 For the first page. -- Return value: -- Handle To the page. Returned by FPDF_LoadPage function. -- Comments: -- In some cases, the document-level JavaScript action may refer To a -- page which hadn't been loaded yet. -- To successfully run the javascript action, implementation need To load -- the page For SDK. -- fptr8.FFI_GetPage -- FPDF_PAGE (*FFI_GetPage)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document, int nPageIndex)-- -- -- Method: FFI_GetCurrentPage -- This method receives the current page pointer. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- document - Handle To document. Returned by FPDF_LoadDocument -- function. -- Return value: -- Handle To the page. Returned by FPDF_LoadPage function. -- fptr9.FFI_GetCurrentPage -- FPDF_PAGE (*FFI_GetCurrentPage)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document)-- -- -- Method: FFI_GetRotation -- This method receives currently rotation of the page view. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- page - Handle To page. Returned by FPDF_LoadPage function. -- Return value: -- The page rotation. Should be 0(0 degree),1(90 degree),2(180 -- degree),3(270 degree), in a clockwise direction. -- -- Note: Unused. -- fptr10.FFI_GetRotation -- Int (*FFI_GetRotation)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page)-- -- -- Method: FFI_ExecuteNamedAction -- This method will execute an named action. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- namedAction - A byte string which indicates the named action, * terminated by 0. -- Return value: -- None. -- Comments: -- See the named actions description of <<PDF Reference, version 1.7>> -- For more details. -- fptr11.FFI_ExecuteNamedAction -- void (*FFI_ExecuteNamedAction)(structure _FPDF_FORMFILLINFO* pThis, FPDF_BYTESTRING namedAction)-- -- -- @brief This method will be called when a text field is getting Or losing a -- focus. -- -- @param[in] pThis Pointer To the Interface Structure itself. -- @param[in] value The string value of the form field, in UTF-16LE -- format. -- @param[in] valueLen The length of the string value, number of characters -- (Not bytes). -- @param[in] is_focus True If the form field is getting a focus, False For -- losing a focus. -- -- @return None. -- -- @note Currently,only support text field And combobox field. -- fptr12.FFI_SetTextFieldFocus -- void (*FFI_SetTextFieldFocus)(structure _FPDF_FORMFILLINFO* pThis, FPDF_WIDESTRING value, FPDF_DWORD valueLen, FPDF_BOOL is_focus)-- -- -- Method: FFI_DoURIAction -- This action resolves To a uniform resource identifier. -- Interface Version: -- 1 -- Implementation Required: -- No -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- bsURI - A byte string which indicates the uniform resource -- identifier, terminated by 0. -- Return value: -- None. -- Comments: -- See the URI actions description of <<PDF Reference, version 1.7>> For -- more details. -- fptr13.FFI_DoURIAction -- void (*FFI_DoURIAction)(structure _FPDF_FORMFILLINFO* pThis, FPDF_BYTESTRING bsURI)-- -- -- Method: FFI_DoGoToAction -- This action changes the view To a specified destination. -- Interface Version: -- 1 -- Implementation Required: -- No -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- nPageIndex - The index of the PDF page. -- zoomMode - The zoom mode For viewing page. See below. -- fPosArray - The float Array which carries the position info. -- sizeofArray - The size of float Array. -- -- PDFZoom values: -- - XYZ = 1 -- - FITPAGE = 2 -- - FITHORZ = 3 -- - FITVERT = 4 -- - FITRECT = 5 -- - FITBBOX = 6 -- - FITBHORZ = 7 -- - FITBVERT = 8 -- -- Return value: -- None. -- Comments: -- See the Destinations description of <<PDF Reference, version 1.7>> in --8.2.1 For more details. -- fptr14.FFI_DoGoToAction -- void (*FFI_DoGoToAction)(structure _FPDF_FORMFILLINFO* pThis, int nPageIndex, int zoomMode, float* fPosArray, int sizeofArray)-- -- -- pointer To IPDF_JSPLATFORM Interface -- *m_pJsPlatform.IPDF_JSPLATFORM-- -- Version 2. -- -- Method: FFI_DisplayCaret -- This method will show the caret at specified position. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- page - Handle To page. Returned by FPDF_LoadPage --function. -- left - Left position of the client area in PDF page --coordinate. -- top - Top position of the client area in PDF page --coordinate. -- right - Right position of the client area in PDF page --coordinate. -- bottom - Bottom position of the client area in PDF page --coordinate. -- Return value: -- None. -- fptr15.FFI_DisplayCaret -- void (*FFI_DisplayCaret)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, FPDF_BOOL bVisible, double left, double top, double right, double bottom)-- -- -- Method: FFI_GetCurrentPageIndex -- This method will get the current page index. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- document - Handle To document. Returned by FPDF_LoadDocument --function. -- Return value: -- The index of current page. -- fptr16.FFI_GetCurrentPageIndex -- Int (*FFI_GetCurrentPageIndex)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document)-- -- -- Method: FFI_SetCurrentPage -- This method will set the current page. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- document - Handle To document. Returned by FPDF_LoadDocument --function. -- iCurPage - The index of the PDF page. -- Return value: -- None. -- fptr17.FFI_SetCurrentPage -- void (*FFI_SetCurrentPage)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document, int iCurPage)-- -- -- Method: FFI_GotoURL -- This method will link To the specified URL. -- Interface Version: -- 2 -- Implementation Required: -- no -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- document - Handle To document. Returned by FPDF_LoadDocument --function. -- wsURL - The string value of the URL, in UTF-16LE format. -- Return value: -- None. -- fptr18.FFI_GotoURL -- void (*FFI_GotoURL)(structure _FPDF_FORMFILLINFO* pThis, FPDF_DOCUMENT document, FPDF_WIDESTRING wsURL)-- -- -- Method: FFI_GetPageViewRect -- This method will get the current page view rectangle. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- page - Handle To page. Returned by FPDF_LoadPage --function. -- left - The pointer To receive left position of the page --view area in PDF page coordinate. -- top - The pointer To receive top position of the page --view area in PDF page coordinate. -- right - The pointer To receive right position of the --client area in PDF page coordinate. -- bottom - The pointer To receive bottom position of the --client area in PDF page coordinate. -- Return value: -- None. -- fptr19.FFI_GetPageViewRect -- void (*FFI_GetPageViewRect)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, double* left, double* top, double* right, double* bottom)-- -- -- Method: FFI_PageEvent -- This method fires when pages have been added To Or deleted from the XFA -- document. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- page_count - The number of pages To be added To Or deleted from the -- document. -- event_type - See FXFA_PAGEVIEWEVENT_* above. -- Return value: -- None. -- Comments: -- The pages To be added Or deleted always start from the last page -- of document. This means that If parameter page_count is 2 And -- event type is FXFA_PAGEVIEWEVENT_POSTADDED, 2 new pages have been -- appended To the tail of document-- If page_count is 2 and -- event type is FXFA_PAGEVIEWEVENT_POSTREMOVED, the last 2 pages -- have been deleted. -- fptr20.FFI_PageEvent -- void (*FFI_PageEvent)(structure _FPDF_FORMFILLINFO* pThis, int page_count, FPDF_DWORD event_type)-- -- -- Method: FFI_PopupMenu -- This method will track the right context menu For XFA fields. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- page - Handle To page. Returned by FPDF_LoadPage --function. -- hWidget - Handle To XFA fields. -- menuFlag - The menu flags. Please refer To Macro definition --of FXFA_MENU_XXX And this can be one Or a combination of these macros. -- x - X position of the client area in PDF page --coordinate. -- y - Y position of the client area in PDF page --coordinate. -- Return value: -- TRUE indicates success-- otherwise false. -- fptr21.FFI_PopupMenu -- FPDF_BOOL (*FFI_PopupMenu)(structure _FPDF_FORMFILLINFO* pThis, FPDF_PAGE page, FPDF_WIDGET hWidget, int menuFlag, float x, float y)-- -- -- Method: FFI_OpenFile -- This method will open the specified file With the specified mode. -- Interface Version -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- fileFlag - The file flag.Please refer To Macro definition of --FXFA_SAVEAS_XXX And this can be one of these macros. -- wsURL - The string value of the file URL, in UTF-16LE --format. -- mode - The mode For open file. -- Return value: -- The handle To FPDF_FILEHANDLER. -- fptr22.FFI_OpenFile -- FPDF_FILEHANDLER* (*FFI_OpenFile)(structure _FPDF_FORMFILLINFO* pThis, int fileFlag, FPDF_WIDESTRING wsURL, const char* mode)-- -- -- Method: FFI_EmailTo -- This method will email the specified file stream To the specified --contacter. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- pFileHandler - Handle To the FPDF_FILEHANDLER. -- pTo - A semicolon-delimited List of recipients For the --message,in UTF-16LE format. -- pSubject - The subject of the message,in UTF-16LE format. -- pCC - A semicolon-delimited List of CC recipients For --the message,in UTF-16LE format. -- pBcc - A semicolon-delimited List of BCC recipients For --the message,in UTF-16LE format. -- pMsg - Pointer To the Data buffer To be sent.Can be --NULL,in UTF-16LE format. -- Return value: -- None. -- fptr23.FFI_EmailTo -- void (*FFI_EmailTo)(structure _FPDF_FORMFILLINFO* pThis, FPDF_FILEHANDLER* fileHandler, FPDF_WIDESTRING pTo, FPDF_WIDESTRING pSubject, FPDF_WIDESTRING pCC, FPDF_WIDESTRING pBcc, FPDF_WIDESTRING pMsg)-- -- -- Method: FFI_UploadTo -- This method will get upload the specified file stream To the --specified URL. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- pFileHandler - Handle To the FPDF_FILEHANDLER. -- fileFlag - The file flag.Please refer To Macro definition of --FXFA_SAVEAS_XXX And this can be one of these macros. -- uploadTo - Pointer To the URL path, in UTF-16LE format. -- Return value: -- None. -- fptr24.FFI_UploadTo -- void (*FFI_UploadTo)(structure _FPDF_FORMFILLINFO* pThis, FPDF_FILEHANDLER* fileHandler, int fileFlag, FPDF_WIDESTRING uploadTo)-- -- -- Method: FFI_GetPlatform -- This method will get the current platform. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- platform - Pointer To the Data buffer To receive the --platform.Can be NULL,in UTF-16LE format. -- length - The length of the buffer, number of bytes. Can be --0. -- Return value: -- The length of the buffer, number of bytes. -- fptr25.FFI_GetPlatform -- Int (*FFI_GetPlatform)(structure _FPDF_FORMFILLINFO* pThis, void* platform, int length)-- -- -- Method: FFI_GetLanguage -- This method will get the current language. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- language - Pointer To the Data buffer To receive the current --language.Can be NULL. -- length - The length of the buffer, number of bytes. Can be --0. -- Return value: -- The length of the buffer, number of bytes. -- fptr26.FFI_GetLanguage -- Int (*FFI_GetLanguage)(structure _FPDF_FORMFILLINFO* pThis, void* language, int length)-- -- -- Method: FFI_DownloadFromURL -- This method will download the specified file from the URL. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- URL - The string value of the file URL, in UTF-16LE --format. -- Return value: -- The handle To FPDF_FILEHANDLER. -- fptr27.FFI_DownloadFromURL -- FPDF_LPFILEHANDLER (*FFI_DownloadFromURL)(structure _FPDF_FORMFILLINFO* pThis, FPDF_WIDESTRING URL)-- -- -- Method: FFI_PostRequestURL -- This method will post the request To the server URL. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- wsURL - The string value of the server URL, in UTF-16LE --format. -- wsData - The post Data,in UTF-16LE format. -- wsContentType - The content type of the request Data,in UTF-16LE --format. -- wsEncode - The encode type,in UTF-16LE format. -- wsHeader - The request header,in UTF-16LE format. -- response - Pointer To the FPDF_BSTR To receive the response --data from server,,in UTF-16LE format. -- Return value: -- TRUE indicates success, otherwise FALSE. -- fptr28.FFI_PostRequestURL -- FPDF_BOOL (*FFI_PostRequestURL)(structure _FPDF_FORMFILLINFO* pThis, FPDF_WIDESTRING wsURL, FPDF_WIDESTRING wsData, FPDF_WIDESTRING wsContentType, FPDF_WIDESTRING wsEncode, FPDF_WIDESTRING wsHeader, FPDF_BSTR* respone)-- -- -- Method: FFI_PutRequestURL -- This method will put the request To the server URL. -- Interface Version: -- 2 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself. -- wsURL - The string value of the server URL, in UTF-16LE --format. -- wsData - The put Data, in UTF-16LE format. -- wsEncode - The encode type, in UTR-16LE format. -- Return value: -- TRUE indicates success, otherwise FALSE. -- fptr29.FFI_PutRequestURL -- FPDF_BOOL (*FFI_PutRequestURL)(structure _FPDF_FORMFILLINFO* pThis, FPDF_WIDESTRING wsURL, FPDF_WIDESTRING wsData, FPDF_WIDESTRING wsEncode)-- EndStructure -- FPDF_FORMFILLINFO ***************************************************************/ public constant SizeOf_FPDF_FORMFILLINFO = 252 --typedef int FPDF_INT32-- --typedef unsigned int FPDF_UINT32-- --typedef float FPDF_FLOAT-- -- Event types. enum type FWL_EVENTTYPE FWL_EVENTTYPE_Mouse = 0, FWL_EVENTTYPE_MouseWheel, FWL_EVENTTYPE_Key end type -- Key flags. --enum type FWL_EVENTFLAG public constant FWL_EVENTFLAG_ShiftKey = shift_bits(1, 0) public constant FWL_EVENTFLAG_ControlKey = shift_bits(1, -1) public constant FWL_EVENTFLAG_AltKey = shift_bits(1, -2) public constant FWL_EVENTFLAG_MetaKey = shift_bits(1, -3) public constant FWL_EVENTFLAG_KeyPad = shift_bits(1, -4) public constant FWL_EVENTFLAG_AutoRepeat = shift_bits(1, -5) public constant FWL_EVENTFLAG_LeftButtonDown = shift_bits(1, -6) public constant FWL_EVENTFLAG_MiddleButtonDown = shift_bits(1, -7) public constant FWL_EVENTFLAG_RightButtonDown = shift_bits(1, -8) -- Mouse messages. enum type FWL_EVENT_MOUSECMD FWL_EVENTMOUSECMD_LButtonDown = 1, FWL_EVENTMOUSECMD_LButtonUp, FWL_EVENTMOUSECMD_LButtonDblClk, FWL_EVENTMOUSECMD_RButtonDown, FWL_EVENTMOUSECMD_RButtonUp, FWL_EVENTMOUSECMD_RButtonDblClk, FWL_EVENTMOUSECMD_MButtonDown, FWL_EVENTMOUSECMD_MButtonUp, FWL_EVENTMOUSECMD_MButtonDblClk, FWL_EVENTMOUSECMD_MouseMove, FWL_EVENTMOUSECMD_MouseEnter, FWL_EVENTMOUSECMD_MouseHover, FWL_EVENTMOUSECMD_MouseLeave end type -- Mouse events. /*************************************************************** Structure FWL_EVENT_MOUSE command.l-- flag.i-- x.f-- y.f-- EndStructure ***************************************************************/ public constant SizeOf_FWL_EVENT_MOUSE = 20 -- Mouse wheel events. /*************************************************************** Structure FWL_EVENT_MOUSEWHEEL flag.i-- x.f-- y.f-- deltaX.f-- deltaY.f-- EndStructure ***************************************************************/ public constant SizeOf_FWL_EVENT_MOUSEWHEEL = 24 -- Virtual keycodes. --Enumeration FWL_VKEYCODE public constant FWL_VKEY_Back = 0x08 public constant FWL_VKEY_Tab = 0x09 public constant FWL_VKEY_Clear = 0x0C public constant FWL_VKEY_Return = 0x0D public constant FWL_VKEY_Shift = 0x10 public constant FWL_VKEY_Control = 0x11 public constant FWL_VKEY_Menu = 0x12 public constant FWL_VKEY_Pause = 0x13 public constant FWL_VKEY_Capital = 0x14 public constant FWL_VKEY_Kana = 0x15 public constant FWL_VKEY_Hangul = 0x15 public constant FWL_VKEY_Junja = 0x17 public constant FWL_VKEY_Final = 0x18 public constant FWL_VKEY_Hanja = 0x19 public constant FWL_VKEY_Kanji = 0x19 public constant FWL_VKEY_Escape = 0x1B public constant FWL_VKEY_Convert = 0x1C public constant FWL_VKEY_NonConvert = 0x1D public constant FWL_VKEY_Accept = 0x1E public constant FWL_VKEY_ModeChange = 0x1F public constant FWL_VKEY_Space = 0x20 public constant FWL_VKEY_Prior = 0x21 public constant FWL_VKEY_Next = 0x22 public constant FWL_VKEY_End = 0x23 public constant FWL_VKEY_Home = 0x24 public constant FWL_VKEY_Left = 0x25 public constant FWL_VKEY_Up = 0x26 public constant FWL_VKEY_Right = 0x27 public constant FWL_VKEY_Down = 0x28 public constant FWL_VKEY_Select = 0x29 public constant FWL_VKEY_Print = 0x2A public constant FWL_VKEY_Execute = 0x2B public constant FWL_VKEY_Snapshot = 0x2C public constant FWL_VKEY_Insert = 0x2D public constant FWL_VKEY_Delete = 0x2E public constant FWL_VKEY_Help = 0x2F public constant FWL_VKEY_0 = 0x30 public constant FWL_VKEY_1 = 0x31 public constant FWL_VKEY_2 = 0x32 public constant FWL_VKEY_3 = 0x33 public constant FWL_VKEY_4 = 0x34 public constant FWL_VKEY_5 = 0x35 public constant FWL_VKEY_6 = 0x36 public constant FWL_VKEY_7 = 0x37 public constant FWL_VKEY_8 = 0x38 public constant FWL_VKEY_9 = 0x39 public constant FWL_VKEY_A = 0x41 public constant FWL_VKEY_B = 0x42 public constant FWL_VKEY_C = 0x43 public constant FWL_VKEY_D = 0x44 public constant FWL_VKEY_E = 0x45 public constant FWL_VKEY_F = 0x46 public constant FWL_VKEY_G = 0x47 public constant FWL_VKEY_H = 0x48 public constant FWL_VKEY_I = 0x49 public constant FWL_VKEY_J = 0x4A public constant FWL_VKEY_K = 0x4B public constant FWL_VKEY_L = 0x4C public constant FWL_VKEY_M = 0x4D public constant FWL_VKEY_N = 0x4E public constant FWL_VKEY_O = 0x4F public constant FWL_VKEY_P = 0x50 public constant FWL_VKEY_Q = 0x51 public constant FWL_VKEY_R = 0x52 public constant FWL_VKEY_S = 0x53 public constant FWL_VKEY_T = 0x54 public constant FWL_VKEY_U = 0x55 public constant FWL_VKEY_V = 0x56 public constant FWL_VKEY_W = 0x57 public constant FWL_VKEY_X = 0x58 public constant FWL_VKEY_Y = 0x59 public constant FWL_VKEY_Z = 0x5A public constant FWL_VKEY_LWin = 0x5B public constant FWL_VKEY_Command = 0x5B public constant FWL_VKEY_RWin = 0x5C public constant FWL_VKEY_Apps = 0x5D public constant FWL_VKEY_Sleep = 0x5F public constant FWL_VKEY_NumPad0 = 0x60 public constant FWL_VKEY_NumPad1 = 0x61 public constant FWL_VKEY_NumPad2 = 0x62 public constant FWL_VKEY_NumPad3 = 0x63 public constant FWL_VKEY_NumPad4 = 0x64 public constant FWL_VKEY_NumPad5 = 0x65 public constant FWL_VKEY_NumPad6 = 0x66 public constant FWL_VKEY_NumPad7 = 0x67 public constant FWL_VKEY_NumPad8 = 0x68 public constant FWL_VKEY_NumPad9 = 0x69 public constant FWL_VKEY_Multiply = 0x6A public constant FWL_VKEY_Add = 0x6B public constant FWL_VKEY_Separator = 0x6C public constant FWL_VKEY_Subtract = 0x6D public constant FWL_VKEY_Decimal = 0x6E public constant FWL_VKEY_Divide = 0x6F public constant FWL_VKEY_F1 = 0x70 public constant FWL_VKEY_F2 = 0x71 public constant FWL_VKEY_F3 = 0x72 public constant FWL_VKEY_F4 = 0x73 public constant FWL_VKEY_F5 = 0x74 public constant FWL_VKEY_F6 = 0x75 public constant FWL_VKEY_F7 = 0x76 public constant FWL_VKEY_F8 = 0x77 public constant FWL_VKEY_F9 = 0x78 public constant FWL_VKEY_F10 = 0x79 public constant FWL_VKEY_F11 = 0x7A public constant FWL_VKEY_F12 = 0x7B public constant FWL_VKEY_F13 = 0x7C public constant FWL_VKEY_F14 = 0x7D public constant FWL_VKEY_F15 = 0x7E public constant FWL_VKEY_F16 = 0x7F public constant FWL_VKEY_F17 = 0x80 public constant FWL_VKEY_F18 = 0x81 public constant FWL_VKEY_F19 = 0x82 public constant FWL_VKEY_F20 = 0x83 public constant FWL_VKEY_F21 = 0x84 public constant FWL_VKEY_F22 = 0x85 public constant FWL_VKEY_F23 = 0x86 public constant FWL_VKEY_F24 = 0x87 public constant FWL_VKEY_NunLock = 0x90 public constant FWL_VKEY_Scroll = 0x91 public constant FWL_VKEY_LShift = 0xA0 public constant FWL_VKEY_RShift = 0xA1 public constant FWL_VKEY_LControl = 0xA2 public constant FWL_VKEY_RControl = 0xA3 public constant FWL_VKEY_LMenu = 0xA4 public constant FWL_VKEY_RMenu = 0xA5 public constant FWL_VKEY_BROWSER_Back = 0xA6 public constant FWL_VKEY_BROWSER_Forward = 0xA7 public constant FWL_VKEY_BROWSER_Refresh = 0xA8 public constant FWL_VKEY_BROWSER_Stop = 0xA9 public constant FWL_VKEY_BROWSER_Search = 0xAA public constant FWL_VKEY_BROWSER_Favorites = 0xAB public constant FWL_VKEY_BROWSER_Home = 0xAC public constant FWL_VKEY_VOLUME_Mute = 0xAD public constant FWL_VKEY_VOLUME_Down = 0xAE public constant FWL_VKEY_VOLUME_Up = 0xAF public constant FWL_VKEY_MEDIA_NEXT_Track = 0xB0 public constant FWL_VKEY_MEDIA_PREV_Track = 0xB1 public constant FWL_VKEY_MEDIA_Stop = 0xB2 public constant FWL_VKEY_MEDIA_PLAY_Pause = 0xB3 public constant FWL_VKEY_MEDIA_LAUNCH_Mail = 0xB4 public constant FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select = 0xB5 public constant FWL_VKEY_MEDIA_LAUNCH_APP1 = 0xB6 public constant FWL_VKEY_MEDIA_LAUNCH_APP2 = 0xB7 public constant FWL_VKEY_OEM_1 = 0xBA public constant FWL_VKEY_OEM_Plus = 0xBB public constant FWL_VKEY_OEM_Comma = 0xBC public constant FWL_VKEY_OEM_Minus = 0xBD public constant FWL_VKEY_OEM_Period = 0xBE public constant FWL_VKEY_OEM_2 = 0xBF public constant FWL_VKEY_OEM_3 = 0xC0 public constant FWL_VKEY_OEM_4 = 0xDB public constant FWL_VKEY_OEM_5 = 0xDC public constant FWL_VKEY_OEM_6 = 0xDD public constant FWL_VKEY_OEM_7 = 0xDE public constant FWL_VKEY_OEM_8 = 0xDF public constant FWL_VKEY_OEM_102 = 0xE2 public constant FWL_VKEY_ProcessKey = 0xE5 public constant FWL_VKEY_Packet = 0xE7 public constant FWL_VKEY_Attn = 0xF6 public constant FWL_VKEY_Crsel = 0xF7 public constant FWL_VKEY_Exsel = 0xF8 public constant FWL_VKEY_Ereof = 0xF9 public constant FWL_VKEY_Play = 0xFA public constant FWL_VKEY_Zoom = 0xFB public constant FWL_VKEY_NoName = 0xFC public constant FWL_VKEY_PA1 = 0xFD public constant FWL_VKEY_OEM_Clear = 0xFE public constant FWL_VKEY_Unknown = 0 --end type -- Key event commands. enum type FWL_EVENTKEYCMD FWL_EVENTKEYCMD_KeyDown = 1, FWL_EVENTKEYCMD_KeyUp, FWL_EVENTKEYCMD_Char end type -- Key events. /*************************************************************** Structure FWL_EVENT_KEY command.l flag.i StructureUnion -- Virtual key code. vkcode.l -- Character code. charcode.i EndStructureUnion --} code EndStructure ***************************************************************/ public constant SizeOf_FWL_EVENT_KEY = 20 -- Event types. /*************************************************************** Structure FWL_EVENT -- Structure size. size.l -- FWL_EVENTTYPE. type.l StructureUnion mouse.FWL_EVENT_MOUSE wheel.FWL_EVENT_MOUSEWHEEL key.FWL_EVENT_KEY EndStructureUnion --} s EndStructure ***************************************************************/ public constant SizeOf_FWL_EVENT = 32 -- Prototype.l NeedToPauseNow(*pThis) -- IFPDF_RENDERINFO interface. /*************************************************************** Structure IFSDK_PAUSE -- -- Version number of the Interface. Currently must be 1. -- version.l -- -- Method: NeedToPauseNow -- Check If we need To pause a progressive process now. -- Interface Version: -- 1 -- Implementation Required: -- yes -- Parameters: -- pThis - Pointer To the Interface Structure itself -- Return Value: -- Non-zero For pause now, 0 For Continue. -- -- fptr.NeedToPauseNow --FPDF_BOOL (*NeedToPauseNow)(Structure _IFSDK_PAUSE* pThis)-- -- A user defined data pointer, used by user's application. Can be NULL. *user EndStructure ***************************************************************/ public constant SizeOf_IFSDK_PAUSE = 20 -- Prototype.l WriteBlockFPDF_FILEWRITE(*pThis, *pData, size.i) -- Structure for custom file write /*************************************************************** Structure FPDF_FILEWRITE -- -- Version number of the interface. Currently must be 1. -- version.l -- -- Method: WriteBlock -- Output a block of data in your custom way. -- Interface Version: -- 1 -- Implementation Required: -- Yes -- Comments: -- Called by function FPDF_SaveDocument -- Parameters: -- pThis - Pointer to the structure itself -- pData - Pointer to a buffer to output -- size - The size of the buffer. -- Return value: -- Should be non-zero if successful, zero for error. -- fptr.WriteBlockFPDF_FILEWRITE --Int (*WriteBlock)(Structure FPDF_FILEWRITE_* pThis, const void* pData, unsigned long size)-- EndStructure ***************************************************************/ public constant SizeOf_FPDF_FILEWRITE = 12 -- -- Interface: FPDF_SYSFONTINFO -- Interface For getting system font information And font mapping -- Prototype ReleaseSYSFONTINFO(*pThis) -- Prototype EnumFonts(*pThis, *pMapper) -- Prototype.i MapFont(*pThis, weight.l, bItalic.l, charset.l, pitch_family.l, *face, *bExact.long) -- Prototype.i GetFont(*pThis, *face) -- Prototype.i GetFontData(*pThis, *hFont, table.l, *buffer, buf_size.i) -- Prototype.i GetFaceName(*pThis, *hFont, *buffer, buf_size.i) -- Prototype.l GetFontCharset(*pThis, *hFont) -- Prototype DeleteFont(*pThis, *hFont) /*************************************************************** Structure FPDF_SYSFONTINFO -- -- Version number of the Interface. Currently must be 1. -- version.l -- -- Method: Release -- Give implementation a chance To release any Data after the -- Interface is no longer used -- Interface Version: -- 1 -- Implementation Required: -- No -- Comments: -- Called by Foxit SDK during the final cleanup process. -- Parameters: -- pThis - Pointer To the Interface Structure itself -- Return Value: -- None -- fptr.ReleaseSYSFONTINFO -- void (*ReleaseSYSFONTINFO)(Structure _FPDF_SYSFONTINFO* pThis)-- -- -- Method: EnumFonts -- Enumerate all fonts installed on the system -- Interface Version: -- 1 -- Implementation Required: -- No -- Comments: -- Implementation should call FPDF_AddIntalledFont() function For -- each font found. -- Only TrueType/OpenType And Type1 fonts are accepted by Foxit SDK. -- Parameters: -- pThis - Pointer To the Interface Structure itself -- pMapper - An opaque pointer To internal font mapper, used -- when calling FPDF_AddInstalledFont -- Return Value: -- None -- fptr1.EnumFonts -- void (*EnumFonts)(Structure _FPDF_SYSFONTINFO* pThis, void* pMapper)-- -- -- Method: MapFont -- Use the system font mapper To get a font handle from requested --parameters -- Interface Version: -- 1 -- Implementation Required: -- Yes only If GetFont method is Not implemented. -- Comments: -- If the system supports native font mapper (like Windows), *implementation can implement this method To get a font handle. -- Otherwise, Foxit SDK will do the mapping And then call GetFont --method. -- Only TrueType/OpenType And Type1 fonts are accepted by Foxit SDK. -- Parameters: -- pThis - Pointer To the Interface Structure itself -- weight - Weight of the requested font. 400 is normal And --700 is bold. -- bItalic - Italic option of the requested font, TRUE Or --FALSE. -- charset - Character set identifier For the requested font. --See above defined constants. -- pitch_family - A combination of flags. See above defined --constants. -- face - Typeface name. Currently use system local encoding --only. -- bExact - Pointer To a boolean value receiving the indicator --whether mapper found the exact match. -- If mapper is Not sure whether it's exact match, *ignore this paramter. -- Return Value: -- An opaque pointer For font handle, Or NULL If system mapping is --not supported. -- fptr2.MapFont -- void* (*MapFont)(Structure _FPDF_SYSFONTINFO* pThis, int weight, FPDF_BOOL bItalic, int charset, int pitch_family, const char* face, FPDF_BOOL* bExact)-- -- -- Method: GetFont -- Get a handle To a particular font by its internal ID -- Interface Version: -- 1 -- Implementation Required: -- Yes only If MapFont method is Not implemented. -- Comments: -- If the system mapping Not supported, Foxit SDK will do the font --mapping And use this method To get a font handle. -- Parameters: -- pThis - Pointer To the Interface Structure itself -- face - Typeface name. Currently use system local encoding --only. -- Return Value: -- An opaque pointer For font handle. -- fptr3.GetFont -- void* (*GetFont)(Structure _FPDF_SYSFONTINFO* pThis, const char* face)-- -- -- Method: GetFontData -- Get font Data from a font -- Interface Version: -- 1 -- Implementation Required: -- Yes -- Comments: -- Can Read either full font file, Or a particular TrueType/OpenType --table -- Parameters: -- pThis - Pointer To the Interface Structure itself -- hFont - Font handle returned by MapFont Or GetFont method -- table - TrueType/OpenType table identifier (refer To --TrueType specification). -- 0 For the whole font file. -- buffer - The buffer receiving the font Data. Can be NULL If --not provided -- buf_size - Buffer size, can be zero If Not provided -- Return Value: -- Number of bytes needed, If buffer Not provided Or Not large --enough, * Or number of bytes written into buffer otherwise. -- fptr4.GetFontData -- unsigned long (*GetFontData)(Structure _FPDF_SYSFONTINFO* pThis, void* hFont, unsigned int table, unsigned char* buffer, unsigned long buf_size)-- -- -- Method: GetFaceName -- Get face name from a font handle -- Interface Version: -- 1 -- Implementation Required: -- No -- Parameters: -- pThis - Pointer To the Interface Structure itself -- hFont - Font handle returned by MapFont Or GetFont method -- buffer - The buffer receiving the face name. Can be NULL If --not provided -- buf_size - Buffer size, can be zero If Not provided -- Return Value: -- Number of bytes needed, If buffer Not provided Or Not large --enough, * Or number of bytes written into buffer otherwise. -- fptr5.GetFaceName -- unsigned long (*GetFaceName)(Structure _FPDF_SYSFONTINFO* pThis, void* hFont, char* buffer, unsigned long buf_size)-- -- -- Method: GetFontCharset -- Get character set information For a font handle -- Interface Version: -- 1 -- Implementation Required: -- No -- Parameters: -- pThis - Pointer To the Interface Structure itself -- hFont - Font handle returned by MapFont Or GetFont method -- Return Value: -- Character set identifier. See defined constants above. -- fptr6.GetFontCharset -- Int (*GetFontCharset)(Structure _FPDF_SYSFONTINFO* pThis, void* hFont)-- -- -- Method: DeleteFont -- Delete a font handle -- Interface Version: -- 1 -- Implementation Required: -- Yes -- Parameters: -- pThis - Pointer To the Interface Structure itself -- hFont - Font handle returned by MapFont Or GetFont method -- Return Value: -- None -- fptr7.DeleteFont -- void (*DeleteFont)(Structure _FPDF_SYSFONTINFO* pThis, void* hFont)-- EndStructure ***************************************************************/ public constant SizeOf_FPDF_SYSFONTINFO = 68 -- -- Struct: FPDF_CharsetFontMap -- Provides the name of a font To use For a given charset value. /*************************************************************** Structure FPDF_CharsetFontMap charset.l -- Character Set Enum value, see FXFONT_*_CHARSET above. *fontname-- p-ascii?? -- Name of default font to use with that charset. EndStructure ***************************************************************/ public constant SizeOf_FPDF_CharsetFontMap = 12 --typedef void* FPDF_PAGEARCSAVER-- --typedef void* FPDF_PAGEARCLOADER-- /* Import "pdfium.lib" -- Function: FPDF_InitLibrary -- Initialize the FPDFSDK library -- Parameters: -- None -- Return value: -- None. -- Comments: -- Convenience function to call FPDF_InitLibraryWithConfig() for -- backwards comatibility purposes. FPDF_InitLibrary() -- Function: FPDF_InitLibraryWithConfig -- Initialize the FPDFSDK library -- Parameters: -- config - configuration information as above. -- Return value: -- None. -- Comments: -- You have to call this function before you can call any PDF -- processing functions. FPDF_InitLibraryWithConfig(*config.FPDF_LIBRARY_CONFIG) -- Function: FPDF_DestroyLibary -- Release all resources allocated by the FPDFSDK library. -- Parameters: -- None. -- Return value: -- None. -- Comments: -- You can call this function to release all memory blocks allocated by -- the library. -- After this function is called, you should not call any PDF -- processing functions. FPDF_DestroyLibrary() -- Function: FPDF_SetSandBoxPolicy -- Set the policy for the sandbox environment. -- Parameters: -- policy - The specified policy for setting, for example: -- FPDF_POLICY_MACHINETIME_ACCESS. -- enable - True to enable, false to disable the policy. -- Return value: -- None. FPDF_SetSandBoxPolicy(policy.i, enable.l)-- -- Pointer to a helper function to make |font| with |text| of |text_length| -- accessible when printing text with GDI. This is useful in sandboxed -- environments where PDFium's access to GDI may be restricted. --typedef void (*PDFiumEnsureTypefaceCharactersAccessible)(const LOGFONT* font, const wchar_t* text, size_t text_length)-- -- Prototype PDFiumEnsureTypefaceCharactersAccessible(*font.LOGFONT, *text.string, text_length.i) -- Function: FPDF_SetTypefaceAccessibleFunc -- Set the function pointer that makes GDI fonts available in sandboxed -- environments. Experimental API. -- Parameters: -- func - A function pointer. See description above. -- Return value: -- None. FPDF_SetTypefaceAccessibleFunc(func.PDFiumEnsureTypefaceCharactersAccessible)-- -- Function: FPDF_SetPrintTextWithGDI -- Set whether to use GDI to draw fonts when printing on Windows. -- Experimental API. -- Parameters: -- use_gdi - Set to true to enable printing text with GDI. -- Return value: -- None. FPDF_SetPrintTextWithGDI(use_gdi.l)-- -- Function: FPDF_LoadDocument -- Open and load a PDF document. -- Parameters: -- file_path - Path to the PDF file (including extension). -- password - A string used as the password for the PDF file. -- If no password is needed, empty or NULL can be used. -- Return value: -- A handle to the loaded document, or NULL on failure. -- Comments: -- Loaded document can be closed by FPDF_CloseDocument(). -- If this function fails, you can use FPDF_GetLastError() to retrieve -- the reason why it failed. --DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadDocument(FPDF_STRING file_path, FPDF_BYTESTRING password)-- FPDF_LoadDocument.i(*file_path.p-ascii, *password.p-ascii=0)-- -- Function: FPDF_LoadMemDocument -- Open and load a PDF document from memory. -- Parameters: -- data_buf - Pointer to a buffer containing the PDF document. -- size - Number of bytes in the PDF document. -- password - A string used as the password for the PDF file. -- If no password is needed, empty or NULL can be used. -- Return value: -- A handle to the loaded document, or NULL on failure. -- Comments: -- The memory buffer must remain valid when the document is open. -- The loaded document can be closed by FPDF_CloseDocument. -- If this function fails, you can use FPDF_GetLastError() to retrieve -- the reason why it failed. -- Notes: -- If PDFium is built with the XFA module, the application should call -- FPDF_LoadXFA() function after the PDF document loaded to support XFA -- fields defined in the fpdfformfill.h file. --DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadMemDocument(const void* data_buf, int size, FPDF_BYTESTRING password)-- FPDF_LoadMemDocument.i(*data_buf, size.l, *password.p-ascii=0)-- -- Function: FPDF_LoadCustomDocument -- Load PDF document from a custom access descriptor. -- Parameters: -- pFileAccess - A structure for accessing the file. -- password - Optional password for decrypting the PDF file. -- Return value: -- A handle to the loaded document, or NULL on failure. -- Comments: -- The application must keep the file resources valid until the PDF -- document is closed. -- -- The loaded document can be closed with FPDF_CloseDocument. -- Notes: -- If PDFium is built with the XFA module, the application should call -- FPDF_LoadXFA() function after the PDF document loaded to support XFA -- fields defined in the fpdfformfill.h file. --DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadCustomDocument(FPDF_FILEACCESS* pFileAccess, FPDF_BYTESTRING password)-- FPDF_LoadCustomDocument.i(*pFileAccess.FPDF_FILEACCESS, *password.p-ascii=0)-- -- Function: FPDF_GetFileVersion -- Get the file version of the given PDF document. -- Parameters: -- doc - Handle to a document. -- fileVersion - The PDF file version. File version: 14 for 1.4, 15 -- for 1.5, ... -- Return value: -- True if succeeds, false otherwise. -- Comments: -- If the document was created by FPDF_CreateNewDocument, -- then this function will always fail. --DLLEXPORT FPDF_BOOL STDCALL FPDF_GetFileVersion(FPDF_DOCUMENT doc, int* fileVersion)-- FPDF_GetFileVersion.l(doc.i, *fileVersion.long)-- -- Function: FPDF_GetLastError -- Get last error code when a function fails. -- Parameters: -- None. -- Return value: -- A 32-bit integer indicating error code as defined above. -- Comments: -- If the previous SDK call succeeded, the return value of this -- function is not defined. --DLLEXPORT unsigned long STDCALL FPDF_GetLastError()-- FPDF_GetLastError.i()-- -- Function: FPDF_GetDocPermission -- Get file permission flags of the document. -- Parameters: -- document - Handle to a document. Returned by FPDF_LoadDocument. -- Return value: -- A 32-bit integer indicating permission flags. Please refer to the -- PDF Reference for detailed descriptions. If the document is not -- protected, 0xffffffff will be returned. --DLLEXPORT unsigned long STDCALL FPDF_GetDocPermissions(FPDF_DOCUMENT document)-- FPDF_GetDocPermissions.i(document.i)-- -- Function: FPDF_GetSecurityHandlerRevision -- Get the revision for the security handler. -- Parameters: -- document - Handle to a document. Returned by FPDF_LoadDocument. -- Return value: -- The security handler revision number. Please refer to the PDF -- Reference for a detailed description. If the document is not -- protected, -1 will be returned. --DLLEXPORT int STDCALL FPDF_GetSecurityHandlerRevision(FPDF_DOCUMENT document)-- FPDF_GetSecurityHandlerRevision.l(document.i)-- -- Function: FPDF_GetPageCount -- Get total number of pages in the document. -- Parameters: -- document - Handle to document. Returned by FPDF_LoadDocument. -- Return value: -- Total number of pages in the document. FPDF_GetPageCount.l(document.i)-- -- Function: FPDF_LoadPage -- Load a page inside the document. -- Parameters: -- document - Handle to document. Returned by FPDF_LoadDocument -- page_index - Index number of the page. 0 for the first page. -- Return value: -- A handle to the loaded page, or NULL if page load fails. -- Comments: -- The loaded page can be rendered to devices using FPDF_RenderPage. -- The loaded page can be closed using FPDF_ClosePage. --DLLEXPORT FPDF_PAGE STDCALL FPDF_LoadPage(FPDF_DOCUMENT document, int page_index)-- FPDF_LoadPage.i(document.i, page_index.l)-- -- Function: FPDF_GetPageWidth -- Get page width. -- Parameters: -- page - Handle to the page. Returned by FPDF_LoadPage. -- Return value: -- Page width (excluding non-displayable area) measured in points. -- One point is 1/72 inch (around 0.3528 mm). --DLLEXPORT double STDCALL FPDF_GetPageWidth(FPDF_PAGE page)-- FPDF_GetPageWidth.d(page.i)-- -- Function: FPDF_GetPageHeight -- Get page height. -- Parameters: -- page - Handle to the page. Returned by FPDF_LoadPage. -- Return value: -- Page height (excluding non-displayable area) measured in points. -- One point is 1/72 inch (around 0.3528 mm) --DLLEXPORT double STDCALL FPDF_GetPageHeight(FPDF_PAGE page)-- FPDF_GetPageHeight.d(page.i)-- -- Function: FPDF_GetPageSizeByIndex -- Get the size of the page at the given index. -- Parameters: -- document - Handle to document. Returned by FPDF_LoadDocument. -- page_index - Page index, zero for the first page. -- width - Pointer to a double to receive the page width -- (in points). -- height - Pointer to a double to receive the page height -- (in points). -- Return value: -- Non-zero for success. 0 for error (document or page not found). --DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, int page_index, double* width, double* height)-- FPDF_GetPageSizeByIndex.l(document.i, page_index.l, *width.double, *height.double)-- -- Function: FPDF_RenderPage -- Render contents of a page to a device (screen, bitmap, or printer). -- This function is only supported on Windows. -- Parameters: -- dc - Handle to the device context. -- page - Handle to the page. Returned by FPDF_LoadPage. -- start_x - Left pixel position of the display area in -- device coordinates. -- start_y - Top pixel position of the display area in device -- coordinates. -- size_x - Horizontal size (in pixels) for displaying the page. -- size_y - Vertical size (in pixels) for displaying the page. -- rotate - Page orientation: -- 0 (normal) -- 1 (rotated 90 degrees clockwise) -- 2 (rotated 180 degrees) -- 3 (rotated 90 degrees counter-clockwise) -- flags - 0 for normal display, or combination of flags -- defined above. -- Return value: -- None. FPDF_RenderPage(hdc.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l) -- Function: FPDF_RenderPageBitmap -- Render contents of a page to a device independent bitmap. -- Parameters: -- bitmap - Handle to the device independent bitmap (as the -- output buffer). The bitmap handle can be created -- by FPDFBitmap_Create. -- page - Handle to the page. Returned by FPDF_LoadPage -- start_x - Left pixel position of the display area in -- bitmap coordinates. -- start_y - Top pixel position of the display area in bitmap -- coordinates. -- size_x - Horizontal size (in pixels) for displaying the page. -- size_y - Vertical size (in pixels) for displaying the page. -- rotate - Page orientation: -- 0 (normal) -- 1 (rotated 90 degrees clockwise) -- 2 (rotated 180 degrees) -- 3 (rotated 90 degrees counter-clockwise) -- flags - 0 for normal display, or combination of flags -- defined above. With FPDF_ANNOT flag, it renders all -- annotations that does not require user-interaction, -- which are all annotations except widget and popup -- annotations. -- Return value: -- None. FPDF_RenderPageBitmap(bitmap.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l)-- --DLLEXPORT FPDF_RECORDER STDCALL FPDF_RenderPageSkp(FPDF_PAGE page, int size_x, int size_y)-- FPDF_RenderPageSkp.i(page.i, size_x.l, size_y.l)-- -- Function: FPDF_ClosePage -- Close a loaded PDF page. -- Parameters: -- page - Handle to the loaded page. -- Return value: -- None. FPDF_ClosePage(page.i)-- -- Function: FPDF_CloseDocument -- Close a loaded PDF document. -- Parameters: -- document - Handle to the loaded document. -- Return value: -- None. FPDF_CloseDocument(document.i)-- -- Function: FPDF_DeviceToPage -- Convert the screen coordinates of a point to page coordinates. -- Parameters: -- page - Handle to the page. Returned by FPDF_LoadPage. -- start_x - Left pixel position of the display area in -- device coordinates. -- start_y - Top pixel position of the display area in device -- coordinates. -- size_x - Horizontal size (in pixels) for displaying the page. -- size_y - Vertical size (in pixels) for displaying the page. -- rotate - Page orientation: -- 0 (normal) -- 1 (rotated 90 degrees clockwise) -- 2 (rotated 180 degrees) -- 3 (rotated 90 degrees counter-clockwise) -- device_x - X value in device coordinates to be converted. -- device_y - Y value in device coordinates to be converted. -- page_x - A pointer to a double receiving the converted X -- value in page coordinates. -- page_y - A pointer to a double receiving the converted Y -- value in page coordinates. -- Return value: -- None. -- Comments: -- The page coordinate system has its origin at the left-bottom corner -- of the page, with the X-axis on the bottom going to the right, and -- the Y-axis on the left side going up. -- -- NOTE: this coordinate system can be altered when you zoom, scroll, -- or rotate a page, however, a point on the page should always have -- the same coordinate values in the page coordinate system. -- -- The device coordinate system is device dependent. For screen device, -- its origin is at the left-top corner of the window. However this -- origin can be altered by the Windows coordinate transformation -- utilities. -- -- You must make sure the start_x, start_y, size_x, size_y -- and rotate parameters have exactly same values as you used in -- the FPDF_RenderPage() function call. FPDF_DeviceToPage(page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, device_x.l, device_y.l, *page_x.double, *page_y.double)-- -- Function: FPDF_PageToDevice -- Convert the page coordinates of a point to screen coordinates. -- Parameters: -- page - Handle to the page. Returned by FPDF_LoadPage. -- start_x - Left pixel position of the display area in -- device coordinates. -- start_y - Top pixel position of the display area in device -- coordinates. -- size_x - Horizontal size (in pixels) for displaying the page. -- size_y - Vertical size (in pixels) for displaying the page. -- rotate - Page orientation: -- 0 (normal) -- 1 (rotated 90 degrees clockwise) -- 2 (rotated 180 degrees) -- 3 (rotated 90 degrees counter-clockwise) -- page_x - X value in page coordinates. -- page_y - Y value in page coordinate. -- device_x - A pointer to an integer receiving the result X -- value in device coordinates. -- device_y - A pointer to an integer receiving the result Y -- value in device coordinates. -- Return value: -- None. -- Comments: -- See comments for FPDF_DeviceToPage(). FPDF_PageToDevice(page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, *page_x.double, *page_y.double, *device_x.long, *device_y.long)-- -- Function: FPDFBitmap_Create -- Create a device independent bitmap (FXDIB). -- Parameters: -- width - The number of pixels in width for the bitmap. -- Must be greater than 0. -- height - The number of pixels in height for the bitmap. -- Must be greater than 0. -- alpha - A flag indicating whether the alpha channel is used. -- Non-zero for using alpha, zero for not using. -- Return value: -- The created bitmap handle, or NULL if a parameter error or out of -- memory. -- Comments: -- The bitmap always uses 4 bytes per pixel. The first byte is always -- double word aligned. -- -- The byte order is BGRx (the last byte unused if no alpha channel) or -- BGRA. -- -- The pixels in a horizontal line are stored side by side, with the -- left most pixel stored first (with lower memory address). -- Each line uses width * 4 bytes. -- -- Lines are stored one after another, with the top most line stored -- first. There is no gap between adjacent lines. -- -- This function allocates enough memory for holding all pixels in the -- bitmap, but it doesn't initialize the buffer. Applications can use -- FPDFBitmap_FillRect to fill the bitmap using any color. --DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_Create(int width, int height, int alpha)-- FPDFBitmap_Create.i(width.l, height.l, alpha.l)-- -- Function: FPDFBitmap_CreateEx -- Create a device independent bitmap (FXDIB) -- Parameters: -- width - The number of pixels in width for the bitmap. -- Must be greater than 0. -- height - The number of pixels in height for the bitmap. -- Must be greater than 0. -- format - A number indicating for bitmap format, as defined -- above. -- first_scan - A pointer to the first byte of the first line if -- using an external buffer. If this parameter is NULL, -- then the a new buffer will be created. -- stride - Number of bytes for each scan line, for external -- buffer only. -- Return value: -- The bitmap handle, or NULL if parameter error or out of memory. -- Comments: -- Similar to FPDFBitmap_Create function, but allows for more formats -- and an external buffer is supported. The bitmap created by this -- function can be used in any place that a FPDF_BITMAP handle is -- required. -- -- If an external buffer is used, then the application should destroy -- the buffer by itself. FPDFBitmap_Destroy function will not destroy -- the buffer. --DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_CreateEx(int width, int height, int format, void* first_scan, int stride)-- FPDFBitmap_CreateEx.i(width.l, height.l, format.l, *first_scan, stride.l)-- -- Function: FPDFBitmap_FillRect -- Fill a rectangle in a bitmap. -- Parameters: -- bitmap - The handle to the bitmap. Returned by -- FPDFBitmap_Create. -- left - The left position. Starting from 0 at the -- left-most pixel. -- top - The top position. Starting from 0 at the -- top-most line. -- width - Width in pixels to be filled. -- height - Height in pixels to be filled. -- color - A 32-bit value specifing the color, in 8888 ARGB -- format. -- Return value: -- None. -- Comments: -- This function sets the color and (optionally) alpha value in the -- specified region of the bitmap. -- -- NOTE: If the alpha channel is used, this function does NOT -- composite the background with the source color, instead the -- background will be replaced by the source color and the alpha. -- -- If the alpha channel is not used, the alpha parameter is ignored. FPDFBitmap_FillRect(bitmap.i, left.l, top.l, width.l, height.l, color.i)-- -- Function: FPDFBitmap_GetBuffer -- Get data buffer of a bitmap. -- Parameters: -- bitmap - Handle to the bitmap. Returned by FPDFBitmap_Create. -- Return value: -- The pointer to the first byte of the bitmap buffer. -- Comments: -- The stride may be more than width * number of bytes per pixel -- -- Applications can use this function to get the bitmap buffer pointer, -- then manipulate any color And/Or alpha values For any pixels in the -- bitmap. -- -- The data is in BGRA format. Where the A maybe unused if alpha was -- not specified. --DLLEXPORT void* STDCALL FPDFBitmap_GetBuffer(FPDF_BITMAP bitmap)-- FPDFBitmap_GetBuffer.i(bitmap.i)-- -- Function: FPDFBitmap_GetWidth -- Get width of a bitmap. -- Parameters: -- bitmap - Handle to the bitmap. Returned by FPDFBitmap_Create. -- Return value: -- The width of the bitmap in pixels. --DLLEXPORT int STDCALL FPDFBitmap_GetWidth(FPDF_BITMAP bitmap)-- FPDFBitmap_GetWidth.l(bitmap.i)-- -- Function: FPDFBitmap_GetHeight -- Get height of a bitmap. -- Parameters: -- bitmap - Handle to the bitmap. Returned by FPDFBitmap_Create. -- Return value: -- The height of the bitmap in pixels. --DLLEXPORT int STDCALL FPDFBitmap_GetHeight(FPDF_BITMAP bitmap)-- FPDFBitmap_GetHeight.l(bitmap.i)-- -- Function: FPDFBitmap_GetStride -- Get number of bytes for each line in the bitmap buffer. -- Parameters: -- bitmap - Handle to the bitmap. Returned by FPDFBitmap_Create. -- Return value: -- The number of bytes for each line in the bitmap buffer. -- Comments: -- The stride may be more than width * number of bytes per pixel. --DLLEXPORT int STDCALL FPDFBitmap_GetStride(FPDF_BITMAP bitmap)-- FPDFBitmap_GetStride.l(bitmap.i)-- -- Function: FPDFBitmap_Destroy -- Destroy a bitmap and release all related buffers. -- Parameters: -- bitmap - Handle to the bitmap. Returned by FPDFBitmap_Create. -- Return value: -- None. -- Comments: -- This function will not destroy any external buffers provided when -- the bitmap was created. FPDFBitmap_Destroy(bitmap.i)-- -- Function: FPDF_VIEWERREF_GetPrintScaling -- Whether the PDF document prefers to be scaled or not. -- Parameters: -- document - Handle to the loaded document. -- Return value: -- None. --DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_GetPrintScaling(document.i) FPDF_VIEWERREF_GetPrintScaling.l(document.i) -- Function: FPDF_VIEWERREF_GetNumCopies -- Returns the number of copies to be printed. -- Parameters: -- document - Handle to the loaded document. -- Return value: -- The number of copies to be printed. --DLLEXPORT int STDCALL FPDF_VIEWERREF_GetNumCopies(document.i) FPDF_VIEWERREF_GetNumCopies.l(document.i) -- Function: FPDF_VIEWERREF_GetPrintPageRange -- Page numbers to initialize print dialog box when file is printed. -- Parameters: -- document - Handle to the loaded document. -- Return value: -- The print page range to be used for printing. --DLLEXPORT FPDF_PAGERANGE STDCALL FPDF_VIEWERREF_GetPrintPageRange(document.i) FPDF_VIEWERREF_GetPrintPageRange.i(document.i) -- Function: FPDF_VIEWERREF_GetDuplex -- Returns the paper handling option to be used when printing from -- the print dialog. -- Parameters: -- document - Handle to the loaded document. -- Return value: -- The paper handling option to be used when printing. --DLLEXPORT FPDF_DUPLEXTYPE STDCALL FPDF_VIEWERREF_GetDuplex(document.i) FPDF_VIEWERREF_GetDuplex.l(document.i) -- Function: FPDF_CountNamedDests -- Get the count of named destinations in the PDF document. -- Parameters: -- document - Handle to a document -- Return value: -- The count of named destinations. --DLLEXPORT FPDF_DWORD STDCALL FPDF_CountNamedDests(document.i) FPDF_CountNamedDests.i(document.i) -- Function: FPDF_GetNamedDestByName -- Get a the destination handle for the given name. -- Parameters: -- document - Handle to the loaded document. -- name - The name of a destination. -- Return value: -- The handle to the destination. --DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDestByName(document.i, FPDF_BYTESTRING name) FPDF_GetNamedDestByName.i(document.i, *name.p-ascii) -- Function: FPDF_GetNamedDest -- Get the named destination by index. -- Parameters: -- document - Handle to a document -- index - The index of a named destination. -- buffer - The buffer to store the destination name, -- used as wchar_t*. -- buflen [in/out] - Size of the buffer in bytes on input, -- length of the result in bytes on output -- or -1 if the buffer is too small. -- Return value: -- The destination handle for a given index, or NULL if there is no -- named destination corresponding to |index|. -- Comments: -- Call this function twice to get the name of the named destination: -- 1) First time pass in |buffer| as NULL and get buflen. -- 2) Second time pass in allocated |buffer| and buflen to retrieve -- |buffer|, which should be used as wchar_t*. -- -- If buflen is not sufficiently large, it will be set to -1 upon -- return. --DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDest(document.i, index.l, void* buffer, *buflen.long) FPDF_GetNamedDest.i(document.i, index.l, *buffer, *buflen.long) -- Function: FPDF_BStr_Init -- Helper function to initialize a byte string. --DLLEXPORT FPDF_RESULT STDCALL FPDF_BStr_Init(FPDF_BSTR* str) FPDF_BStr_Init.l(*str.FPDF_BSTR) -- Function: FPDF_BStr_Set -- Helper function to set string data. --DLLEXPORT FPDF_RESULT STDCALL FPDF_BStr_Set(FPDF_BSTR* str, FPDF_LPCSTR bstr, length.l) FPDF_BStr_Set.l(*str.FPDF_BSTR, *bstr.p-ascii, length.l) -- Function: FPDF_BStr_Clear -- Helper function to clear a byte string. --DLLEXPORT FPDF_RESULT STDCALL FPDF_BStr_Clear(FPDF_BSTR* str) FPDF_BStr_Clear.l(*str.FPDF_BSTR) -- Create a document availability provider. -- -- file_avail - pointer to file availability interface. -- file - pointer to a file access interface. -- -- Returns a handle to the document availability provider, or NULL on error. -- -- |FPDFAvail_Destroy| must be called when done with the availability provider. --DLLEXPORT FPDF_AVAIL STDCALL FPDFAvail_Create(*file_avail.FX_FILEAVAIL, *file.FPDF_FILEACCESS) FPDFAvail_Create.l(*file_avail.FX_FILEAVAIL, *file.FPDF_FILEACCESS) -- Destroy the |avail| document availability provider. -- -- avail - handle to document availability provider to be destroyed. FPDFAvail_Destroy(*avail.FX_FILEAVAIL) -- Checks if the document is ready for loading, if not, gets download hints. -- -- avail - handle to document availability provider. -- hints - pointer to a download hints interface. -- -- Returns one of: -- PDF_DATA_ERROR: A common error is returned. Data availability unknown. -- PDF_DATA_NOTAVAIL: Data not yet available. -- PDF_DATA_AVAIL: Data available. -- -- Applications should call this function whenever new data arrives, and process -- all the generated download hints, if any, until the function returns -- |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. -- -- Once all data is available, call |FPDFAvail_GetDocument| to get a document -- handle. --DLLEXPORT int STDCALL FPDFAvail_IsDocAvail(void *avail, *hints.FX_DOWNLOADHINTS) FPDFAvail_IsDocAvail.l(avail.i, *hints.FX_DOWNLOADHINTS) -- Get document from the availability provider. -- -- avail - handle to document availability provider. -- password - password for decrypting the PDF file. Optional. -- -- Returns a handle to the document. -- -- When |FPDFAvail_IsDocAvail| returns TRUE, call |FPDFAvail_GetDocument| to -- retrieve the document handle. --DLLEXPORT FPDF_DOCUMENT STDCALL FPDFAvail_GetDocument(void *avail, *password.p-ascii) FPDFAvail_GetDocument.l(avail.i, *password.p-ascii) -- Get the page number for the first available page in a linearized PDF. -- -- doc - document handle. -- -- Returns the zero-based index for the first available page. -- -- For most linearized PDFs, the first available page will be the first page, -- however, some PDFs might make another page the first available page. -- For non-linearized PDFs, this function will always return zero. --DLLEXPORT int STDCALL FPDFAvail_GetFirstPageNum(doc.i) FPDFAvail_GetFirstPageNum.l(doc.i) -- Check if |page_index| is ready for loading, if not, get the -- |FX_DOWNLOADHINTS|. -- -- avail - handle to document availability provider. -- page_index - index number of the page. Zero for the first page. -- hints - pointer to a download hints interface. Populated if -- |page_index| is not available. -- -- Returns one of: -- PDF_DATA_ERROR: A common error is returned. Data availability unknown. -- PDF_DATA_NOTAVAIL: Data not yet available. -- PDF_DATA_AVAIL: Data available. -- -- This function can be called only after |FPDFAvail_GetDocument| is called. -- Applications should call this function whenever new data arrives and process -- all the generated download |hints|, if any, until this function returns -- |PDF_DATA_ERROR| or |PDF_DATA_AVAIL|. Applications can then perform page -- loading. --DLLEXPORT int STDCALL FPDFAvail_IsPageAvail(void *avail, page_index.l, *hints.FX_DOWNLOADHINTS) FPDFAvail_IsPageAvail.l(avail.i, page_index.l, *hints.FX_DOWNLOADHINTS) -- Check if form data is ready for initialization, if not, get the -- |FX_DOWNLOADHINTS|. -- -- avail - handle to document availability provider. -- hints - pointer to a download hints interface. Populated if form is not -- ready for initialization. -- -- Returns one of: -- PDF_FORM_ERROR: A common eror, in general incorrect parameters. -- PDF_FORM_NOTAVAIL: Data not available. -- PDF_FORM_AVAIL: Data available. -- PDF_FORM_NOTEXIST: No form data. -- -- This function can be called only after |FPDFAvail_GetDocument| is called. -- The application should call this function whenever new data arrives and -- process all the generated download |hints|, if any, until the function -- |PDF_FORM_ERROR|, |PDF_FORM_AVAIL| or |PDF_FORM_NOTEXIST|. -- Applications can then perform page loading. It is recommend to call -- |FPDFDOC_InitFormFillEnvironment| when |PDF_FORM_AVAIL| is returned. --DLLEXPORT int STDCALL FPDFAvail_IsFormAvail(void *avail, *hints.FX_DOWNLOADHINTS) FPDFAvail_IsFormAvail.l(avail.i, *hints.FX_DOWNLOADHINTS) -- Check whether a document is a linearized PDF. -- -- avail - handle to document availability provider. -- -- Returns one of: -- PDF_LINEARIZED -- PDF_NOT_LINEARIZED -- PDF_LINEARIZATION_UNKNOWN -- -- |FPDFAvail_IsLinearized| will return |PDF_LINEARIZED| or |PDF_NOT_LINEARIZED| -- when we have 1k of data. If the files size less than 1k, it returns -- |PDF_LINEARIZATION_UNKNOWN| as there is insufficient information to determine -- if the PDF is linearlized. --DLLEXPORT int STDCALL FPDFAvail_IsLinearized(void *avail) FPDFAvail_IsLinearized.l(avail.i) -- Get the first child of |bookmark|, or the first top-level bookmark item. -- -- document - handle to the document. -- bookmark - handle to the current bookmark. Pass NULL for the first top -- level item. -- -- Returns a handle to the first child of |bookmark| or the first top-level -- bookmark item. NULL if no child or top-level bookmark found. --DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetFirstChild(document.i, void *bookmark) FPDFBookmark_GetFirstChild.i(document.i, bookmark.i) -- Get the next sibling of |bookmark|. -- -- document - handle to the document. -- bookmark - handle to the current bookmark. -- -- Returns a handle to the next sibling of |bookmark|, or NULL if this is the -- last bookmark at this level. --DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetNextSibling(document.i, bookmark.i) FPDFBookmark_GetNextSibling.i(document.i, bookmark.i) -- Get the title of |bookmark|. -- -- bookmark - handle to the bookmark. -- buffer - buffer for the title. May be NULL. -- buflen - the length of the buffer in bytes. May be 0. -- -- Returns the number of bytes in the title, including the terminating NUL -- character. The number of bytes is returned regardless of the |buffer| and -- |buflen| parameters. -- -- Regardless of the platform, the |buffer| is always in UTF-16LE encoding. The -- string is terminated by a UTF16 NUL character. If |buflen| is less then the -- required length, or |buffer| is NULL, |buffer| will not be modified. --DLLEXPORT unsigned long STDCALL FPDFBookmark_GetTitle(bookmark.i, void* buffer, buflen.i) FPDFBookmark_GetTitle.i(bookmark.i, *buffer, buflen.i) -- Find the bookmark with |title| in |document|. -- -- document - handle to the document. -- title - the UTF-16LE encoded Unicode title for which to search. -- -- Returns the handle to the bookmark, or NULL if |title| can't be found. -- -- |FPDFBookmark_Find| will always return the first bookmark found even if -- multiple bookmarks have the same |title|. --DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_Find(document.i, FPDF_WIDESTRING title) FPDFBookmark_Find.i(document.i, *title.string) -- Get the destination associated with |bookmark|. -- -- document - handle to the document. -- bookmark - handle to the bookmark. -- -- Returns the handle to the destination data, NULL if no destination is -- associated with |bookmark|. --DLLEXPORT FPDF_DEST STDCALL FPDFBookmark_GetDest(document.i, bookmark.i) FPDFBookmark_GetDest.i(document.i, bookmark.i) -- Get the action associated with |bookmark|. -- -- bookmark - handle to the bookmark. -- -- Returns the handle to the action data, or NULL if no action is associated -- with |bookmark|. When NULL is returned, |FPDFBookmark_GetDest| should be -- called to get the |bookmark| destination data. --DLLEXPORT FPDF_ACTION STDCALL FPDFBookmark_GetAction(bookmark.i) FPDFBookmark_GetAction.i(bookmark.i) -- Get the type of |action|. -- -- action - handle to the action. -- -- Returns one of: -- PDFACTION_UNSUPPORTED -- PDFACTION_GOTO -- PDFACTION_REMOTEGOTO -- PDFACTION_URI -- PDFACTION_LAUNCH --DLLEXPORT unsigned long STDCALL FPDFAction_GetType(void *action) FPDFAction_GetType.i(action.i) -- Get the destination of |action|. -- -- document - handle to the document. -- action - handle to the action. |action| must be a |PDFACTION_GOTO| or -- |PDFACTION_REMOTEGOTO|. -- -- Returns a handle to the destination data. -- -- In the case of |PDFACTION_REMOTEGOTO|, you should first call -- |FPDFAction_GetFilePath| then load that document, the document handle from -- that document should pass as |document| to |FPDFAction_GetDest|. --DLLEXPORT FPDF_DEST STDCALL FPDFAction_GetDest(document.i, void *action) FPDFAction_GetDest.i(document.i, action.i) -- Get file path of a |PDFACTION_REMOTEGOTO| |action|. -- -- action - handle to the action. |action| must be a |PDFACTION_LAUNCH| or -- |PDFACTION_REMOTEGOTO| -- buffer - a buffer for output the path string. May be NULL. -- buflen - the length of the buffer, in bytes. May be 0. -- -- Returns the number of bytes in the file path, including the trailing UTF16 -- NUL character. -- -- Regardless of the platform, the |buffer| is always in UTF-16LE encoding. -- If |buflen| is less then the returned length, or |buffer| is NULL, |buffer| -- will not be modified. --DLLEXPORT unsigned long STDCALL FPDFAction_GetFilePath(void *action, void* buffer, buflen.i) FPDFAction_GetFilePath.i(action.i, *buffer, buflen.i) -- Get the URI path of a |PDFACTION_URI| |action|. -- -- document - handle to the document. -- action - handle to the action. Must be a |PDFACTION_URI|. -- buffer - a buffer for the path string. May be NULL. -- buflen - the length of the buffer, in bytes. May be 0. -- -- Returns the number of bytes in the URI path, including trailing zeros. -- -- The |buffer| is always encoded in 7-bit ASCII. If |buflen| is less then the -- returned length, or |buffer| is NULL, |buffer| will not be modified. --DLLEXPORT unsigned long STDCALL FPDFAction_GetURIPath(document.i, void *action, void* buffer, buflen.i) FPDFAction_GetURIPath.i(document.i, action.i, *buffer, buflen.i) -- Get the page index of |dest|. -- -- document - handle to the document. -- dest - handle to the destination. -- -- Returns the page index containing |dest|. Page indices start from 0. --DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(document.i, void *dest) FPDFDest_GetPageIndex.i(document.i, dest.i) -- Find a link at point (|x|,|y|) on |page|. -- -- page - handle to the document page. -- x - the x coordinate, in the page coordinate system. -- y - the y coordinate, in the page coordinate system. -- -- Returns a handle to the link, or NULL if no link found at the given point. -- -- You can convert coordinates from screen coordinates to page coordinates using -- |FPDF_DeviceToPage|. --DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(void *page, x.d, y.d) FPDFLink_GetLinkAtPoint.i(page.i, x.d, y.d) -- Find the Z-order of link at point (|x|,|y|) on |page|. -- -- page - handle to the document page. -- x - the x coordinate, in the page coordinate system. -- y - the y coordinate, in the page coordinate system. -- -- Returns the Z-order of the link, or -1 if no link found at the given point. -- Larger Z-order numbers are closer to the front. -- -- You can convert coordinates from screen coordinates to page coordinates using -- |FPDF_DeviceToPage|. --DLLEXPORT int STDCALL FPDFLink_GetLinkZOrderAtPoint(void *page, x.d, y.d) FPDFLink_GetLinkZOrderAtPoint.l(page.i, x.d, y.d) -- Get destination info for |link|. -- -- document - handle to the document. -- link - handle to the link. -- -- Returns a handle to the destination, or NULL if there is no destination -- associated with the link. In this case, you should call |FPDFLink_GetAction| -- to retrieve the action associated with |link|. --DLLEXPORT FPDF_DEST STDCALL FPDFLink_GetDest(document.i, void *link) FPDFLink_GetDest.i(document.i, link.i) -- Get action info for |link|. -- -- link - handle to the link. -- -- Returns a handle to the action associated to |link|, or NULL if no action. --DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(void *link) FPDFLink_GetAction.i(link.i) -- Enumerates all the link annotations in |page|. -- -- page - handle to the page. -- startPos - the start position, should initially be 0 and is updated with -- the next start position on return. -- linkAnnot - the link handle for |startPos|. -- -- Returns TRUE on success. --DLLEXPORT FPDF_BOOL STDCALL FPDFLink_Enumerate(void *page, int* startPos, void *linkAnnot) FPDFLink_Enumerate.l(page.i, *startPos.long, linkAnnot.i) -- Get the rectangle for |linkAnnot|. -- -- linkAnnot - handle to the link annotation. -- rect - the annotation rectangle. -- -- Returns true on success. --DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetAnnotRect(void *linkAnnot, *rect.FS_RECTF) FPDFLink_GetAnnotRect.l(linkAnnot.i, *rect.FS_RECTF) -- Get the count of quadrilateral points to the |linkAnnot|. -- -- linkAnnot - handle to the link annotation. -- -- Returns the count of quadrilateral points. --DLLEXPORT int STDCALL FPDFLink_CountQuadPoints(void *linkAnnot) FPDFLink_CountQuadPoints.l(linkAnnot.i) -- Get the quadrilateral points for the specified |quadIndex| in |linkAnnot|. -- -- linkAnnot - handle to the link annotation. -- quadIndex - the specified quad point index. -- quadPoints - receives the quadrilateral points. -- -- Returns true on success. --DLLEXPORT FPDF_BOOL STDCALL FPDFLink_GetQuadPoints(void *linkAnnot, quadIndex.l, *quadPoints.FS_QUADPOINTSF) FPDFLink_GetQuadPoints.l(linkAnnot.i, quadIndex.l, *quadPoints.FS_QUADPOINTSF) -- Get meta-data |tag| content from |document|. -- -- doc - handle to the document -- tag - the tag to retrieve. The tag can be one of: -- Title, Author, Subject, Keywords, Creator, Producer, CreationDate, or ModDate. -- For detailed explanations of these tags and their respective -- values, please refer to PDF Reference 1.6, section 10.2.1, 'Document Information Dictionary'. -- buffer - a buffer for the title. May be NULL. -- buflen - the length of the buffer, in bytes. May be 0. -- -- Returns the number of bytes in the title, including trailing zeros. -- -- The |buffer| is always encoded in UTF-16LE. The |buffer| is followed by two -- bytes of zeros indicating the end of the string. If |buflen| is less then -- the returned length, or |buffer| is NULL, |buffer| will not be modified. --DLLEXPORT unsigned long STDCALL FPDF_GetMetaText(doc.i, *tag.Byte, void* buffer, buflen.i) FPDF_GetMetaText.i(doc.i, *tag.Byte, *buffer=public constant Null, buflen.i=0) -- Create a new PDF document. -- -- Returns a handle to a new document, or NULL on failure. --DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_CreateNewDocument() FPDF_CreateNewDocument.i() -- Create a new PDF page. -- -- document - handle to document. -- page_index - suggested index of the page to create. If it is larger than -- document's current last index(L), the created page index is -- the next available index -- L+1. -- width - the page width. -- height - the page height. -- -- Returns the handle to the new page. -- -- The page should be closed with CPDF_ClosePage() when finished as -- with any other page in the document. --DLLEXPORT FPDF_PAGE STDCALL FPDFPage_New(document.i, page_index.l, width.d, height.d) FPDFPage_New.i(document.i, page_index.l, width.d, height.d) -- Delete the page at |page_index|. -- -- document - handle to document. -- page_index - the index of the page to delete. FPDFPage_Delete(document.i, page_index.l) -- Get the rotation of |page|. -- -- page - handle to a page -- -- Returns one of the following indicating the page rotation: -- 0 - No rotation. -- 1 - Rotated 90 degrees clockwise. -- 2 - Rotated 180 degrees clockwise. -- 3 - Rotated 270 degrees clockwise. --DLLEXPORT int STDCALL FPDFPage_GetRotation(void *page) FPDFPage_GetRotation.l(page.i) -- Set rotation for |page|. -- -- page - handle to a page. -- rotate - the rotation value, one of: -- 0 - No rotation. -- 1 - Rotated 90 degrees clockwise. -- 2 - Rotated 180 degrees clockwise. -- 3 - Rotated 270 degrees clockwise. FPDFPage_SetRotation(page.i, rotate.l) -- Insert |page_obj| into |page|. -- -- page - handle to a page -- page_obj - handle to a page object. The |page_obj| will be automatically -- freed. FPDFPage_InsertObject(page.i, page_obj.i) -- Get number of page objects inside |page|. -- -- page - handle to a page. -- -- Returns the number of objects in |page|. --DLLEXPORT int STDCALL FPDFPage_CountObject(void *page) FPDFPage_CountObject.l(page.i) -- Get object in |page| at |index|. -- -- page - handle to a page. -- index - the index of a page object. -- -- Returns the handle to the page object, or NULL on failed. --DLLEXPORT FPDF_PAGEOBJECT STDCALL FPDFPage_GetObject(void *page, index.l) FPDFPage_GetObject.i(page.i, index.l) -- Checks if |page| contains transparency. -- -- page - handle to a page. -- -- Returns TRUE if |page| contains transparency. --DLLEXPORT FPDF_BOOL STDCALL FPDFPage_HasTransparency(void *page) FPDFPage_HasTransparency.l(page.i) -- Generate the content of |page|. -- -- page - handle to a page. -- -- Returns TRUE on success. -- -- Before you save the page to a file, or reload the page, you must call -- |FPDFPage_GenerateContent| or any changes to |page| will be lost. --DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GenerateContent(void *page) FPDFPage_GenerateContent.l(page.i) -- Checks if |pageObject| contains transparency. -- -- pageObject - handle to a page object. -- -- Returns TRUE if |pageObject| contains transparency. --DLLEXPORT FPDF_BOOL STDCALL FPDFPageObj_HasTransparency(void *pageObject) FPDFPageObj_HasTransparency.l(pageObject.i) -- Transform |pageObject| by the given matrix. -- -- page_object - handle to a page object. -- a - matrix value. -- b - matrix value. -- c - matrix value. -- d - matrix value. -- e - matrix value. -- f - matrix value. -- -- The matrix is composed as: -- |a c e| -- |b d f| -- and can be used to scale, rotate, shear and translate the |page_object|. FPDFPageObj_Transform(page_object.i, a.d, b.d, c.d, d.d, e.d, f.d) -- Transform all annotations in |page|. -- -- page - handle to a page. -- a - matrix value. -- b - matrix value. -- c - matrix value. -- d - matrix value. -- e - matrix value. -- f - matrix value. -- -- The matrix is composed as: -- |a c e| -- |b d f| -- and can be used to scale, rotate, shear and translate the |page| annotations. FPDFPage_TransformAnnots(page.i, a.d, b.d, c.d, d.d, e.d, f.d) -- Create a new image object. -- -- document - handle to a document. -- -- Returns a handle to a new image object. --DLLEXPORT FPDF_PAGEOBJECT STDCALL FPDFPageObj_NewImgeObj(document.i) FPDFPageObj_NewImgeObj.i(document.i) -- Load an image from a JPEG image file and then set it into |image_object|. -- -- pages - pointer to the start of all loaded pages, may be NULL. -- nCount - number of |pages|, may be 0. -- image_object - handle to an image object. -- fileAccess - file access handler which specifies the JPEG image file. -- -- Returns TRUE on success. -- -- The image object might already have an associated image, which is shared and -- cached by the loaded pages. In that case, we need to clear the cached image -- for all the loaded pages. Pass |pages| and page count (|nCount|) to this API -- to clear the image cache. If the image is not previously shared, or NULL is a -- valid |pages| value. --DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_LoadJpegFile(FPDF_PAGE* pages, nCount.l, void *image_object, *fileAccess.FPDF_FILEACCESS) FPDFImageObj_LoadJpegFile.l(pages.i, nCount.l, image_object.i, *fileAccess.FPDF_FILEACCESS) -- Set the transform matrix of |image_object|. -- -- image_object - handle to an image object. -- a - matrix value. -- b - matrix value. -- c - matrix value. -- d - matrix value. -- e - matrix value. -- f - matrix value. -- -- The matrix is composed as: -- |a c e| -- |b d f| -- and can be used to scale, rotate, shear and translate the |page| annotations. -- -- Returns TRUE on success. --DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_SetMatrix(void *image_object, a.d, b.d, c.d, d.d, e.d, f.d) FPDFImageObj_SetMatrix.l(image_object.i, a.d, b.d, c.d, d.d, e.d, f.d) -- Set |bitmap| to |image_object|. -- -- pages - pointer to the start of all loaded pages, may be NULL. -- nCount - number of |pages|, may be 0. -- image_object - handle to an image object. -- bitmap - handle of the bitmap. -- -- Returns TRUE on success. --DLLEXPORT FPDF_BOOL STDCALL FPDFImageObj_SetBitmap(FPDF_PAGE* pages, nCount.l, void *image_object, void *bitmap) FPDFImageObj_SetBitmap.l(*pages.integer, nCount.l, image_object.i, bitmap.i) -- Setup an unsupported object handler. -- -- unsp_info - Pointer to an UNSUPPORT_INFO structure. -- -- Returns TRUE on success. --DLLEXPORT FPDF_BOOL STDCALL FSDK_SetUnSpObjProcessHandler(*unsp_info.UNSUPPORT_INFO) FSDK_SetUnSpObjProcessHandler.l(*unsp_info.UNSUPPORT_INFO) -- Get the document's PageMode. -- -- doc - Handle to document. -- -- Returns one of the |PAGEMODE_*| flags defined above. -- -- The page mode defines how the document should be initially displayed. --DLLEXPORT int STDCALL FPDFDoc_GetPageMode(document.i) FPDFDoc_GetPageMode.l(document.i) -- Flatten annotations and form fields into the page contents. -- -- page - handle to the page. -- nFlag - One of the |FLAT_*| values denoting the page usage. -- -- Returns one of the |FLATTEN_*| values. -- -- Currently, all failures return |FLATTEN_FAIL| with no indication of the -- cause. --DLLEXPORT int STDCALL FPDFPage_Flatten(void *page, nFlag.l) FPDFPage_Flatten.l(page.i, nFlag.l) -- Function signature For the callback function passed To the FFI_SetTimer -- method. -- Parameters: -- idEvent - Identifier of the timer. -- Return value: -- None. -- Prototype.i TimerCallback(idEvent.l) -- Function: FPDFDOC_InitFormFillEnvironment -- Init form fill environment. -- Comments: -- This function should be called before any form fill operation. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- pFormFillInfo - Pointer To a FPDF_FORMFILLINFO Structure. -- Return Value: -- Return handler To the form fill Module. NULL means fails. --DLLEXPORT FPDF_FORMHANDLE STDCALL FPDFDOC_InitFormFillEnvironment(document.i, *formInfo.FPDF_FORMFILLINFO) FPDFDOC_InitFormFillEnvironment.i(document.i, *formInfo.FPDF_FORMFILLINFO) -- Function: FPDFDOC_ExitFormFillEnvironment -- Exit form fill environment. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- Return Value: -- NULL. FPDFDOC_ExitFormFillEnvironment(hHandle.i) -- Function: FORM_OnAfterLoadPage -- This method is required For implementing all the form related --functions. Should be invoked after user -- successfully loaded a PDF page, And method --FPDFDOC_InitFormFillEnvironment had been invoked. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- Return Value: -- NONE. FORM_OnAfterLoadPage(page.i, hHandle.i) -- Function: FORM_OnBeforeClosePage -- This method is required For implementing all the form related --functions. Should be invoked before user -- close the PDF page. -- Parameters: -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- Return Value: -- NONE. FORM_OnBeforeClosePage(page.i, hHandle.i) -- Function: FORM_DoDocumentJSAction -- This method is required For performing Document-level JavaScript --action. It should be invoked after the PDF document -- had been loaded. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- Return Value: -- NONE -- Comments: -- If there is Document-level JavaScript action embedded in the --document, this method will execute the javascript action-- -- otherwise, the method will do nothing. FORM_DoDocumentJSAction(hHandle.i) -- Function: FORM_DoDocumentOpenAction -- This method is required For performing open-action when the document --is opened. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- Return Value: -- NONE -- Comments: -- This method will do nothing If there is no open-actions embedded in --the document. FORM_DoDocumentOpenAction(hHandle.i) -- Function: FORM_DoDocumentAAction -- This method is required For performing the document's --additional-action. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- aaType - The type of the additional-actions which defined --above. -- Return Value: -- NONE -- Comments: -- This method will do nothing If there is no document --additional-action corresponding To the specified aaType. FORM_DoDocumentAAction(hHandle.i, aaType.l) -- Function: FORM_DoPageAAction -- This method is required For performing the page object's --additional-action when opened Or closed. -- Parameters: -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- aaType - The type of the page object's additional-actions --which defined above. -- Return Value: -- NONE -- Comments: -- This method will do nothing If no additional-action corresponding To --the specified aaType exists. FORM_DoPageAAction(page.i, hHandle.i, aaType.l) -- Function: FORM_OnMouseMove -- You can call this member function when the mouse cursor moves. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- modifier - Indicates whether various virtual keys are down. -- page_x - Specifies the x-coordinate of the cursor in PDF user --space. -- page_y - Specifies the y-coordinate of the cursor in PDF user --space. -- Return Value: -- TRUE indicates success-- otherwise false. --DLLEXPORT FPDF_BOOL STDCALL FORM_OnMouseMove(void *hHandle, void *page, modifier.l, page_x.d, page_y.d) FORM_OnMouseMove.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) -- Function: FORM_OnLButtonDown -- You can call this member function when the user presses the left --mouse button. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- modifier - Indicates whether various virtual keys are down. -- page_x - Specifies the x-coordinate of the cursor in PDF user --space. -- page_y - Specifies the y-coordinate of the cursor in PDF user --space. -- Return Value: -- TRUE indicates success-- otherwise false. --DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonDown(void *hHandle, void *page, modifier.l, page_x.d, page_y.d) FORM_OnLButtonDown.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) -- Function: FORM_OnLButtonUp -- You can call this member function when the user releases the left --mouse button. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- modifier - Indicates whether various virtual keys are down. -- page_x - Specifies the x-coordinate of the cursor in device. -- page_y - Specifies the y-coordinate of the cursor in device. -- Return Value: -- TRUE indicates success-- otherwise false. --DLLEXPORT FPDF_BOOL STDCALL FORM_OnLButtonUp(void *hHandle, void *page, modifier.l, page_x.d, page_y.d) FORM_OnLButtonUp.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) --FORM_OnRButtonDown.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) FORM_OnRButtonDown.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) FORM_OnRButtonUp.l(hHandle.i, page.i, modifier.l, page_x.d, page_y.d) -- Function: FORM_OnKeyDown -- You can call this member function when a nonsystem key is pressed. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- nKeyCode - Indicates whether various virtual keys are down. -- modifier - Contains the scan code, key-transition code, *previous key state, And context code. -- Return Value: -- TRUE indicates success-- otherwise false. --DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyDown(void *hHandle, void *page, nKeyCode.l, modifier.l) FORM_OnKeyDown.l(hHandle.i, page.i, nKeyCode.l, modifier.l) -- Function: FORM_OnKeyUp -- You can call this member function when a nonsystem key is released. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- nKeyCode - The virtual-key code of the given key. -- modifier - Contains the scan code, key-transition code, *previous key state, And context code. -- Return Value: -- TRUE indicates success-- otherwise false. --DLLEXPORT FPDF_BOOL STDCALL FORM_OnKeyUp(void *hHandle, void *page, nKeyCode.l, modifier.l) FORM_OnKeyUp.l(hHandle.i, page.i, nKeyCode.l, modifier.l) -- Function: FORM_OnChar -- You can call this member function when a keystroke translates To a --nonsystem character. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- nChar - The character code value of the key. -- modifier - Contains the scan code, key-transition code, *previous key state, And context code. -- Return Value: -- TRUE indicates success-- otherwise false. --DLLEXPORT FPDF_BOOL STDCALL FORM_OnChar(void *hHandle, void *page, nChar.l, modifier.l) FORM_OnChar.l(hHandle.i, page.i, nChar.l, modifier.l) -- Function: FORM_ForceToKillFocus. -- You can call this member function To force To kill the focus of the --form field which got focus. -- It would kill the focus on the form field, save the value of form --field If it's changed by user. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- Return Value: -- TRUE indicates success-- otherwise false. --DLLEXPORT FPDF_BOOL STDCALL FORM_ForceToKillFocus(void *hHandle) FORM_ForceToKillFocus.l(hHandle.i) -- Function: FPDFPage_HasFormFieldAtPoint -- Get the form field type by point. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by -- FPDFDOC_InitFormFillEnvironment(). -- page - Handle To the page. Returned by FPDF_LoadPage(). -- page_x - X position in PDF "user space". -- page_y - Y position in PDF "user space". -- Return Value: -- Return the type of the form field-- -1 indicates no field. -- See field types above. --DLLEXPORT int STDCALL FPDFPage_HasFormFieldAtPoint(void *hHandle, void *page, page_x.d, page_y.d) FPDFPage_HasFormFieldAtPoint.l(hHandle.i, page.i, page_x.d, page_y.d) -- Function: FPDPage_HasFormFieldAtPoint -- DEPRECATED. Please use FPDFPage_HasFormFieldAtPoint. --DLLEXPORT int STDCALL FPDPage_HasFormFieldAtPoint(void *hHandle, void *page, page_x.d, page_y.d) FPDPage_HasFormFieldAtPoint.l(hHandle.i, page.i, page_x.d, page_y.d) -- Function: FPDFPage_FormFieldZOrderAtPoint -- Get the form field z-order by point. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by -- FPDFDOC_InitFormFillEnvironment(). -- page - Handle To the page. Returned by FPDF_LoadPage(). -- page_x - X position in PDF "user space". -- page_y - Y position in PDF "user space". -- Return Value: -- Return the z-order of the form field-- -1 indicates no field. -- Higher numbers are closer To the front. --DLLEXPORT int STDCALL FPDFPage_FormFieldZOrderAtPoint(void *hHandle, void *page, page_x.d, page_y.d) FPDFPage_FormFieldZOrderAtPoint.l(hHandle.i, page.i, page_x.d, page_y.d) -- Function: FPDF_SetFormFieldHighlightColor -- Set the highlight color of specified Or all the form fields in the --document. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- doc - Handle To the document. Returned by --FPDF_LoadDocument function. -- fieldType - A 32-bit integer indicating the type of a form --field(defined above). -- color - The highlight color of the form field.Constructed by --0xxxrrggbb. -- Return Value: -- NONE. -- Comments: -- When the parameter fieldType is set To zero, the highlight color will be applied To all the form fields in the document. -- Please refresh the client window To show the highlight immediately if necessary. FPDF_SetFormFieldHighlightColor(hHandle.i, fieldType.l, color.i) -- Function: FPDF_SetFormFieldHighlightAlpha -- Set the transparency of the form field highlight color in the --document. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- doc - Handle To the document. Returned by --FPDF_LoadDocument function. -- alpha - The transparency of the form field highlight color. --between 0-255. -- Return Value: -- NONE. FPDF_SetFormFieldHighlightAlpha(hHandle.i, alpha.a) -- Function: FPDF_RemoveFormFieldHighlight -- Remove the form field highlight color in the document. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- Return Value: -- NONE. -- Comments: -- Please refresh the client window To remove the highlight immediately --if necessary. FPDF_RemoveFormFieldHighlight(hHandle.i) -- Function: FPDF_FFLDraw -- Render FormFields And popup window on a page To a device independent --bitmap. -- Parameters: -- hHandle - Handle To the form fill Module. Returned by --FPDFDOC_InitFormFillEnvironment. -- bitmap - Handle To the device independent bitmap (As the --output buffer). -- Bitmap handle can be created by FPDFBitmap_Create --function. -- page - Handle To the page. Returned by FPDF_LoadPage --function. -- start_x - Left pixel position of the display area in the --device coordinate. -- start_y - Top pixel position of the display area in the device --coordinate. -- size_x - Horizontal size (in pixels) For displaying the page. -- size_y - Vertical size (in pixels) For displaying the page. -- rotate - Page orientation: 0 (normal), 1 (rotated 90 degrees --clockwise), * 2 (rotated 180 degrees), 3 (rotated 90 degrees --counter-clockwise). -- flags - 0 For normal display, Or combination of flags --defined above. -- Return Value: -- None. -- Comments: -- This function is designed To render annotations that are --user-interactive, which are widget annotation (For FormFields) And popup --annotation. -- With FPDF_ANNOT flag, this function will render popup annotation --when users mouse-hover on non-widget annotation. Regardless of FPDF_ANNOT flag, *this function will always render widget annotations For FormFields. -- In order To implement the FormFill functions, implementation should --call this function after rendering functions, such As FPDF_RenderPageBitmap Or --FPDF_RenderPageBitmap_Start, finish rendering the page contents. FPDF_FFLDraw(hHandle.i, bitmap.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l) FPDF_FFLRecord(hHandle.i, recorder.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l) -- Function: FPDF_HasXFAField -- This method is designed To check whether a pdf document has XFA fields. -- Parameters: -- document - Handle To document. --Returned by FPDF_LoadDocument function. -- docType - Document type defined As --DOCTYPE_xxx. -- Return Value: -- TRUE indicates that the input document has XFA fields, *otherwise FALSE. --DLLEXPORT FPDF_BOOL STDCALL FPDF_HasXFAField(document.i, int* docType) FPDF_HasXFAField.l(document.i, *docType.long) -- Function: FPDF_LoadXFA -- If the document consists of XFA fields, there should call this --method To load XFA fields. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- Return Value: -- TRUE indicates success,otherwise FALSE. --DLLEXPORT FPDF_BOOL STDCALL FPDF_LoadXFA(document.i) FPDF_LoadXFA.l(document.i) -- Function: FPDF_Widget_Undo -- This method will implement the undo feature For the specified xfa --field. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- hWidget - Handle To the xfa field. -- Return Value: -- None. FPDF_Widget_Undo(document.i, hWidget.i) -- Function: FPDF_Widget_Redo -- This method will implement the redo feature For the specified xfa --field. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- hWidget - Handle To the xfa field. -- Return Value: -- None. FPDF_Widget_Redo(document.i, hWidget.i) -- Function: FPDF_Widget_SelectAll -- This method will implement the Select all feature For the specified --xfa field. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- hWidget - Handle To the xfa field. -- Return Value: -- None. FPDF_Widget_SelectAll(document.i, hWidget.i) -- Function: FPDF_Widget_Copy -- This method will implement the copy feature For the specified xfa --field. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- hWidget - Handle To the xfa field. -- wsText - Pointer To Data buffer To receive the copied --data, in UTF-16LE format. -- size - The Data buffer size. -- Return Value: -- None. FPDF_Widget_Copy(document.i, hWidget.i, *wsText.string, *size.Integer) -- Function: FPDF_Widget_Cut -- This method will implement the cut feature For the specified xfa --field. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- hWidget - Handle To the xfa field. -- wsText - Pointer To Data buffer To receive the cut --data,in UTF-16LE format. -- size - The Data buffer size,Not the byte number. -- Return Value: -- None. FPDF_Widget_Cut(document.i, hWidget.i, *wsText.string, *size.Integer) -- Function: FPDF_Widget_Paste -- This method will implement the paste feature For the specified xfa --field. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- hWidget - Handle To the xfa field. -- wsText - The paste text buffer, in UTF-16LE format. -- size - The Data buffer size,Not the byte number. -- Return Value: -- None. FPDF_Widget_Paste(document.i, hWidget.i, *wsText.string, size.i) -- Function: FPDF_Widget_ReplaceSpellCheckWord -- This method will implement the spell check feature For the specified --xfa field. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- hWidget - Handle To the xfa field. -- x - The x value of the specified point. -- y - The y value of the specified point. -- bsText - The text buffer needed To be speck check, in --UTF-16LE format. -- Return Value: -- None. FPDF_Widget_ReplaceSpellCheckWord(document.i, hWidget.i, x.f, y.f, *bsText.p-ascii) -- Function: FPDF_Widget_GetSpellCheckWords -- This method will implement the spell check feature For the specified --xfa field. -- Parameters: -- document - Handle To document. Returned by --FPDF_LoadDocument function. -- hWidget - Handle To the xfa field. -- x - The x value of the specified point. -- y - The y value of the specified point. -- stringHandle - Pointer To FPDF_STRINGHANDLE To receive the --speck check text buffer, in UTF-16LE format. -- Return Value: -- None. FPDF_Widget_GetSpellCheckWords(document.i, hWidget.i, x.f, y.f, *stringHandle.string) -- Function: FPDF_StringHandleCounts -- This method will get the count of the text buffer. -- Parameters: -- stringHandle - Pointer To FPDF_STRINGHANDLE. -- Return Value: -- None. --DLLEXPORT int STDCALL FPDF_StringHandleCounts(void *stringHandle) FPDF_StringHandleCounts.l(*stringHandle.string) -- Function: FPDF_StringHandleGetStringByIndex -- This method will get the specified index of the text buffer. -- Parameters: -- stringHandle - Pointer To FPDF_STRINGHANDLE. -- index - The specified index of text buffer. -- bsText - Pointer To Data buffer To receive the textbuffer, in UTF-16LE format. -- size - The byte size of Data buffer. -- Return Value: -- TRUE indicates success, otherwise FALSE. --DLLEXPORT FPDF_BOOL STDCALL FPDF_StringHandleGetStringByIndex(void *stringHandle, index.l, FPDF_BYTESTRING bsText, *size.Integer) FPDF_StringHandleGetStringByIndex.l(*stringHandle.string, index.l, *bsText.p-ascii, *size.Integer) -- Function: FPDF_StringHandleRelease -- This method will release the FPDF_STRINGHANDLE. -- Parameters: -- stringHandle - Pointer To FPDF_STRINGHANDLE. -- Return Value: -- None. FPDF_StringHandleRelease(*stringHandle.string) -- Function: FPDF_StringHandleAddString -- This method will add the specified text buffer. -- Parameters: -- stringHandle - Pointer To FPDF_STRINGHANDLE. -- bsText - Pointer To Data buffer of the text buffer, in --UTF-16LE format. -- size - The byte size of Data buffer. -- Return Value: -- TRUE indicates success, otherwise FALSE. --DLLEXPORT FPDF_BOOL STDCALL FPDF_StringHandleAddString(void *stringHandle, FPDF_BYTESTRING bsText, size.i) FPDF_StringHandleAddString.l(*stringHandle.string, *bsText.p-ascii, size.i) -- Import pages to a FPDF_DOCUMENT. -- -- dest_doc - The destination document for the pages. -- src_doc - The document to be imported. -- pagerange - A page range string, Such as "1,3,5-7". If |pagerange| is NULL, all pages from |src_doc| are imported. -- index - The page index to insert at. -- -- Returns TRUE on success. --DLLEXPORT FPDF_BOOL STDCALL FPDF_ImportPages(FPDF_DOCUMENT dest_doc.i, FPDF_DOCUMENT src_doc, FPDF_BYTESTRING pagerange, index.l) FPDF_ImportPages.l(dest_doc.i, src_doc.i, *pagerange.p-ascii, index.l) -- Copy the viewer preferences from |src_doc| into |dest_doc|. -- -- dest_doc - Document to write the viewer preferences into. -- src_doc - Document to read the viewer preferences from. -- -- Returns TRUE on success. --DLLEXPORT FPDF_BOOL STDCALL FPDF_CopyViewerPreferences(FPDF_DOCUMENT dest_doc, FPDF_DOCUMENT src_doc) FPDF_CopyViewerPreferences.l(dest_doc.i, src_doc.i) -- Function: FPDF_RenderPageBitmap_Start -- Start to render page contents to a device independent bitmap -- progressively. -- Parameters: -- bitmap - Handle to the device independent bitmap (as the -- output buffer). -- Bitmap handle can be created by FPDFBitmap_Create -- function. -- page - Handle to the page. Returned by FPDF_LoadPage -- function. -- start_x - Left pixel position of the display area in the -- bitmap coordinate. -- start_y - Top pixel position of the display area in the bitmap -- coordinate. -- size_x - Horizontal size (in pixels) for displaying the page. -- size_y - Vertical size (in pixels) for displaying the page. -- rotate - Page orientation: 0 (normal), 1 (rotated 90 degrees -- clockwise), -- 2 (rotated 180 degrees), 3 (rotated 90 degrees -- counter-clockwise). -- flags - 0 for normal display, or combination of flags -- defined in fpdfview.h. With FPDF_ANNOT flag, it -- renders all annotations that does not require -- user-interaction, which are all annotations except -- widget and popup annotations. -- pause - The IFSDK_PAUSE interface.A callback mechanism -- allowing the page rendering process -- Return value: -- Rendering Status. See flags for progressive process status for the -- details. -- --DLLEXPORT int STDCALL FPDF_RenderPageBitmap_Start(void *bitmap, void *page, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l, IFSDK_PAUSE* pause) FPDF_RenderPageBitmap_Start.l(bitmap.i, page.i, start_x.l, start_y.l, size_x.l, size_y.l, rotate.l, flags.l, *pause.IFSDK_PAUSE) -- Function: FPDF_RenderPage_Continue -- Continue rendering a PDF page. -- Parameters: -- page - Handle to the page. Returned by FPDF_LoadPage -- function. -- pause - The IFSDK_PAUSE interface.A callback mechanism -- allowing the page rendering process -- to be paused before it's finished. This can be NULL -- if you don't want to pause. -- Return value: -- The rendering status. See flags for progressive process status for -- the details. --DLLEXPORT int STDCALL FPDF_RenderPage_Continue(void *page, IFSDK_PAUSE* pause) FPDF_RenderPage_Continue.l(page.i, *pause.IFSDK_PAUSE) -- Function: FPDF_RenderPage_Close -- Release the resource allocate during page rendering. Need to be -- called after finishing rendering or -- cancel the rendering. -- Parameters: -- page - Handle to the page. Returned by FPDF_LoadPage -- function. -- Return value: -- NULL FPDF_RenderPage_Close(page.i) -- Function: FPDF_SaveAsCopy -- Saves the copy of specified document in custom way. -- Parameters: -- document - Handle to document. Returned by -- FPDF_LoadDocument and FPDF_CreateNewDocument. -- pFileWrite - A pointer to a custom file write structure. -- flags - The creating flags. -- Return value: -- TRUE for succeed, FALSE for failed. -- --DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy(document.i, FPDF_FILEWRITE* pFileWrite, flags.i) FPDF_SaveAsCopy.l(document.i, *pFileWrite.FPDF_FILEWRITE, flags.i) -- Function: FPDF_SaveWithVersion -- Same as function ::FPDF_SaveAsCopy, except the file version of the -- saved document could be specified by user. -- Parameters: -- document - Handle to document. -- pFileWrite - A pointer to a custom file write structure. -- flags - The creating flags. -- fileVersion - The PDF file version. File version: 14 for 1.4, -- 15 for 1.5, ... -- Return value: -- TRUE if succeed, FALSE if failed. -- --DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion(document.i, FPDF_FILEWRITE* pFileWrite, flags.i, fileVersion.l) FPDF_SaveWithVersion.l(document.i, *pFileWrite.FPDF_FILEWRITE, flags.i, fileVersion.l) -- Get the character index in |text_page| internal character list. -- -- text_page - a text page information structure. -- nTextIndex - index of the text returned from |FPDFText_GetText|. -- -- Returns the index of the character in internal character list. -1 for error. --DLLEXPORT int STDCALL FPDFText_GetCharIndexFromTextIndex(void *text_page, nTextIndex.l) FPDFText_GetCharIndexFromTextIndex.l(text_page.i, nTextIndex.l) -- Function: FPDF_GetDefaultTTFMap -- Returns a pointer To the Default character set To TT Font name Map. The -- Map is an Array of FPDF_CharsetFontMap structs, With its End indicated -- by a { -1, NULL } entry. -- Parameters: -- None. -- Return Value: -- Pointer To the Charset Font Map. --DLLEXPORT const FPDF_CharsetFontMap* STDCALL FPDF_GetDefaultTTFMap() FPDF_GetDefaultTTFMap.i() -- Function: FPDF_AddInstalledFont -- Add a system font To the List in Foxit SDK. -- Comments: -- This function is only called during the system font List building --process. -- Parameters: -- mapper - Opaque pointer To Foxit font mapper -- face - The font face name -- charset - Font character set. See above defined constants. -- Return Value: -- None. FPDF_AddInstalledFont(mapper.i, *face.p-ascii, charset.l) -- Function: FPDF_SetSystemFontInfo -- Set the system font info Interface into Foxit SDK -- Comments: -- Platform support implementation should implement required methods of --FFDF_SYSFONTINFO Interface, * then call this function during SDK initialization process. -- Parameters: -- pFontInfo - Pointer To a FPDF_SYSFONTINFO Structure -- Return Value: -- None FPDF_SetSystemFontInfo(*pFontInfo.FPDF_SYSFONTINFO) -- Function: FPDF_GetDefaultSystemFontInfo -- Get Default system font info Interface For current platform -- Comments: -- For some platforms Foxit SDK implement a Default version of system --font info Interface. -- The Default implementation can be used in FPDF_SetSystemFontInfo --function. -- Parameters: -- None -- Return Value: -- Pointer To a FPDF_SYSFONTINFO Structure describing the Default --interface. -- Or NULL If the platform doesn't have a default interface. -- Application should call FPDF_FreeMemory To free the returned --pointer. --DLLEXPORT FPDF_SYSFONTINFO* STDCALL FPDF_GetDefaultSystemFontInfo() FPDF_GetDefaultSystemFontInfo.i() -- Function: FPDFText_LoadPage -- Prepare information about all characters in a page. -- Parameters: -- page - Handle to the page. Returned by FPDF_LoadPage function -- (in FPDFVIEW module). -- Return value: -- A handle to the text page information structure. -- NULL if something goes wrong. -- Comments: -- Application must call FPDFText_ClosePage to release the text page -- information. -- --DLLEXPORT FPDF_TEXTPAGE STDCALL FPDFText_LoadPage(void *page) FPDFText_LoadPage.i(page.i) -- Function: FPDFText_ClosePage -- Release all resources allocated for a text page information -- structure. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- Return Value: -- None. -- FPDFText_ClosePage(text_page.i) -- Function: FPDFText_CountChars -- Get number of characters in a page. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- Return value: -- Number of characters in the page. Return -1 for error. -- Generated characters, like additional space characters, new line -- characters, are also counted. -- Comments: -- Characters in a page form a "stream", inside the stream, each -- character has an index. -- We will use the index parameters in many of FPDFTEXT functions. The -- first character in the page -- has an index value of zero. -- --DLLEXPORT int STDCALL FPDFText_CountChars(void *text_page) FPDFText_CountChars.l(text_page.i) -- Function: FPDFText_GetUnicode -- Get Unicode of a character in a page. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- index - Zero-based index of the character. -- Return value: -- The Unicode of the particular character. -- If a character is not encoded in Unicode and Foxit engine can't -- convert to Unicode, the return value will be zero. -- --DLLEXPORT unsigned int STDCALL FPDFText_GetUnicode(void *text_page, index.l) FPDFText_GetUnicode.l(text_page.i, index.l) -- Function: FPDFText_GetFontSize -- Get the font size of a particular character. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- index - Zero-based index of the character. -- Return value: -- The font size of the particular character, measured in points (about -- 1/72 inch). -- This is the typographic size of the font (so called "em size"). -- --DLLEXPORT double STDCALL FPDFText_GetFontSize(void *text_page, index.l) FPDFText_GetFontSize.d(text_page.i, index.l) -- Function: FPDFText_GetCharBox -- Get bounding box of a particular character. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- index - Zero-based index of the character. -- left - Pointer to a double number receiving left position -- of the character box. -- right - Pointer to a double number receiving right position -- of the character box. -- bottom - Pointer to a double number receiving bottom position -- of the character box. -- top - Pointer to a double number receiving top position of -- the character box. -- Return Value: -- None. -- Comments: -- All positions are measured in PDF "user space". -- FPDFText_GetCharBox(text_page.i, index.l, *left.Double, *right.Double, *bottom.Double, *top.Double) -- Function: FPDFText_GetCharIndexAtPos -- Get the index of a character at or nearby a certain position on the -- page. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- x - X position in PDF "user space". -- y - Y position in PDF "user space". -- xTolerance - An x-axis tolerance value for character hit -- detection, in point unit. -- yTolerance - A y-axis tolerance value for character hit -- detection, in point unit. -- Return Value: -- The zero-based index of the character at, or nearby the point (x,y). -- If there is no character at or nearby the point, return value will -- be -1. -- If an error occurs, -3 will be returned. -- --DLLEXPORT int STDCALL FPDFText_GetCharIndexAtPos(void *text_page, x.d, y.d, double xTolerance, double yTolerance) FPDFText_GetCharIndexAtPos.l(text_page.i, x.d, y.d, xTolerance.d, yTolerance.d) -- Function: FPDFText_GetText -- Extract unicode text string from the page. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- start_index - Index for the start characters. -- count - Number of characters to be extracted. -- result - A buffer (allocated by application) receiving the -- extracted unicodes. -- The size of the buffer must be able to hold the -- number of characters plus a terminator. -- Return Value: -- Number of characters written into the result buffer, including the -- trailing terminator. -- Comments: -- This function ignores characters without unicode information. -- --DLLEXPORT int STDCALL FPDFText_GetText(void *text_page, start_index.l, count.l, *result.long) FPDFText_GetText.l(text_page.i, start_index.l, count.l, *result.long) -- Function: FPDFText_CountRects -- Count number of rectangular areas occupied by a segment of texts. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- start_index - Index for the start characters. -- count - Number of characters. -- Return value: -- Number of rectangles. Zero for error. -- Comments: -- This function, along with FPDFText_GetRect can be used by -- applications to detect the position -- on the page for a text segment, so proper areas can be highlighted -- or something. -- FPDFTEXT will automatically merge small character boxes into bigger -- one if those characters -- are on the same line and use same font settings. -- --DLLEXPORT int STDCALL FPDFText_CountRects(void *text_page, start_index.l, count.l) FPDFText_CountRects.l(text_page.i, start_index.l, count.l) -- Function: FPDFText_GetRect -- Get a rectangular area from the result generated by -- FPDFText_CountRects. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- rect_index - Zero-based index for the rectangle. -- left - Pointer to a double value receiving the rectangle -- left boundary. -- top - Pointer to a double value receiving the rectangle -- top boundary. -- right - Pointer to a double value receiving the rectangle -- right boundary. -- bottom - Pointer to a double value receiving the rectangle -- bottom boundary. -- Return Value: -- None. -- FPDFText_GetRect(text_page.i, rect_index.l, *left.Double, *top.Double, *right.Double, *bottom.Double) -- Function: FPDFText_GetBoundedText -- Extract unicode text within a rectangular boundary on the page. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- left - Left boundary. -- top - Top boundary. -- right - Right boundary. -- bottom - Bottom boundary. -- buffer - A unicode buffer. -- buflen - Number of characters (not bytes) for the buffer, excluding an additional terminator. -- Return Value: -- If buffer is NULL or buflen is zero, return number of characters -- (not bytes) of text present within -- the rectangle, excluding a terminating NUL. Generally you should -- pass a buffer at least one larger -- than this if you want a terminating NUL, which will be provided if -- space is available. -- Otherwise, return number of characters copied into the buffer, including the terminating NUL -- when space for it is available. -- Comment: -- If the buffer is too small, as much text as will fit is copied into -- it. -- --DLLEXPORT int STDCALL FPDFText_GetBoundedText(void *text_page, left.d, top.d, right.d, bottom.d, unsigned short* buffer, buflen.l) FPDFText_GetBoundedText.l(text_page.i, left.d, top.d, right.d, bottom.d, *buffer.string, buflen.l) -- Function: FPDFText_FindStart -- Start a search. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- findwhat - A unicode match pattern. -- flags - Option flags. -- start_index - Start from this character. -1 for end of the page. -- Return Value: -- A handle for the search context. FPDFText_FindClose must be called -- to release this handle. -- --DLLEXPORT FPDF_SCHHANDLE STDCALL FPDFText_FindStart(void *text_page, FPDF_WIDESTRING findwhat, flags.i, start_index.l) FPDFText_FindStart.i(text_page.i, *findwhat.string, flags.i, start_index.l) -- Function: FPDFText_FindNext -- Search in the direction from page start to end. -- Parameters: -- handle - A search context handle returned by -- FPDFText_FindStart. -- Return Value: -- Whether a match is found. -- --DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindNext(void *handle) FPDFText_FindNext.l(handle.i) -- Function: FPDFText_FindPrev -- Search in the direction from page end to start. -- Parameters: -- handle - A search context handle returned by -- FPDFText_FindStart. -- Return Value: -- Whether a match is found. -- --DLLEXPORT FPDF_BOOL STDCALL FPDFText_FindPrev(void *handle) FPDFText_FindPrev.l(handle.i) -- Function: FPDFText_GetSchResultIndex -- Get the starting character index of the search result. -- Parameters: -- handle - A search context handle returned by -- FPDFText_FindStart. -- Return Value: -- Index for the starting character. -- --DLLEXPORT int STDCALL FPDFText_GetSchResultIndex(void *handle) FPDFText_GetSchResultIndex.l(handle.i) -- Function: FPDFText_GetSchCount -- Get the number of matched characters in the search result. -- Parameters: -- handle - A search context handle returned by -- FPDFText_FindStart. -- Return Value: -- Number of matched characters. -- --DLLEXPORT int STDCALL FPDFText_GetSchCount(void *handle) FPDFText_GetSchCount.l(handle.i) -- Function: FPDFText_FindClose -- Release a search context. -- Parameters: -- handle - A search context handle returned by -- FPDFText_FindStart. -- Return Value: -- None. -- FPDFText_FindClose(handle.i) -- Function: FPDFLink_LoadWebLinks -- Prepare information about weblinks in a page. -- Parameters: -- text_page - Handle to a text page information structure. -- Returned by FPDFText_LoadPage function. -- Return Value: -- A handle to the page's links information structure. -- NULL if something goes wrong. -- Comments: -- Weblinks are those links implicitly embedded in PDF pages. PDF also -- has a type of -- annotation called "link", FPDFTEXT doesn't deal with that kind of -- link. -- FPDFTEXT weblink feature is useful for automatically detecting links -- in the page -- contents. For example, things like "http:--www.foxitsoftware.com" -- will be detected, -- so applications can allow user to click on those characters to -- activate the link, -- even the PDF doesn't come with link annotations. -- -- FPDFLink_CloseWebLinks must be called to release resources. -- --DLLEXPORT FPDF_PAGELINK STDCALL FPDFLink_LoadWebLinks(void *text_page) FPDFLink_LoadWebLinks.i(text_page.i) -- Function: FPDFLink_CountWebLinks -- Count number of detected web links. -- Parameters: -- link_page - Handle returned by FPDFLink_LoadWebLinks. -- Return Value: -- Number of detected web links. -- --DLLEXPORT int STDCALL FPDFLink_CountWebLinks(void *link_page) FPDFLink_CountWebLinks.l(link_page.i) -- Function: FPDFLink_GetURL -- Fetch the URL information for a detected web link. -- Parameters: -- link_page - Handle returned by FPDFLink_LoadWebLinks. -- link_index - Zero-based index for the link. -- buffer - A unicode buffer for the result. -- buflen - Number of characters (not bytes) for the buffer, -- including an additional terminator. -- Return Value: -- If |buffer| is NULL or |buflen| is zero, return the number of -- characters (not bytes) needed to buffer the result (an additional -- terminator is included in this count). -- Otherwise, copy the result into |buffer|, truncating at |buflen| if -- the result is too large to fit, and return the number of characters -- actually copied into the buffer (the additional terminator is also -- included in this count). -- If |link_index| does not correspond to a valid link, then the result -- is an empty string. -- --DLLEXPORT int STDCALL FPDFLink_GetURL(void *link_page, int link_index, unsigned short* buffer, buflen.l) FPDFLink_GetURL.l(link_page.i, link_index.l, *buffer.string, buflen.l) -- Function: FPDFLink_CountRects -- Count number of rectangular areas for the link. -- Parameters: -- link_page - Handle returned by FPDFLink_LoadWebLinks. -- link_index - Zero-based index for the link. -- Return Value: -- Number of rectangular areas for the link. If |link_index| does -- not correspond to a valid link, then 0 is returned. -- --DLLEXPORT int STDCALL FPDFLink_CountRects(void *link_page, int link_index) FPDFLink_CountRects.l(link_page.i, link_index.l) -- Function: FPDFLink_GetRect -- Fetch the boundaries of a rectangle for a link. -- Parameters: -- link_page - Handle returned by FPDFLink_LoadWebLinks. -- link_index - Zero-based index for the link. -- rect_index - Zero-based index for a rectangle. -- left - Pointer to a double value receiving the rectangle -- left boundary. -- top - Pointer to a double value receiving the rectangle -- top boundary. -- right - Pointer to a double value receiving the rectangle -- right boundary. -- bottom - Pointer to a double value receiving the rectangle -- bottom boundary. -- Return Value: -- None. If |link_index| does not correspond to a valid link, then -- |left|, |top|, |right|, and |bottom| remain unmodified. -- FPDFLink_GetRect(link_page.i, link_index.l, rect_index.l, *left.Double, *top.Double, *right.Double, *bottom.Double) -- Function: FPDFLink_CloseWebLinks -- Release resources used by weblink feature. -- Parameters: -- link_page - Handle returned by FPDFLink_LoadWebLinks. -- Return Value: -- None. -- FPDFLink_CloseWebLinks(link_page.i) -- Set "MediaBox" entry To the page dictionary. -- @param[in] page - Handle To a page. -- @param[in] left - The left of the rectangle. -- @param[in] bottom - The bottom of the rectangle. -- @param[in] right - The right of the rectangle. -- @param[in] top - The top of the rectangle. -- @retval None. FPDFPage_SetMediaBox(page.i, left.f, bottom.f, right.f, top.f) -- Set "CropBox" entry To the page dictionary. -- @param[in] page - Handle To a page. -- @param[in] left - The left of the rectangle. -- @param[in] bottom - The bottom of the rectangle. -- @param[in] right - The right of the rectangle. -- @param[in] top - The top of the rectangle. -- @retval None. FPDFPage_SetCropBox(page.i, left.f, bottom.f, right.f, top.f) -- Get "MediaBox" entry from the page dictionary. -- @param[in] page - Handle To a page. -- @param[in] left - Pointer To a double value receiving the left of the -- rectangle. -- @param[in] bottom - Pointer To a double value receiving the bottom of the -- rectangle. -- @param[in] right - Pointer To a double value receiving the right of the -- rectangle. -- @param[in] top - Pointer To a double value receiving the top of the -- rectangle. -- @retval True If success,Else fail. --DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetMediaBox(void *page, float* left, float* bottom, float* right, float* top) FPDFPage_GetMediaBox.l(page.i, *left.float, *bottom.float, *right.float, *top.float) -- Get "CropBox" entry from the page dictionary. -- @param[in] page - Handle To a page. -- @param[in] left - Pointer To a double value receiving the left of the -- rectangle. -- @param[in] bottom - Pointer To a double value receiving the bottom of the -- rectangle. -- @param[in] right - Pointer To a double value receiving the right of the -- rectangle. -- @param[in] top - Pointer To a double value receiving the top of the -- rectangle. -- @retval True If success,Else fail. --DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GetCropBox(void *page, float* left, float* bottom, float* right, float* top) FPDFPage_GetCropBox.l(page.i, *left.float, *bottom.float, *right.float, *top.float) -- Transform the whole page With a specified matrix, then clip the page content -- region. -- -- @param[in] page - A page handle. -- @param[in] matrix - The transform matrix. -- @param[in] clipRect - A rectangle page area To be clipped. -- @Note. This function will transform the whole page, And would take effect To -- all the objects in the page. --DLLEXPORT FPDF_BOOL STDCALL FPDFPage_TransFormWithClip(void *page, FS_MATRIX* matrix, FS_RECTF* clipRect) FPDFPage_TransFormWithClip.l(page.i, *matrix.FS_MATRIX, *clipRect.FS_RECTF) -- Transform (scale, rotate, shear, move) the clip path of page object. -- @param[in] page_object - Handle To a page object. Returned by -- FPDFPageObj_NewImageObj. -- @param[in] a - The coefficient "a" of the matrix. -- @param[in] b - The coefficient "b" of the matrix. -- @param[in] c - The coefficient "c" of the matrix. -- @param[in] d - The coefficient "d" of the matrix. -- @param[in] e - The coefficient "e" of the matrix. -- @param[in] f - The coefficient "f" of the matrix. -- @retval None. FPDFPageObj_TransformClipPath(page_object.i, a.d, b.d, c.d, d.d, e.d, f.d) -- Create a new clip path, With a rectangle inserted. -- -- @param[in] left - The left of the clip box. -- @param[in] bottom - The bottom of the clip box. -- @param[in] right - The right of the clip box. -- @param[in] top - The top of the clip box. -- @retval a handle To the clip path. --DLLEXPORT FPDF_CLIPPATH STDCALL FPDF_CreateClipPath(float left, float bottom, float right, float top) FPDF_CreateClipPath.i(left.f, bottom.f, right.f, top.f) -- Destroy the clip path. -- -- @param[in] clipPath - A handle To the clip path. -- Destroy the clip path. -- @retval None. FPDF_DestroyClipPath(clipPath.i) -- Clip the page content, the page content that outside the clipping region -- become invisible. -- -- @param[in] page - A page handle. -- @param[in] clipPath - A handle To the clip path. -- @Note. A clip path will be inserted before the page content stream Or content -- Array. In this way, the page content will be clipped -- by this clip path. FPDFPage_InsertClipPath(page.i, clipPath.i) */ public constant PFPDF_LIBRARY_CONFIG = C_POINTER, PFPDF_FILEACCESS = C_POINTER, PFX_DOWNLOADHINTS = C_POINTER, PFS_QUADPOINTSF = C_POINTER, PFPDF_FORMFILLINFO = C_POINTER, PIFSDK_PAUSE = C_POINTER, PFPDF_FILEWRITE = C_POINTER, PFPDF_SYSFONTINFO = C_POINTER, PFX_FILEAVAIL = C_POINTER, PUNSUPPORT_INFO = C_POINTER, PFS_RECTF = C_POINTER, PFS_MATRIX = C_POINTER, DOUBLEPOINTER = C_POINTER, FLOATPOINTER = C_POINTER, LONGPOINTER = C_POINTER, INTEGERPOINTER = C_POINTER, FUNCPOINTER = C_POINTER, STRINGPOINTER = C_POINTER, WSTRINGPOINTER = C_POINTER, BUFFERPOINTER = C_POINTER, BYTEPOINTER = C_POINTER, PFPDF_BSTR = C_POINTER, C_LPSTR = C_POINTER public atom pdfium = open_dll("pdfium.dll") public constant FPDF_InitLibrary = define_c_proc(pdfium, "FPDF_InitLibrary", {}), FPDF_InitLibraryWithConfig = define_c_proc(pdfium, "FPDF_InitLibraryWithConfig", {PFPDF_LIBRARY_CONFIG}), FPDF_DestroyLibrary = define_c_proc(pdfium, "FPDF_DestroyLibrary", {}), FPDF_SetSandBoxPolicy = define_c_proc(pdfium, "FPDF_SetSandBoxPolicy", {C_INT, C_DWORD}), FPDF_SetTypefaceAccessibleFunc = define_c_proc(pdfium, "FPDF_SetTypefaceAccessibleFunc", {FUNCPOINTER}), FPDF_SetPrintTextWithGDI = define_c_proc(pdfium, "FPDF_SetPrintTextWithGDI", {C_DWORD}), FPDF_LoadCustom = define_c_proc(pdfium, "FPDF_LoadCustomC_INT", {PFPDF_FILEACCESS, C_LPSTR=0}), FPDF_RenderPage = define_c_proc(pdfium, "FPDF_RenderPage", {C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD}), FPDF_RenderPageBitmap = define_c_proc(pdfium, "FPDF_RenderPageBitmap", {C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD}), FPDF_ClosePage = define_c_proc(pdfium, "FPDF_ClosePage", {C_INT}), FPDF_CloseDocument = define_c_proc(pdfium, "FPDF_CloseDocument", {C_INT}), FPDF_DeviceToPage = define_c_proc(pdfium, "FPDF_DeviceToPage", {C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER}), FPDF_PageToDevice = define_c_proc(pdfium, "FPDF_PageToDevice", {C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER, LONGPOINTER, LONGPOINTER}), FPDFBitmap_FillRect = define_c_proc(pdfium, "FPDFBitmap_FillRect", {C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_INT}), FPDFBitmap_Destroy = define_c_proc(pdfium, "FPDFBitmap_Destroy", {C_INT}), FPDFAvail_Destroy = define_c_proc(pdfium, "FPDFAvail_Destroy", {PFX_FILEAVAIL}), FPDFPage_Delete = define_c_proc(pdfium, "FPDFPage_Delete", {C_INT, C_DWORD}), FPDFPage_SetRotation = define_c_proc(pdfium, "FPDFPage_SetRotation", {C_INT, C_DWORD}), FPDFPage_InsertObject = define_c_proc(pdfium, "FPDFPage_InsertObject", {C_INT, C_INT}), FPDFPageObj_Transform = define_c_proc(pdfium, "FPDFPageObj_Transform", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE}), FPDFPage_TransformAnnots = define_c_proc(pdfium, "FPDFPage_TransformAnnots", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE}), FPDFDOC_ExitFormFillEnvironment = define_c_proc(pdfium, "FPDFDOC_ExitFormFillEnvironment", {C_HANDLE}), FORM_OnAfterLoadPage = define_c_proc(pdfium, "FORM_OnAfterLoadPage", {C_INT, C_HANDLE}), FORM_OnBeforeClosePage = define_c_proc(pdfium, "FORM_OnBeforeClosePage", {C_INT, C_HANDLE}), FORM_DoDocumentJSAction = define_c_proc(pdfium, "FORM_DoDocumentJSAction", {C_HANDLE}), FORM_DoDocumentOpenAction = define_c_proc(pdfium, "FORM_DoDocumentOpenAction", {C_HANDLE}), FORM_DoDocumentAAction = define_c_proc(pdfium, "FORM_DoDocumentAAction", {C_HANDLE, C_DWORD}), FORM_DoPageAAction = define_c_proc(pdfium, "FORM_DoPageAAction", {C_INT, C_HANDLE, C_DWORD}), FPDF_SetFormFieldHighlightColor = define_c_proc(pdfium, "FPDF_SetFormFieldHighlightColor", {C_HANDLE, C_DWORD, C_INT}), FPDF_SetFormFieldHighlightAlpha = define_c_proc(pdfium, "FPDF_SetFormFieldHighlightAlpha", {C_HANDLE, C_UCHAR}), FPDF_RemoveFormFieldHighlight = define_c_proc(pdfium, "FPDF_RemoveFormFieldHighlight", {C_HANDLE}), FPDF_FFLDraw = define_c_proc(pdfium, "FPDF_FFLDraw", {C_HANDLE, C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD}), FPDF_FFLRecord = define_c_proc(pdfium, "FPDF_FFLRecord", {C_HANDLE, C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD}), FPDF_Widget_Undo = define_c_proc(pdfium, "FPDF_Widget_Undo", {C_INT, C_INT}), FPDF_Widget_Redo = define_c_proc(pdfium, "FPDF_Widget_Redo", {C_INT, C_INT}), FPDF_Widget_SelectAll = define_c_proc(pdfium, "FPDF_Widget_SelectAll", {C_INT, C_INT}), FPDF_Widget_Copy = define_c_proc(pdfium, "FPDF_Widget_Copy", {C_INT, C_INT, WSTRINGPOINTER, INTEGERPOINTER}), FPDF_Widget_Cut = define_c_proc(pdfium, "FPDF_Widget_Cut", {C_INT, C_INT, WSTRINGPOINTER, INTEGERPOINTER}), FPDF_Widget_Paste = define_c_proc(pdfium, "FPDF_Widget_Paste", {C_INT, C_INT, WSTRINGPOINTER, C_INT}), FPDF_Widget_ReplaceSpellCheckWord = define_c_proc(pdfium, "FPDF_Widget_ReplaceSpellCheckWord", {C_INT, C_INT, C_FLOAT, C_FLOAT, C_LPSTR}), FPDF_Widget_GetSpellCheckWords = define_c_proc(pdfium, "FPDF_Widget_GetSpellCheckWords", {C_INT, C_INT, C_FLOAT, C_FLOAT, C_LPSTR}), FPDF_StringHandleRelease = define_c_proc(pdfium, "FPDF_StringHandleRelease", {C_LPSTR}), FPDF_RenderPage_Close = define_c_proc(pdfium, "FPDF_RenderPage_Close", {C_INT}), FPDF_AddInstalledFont = define_c_proc(pdfium, "FPDF_AddInstalledFont", {C_INT, C_LPSTR, C_DWORD}), FPDF_SetSystemFontInfo = define_c_proc(pdfium, "FPDF_SetSystemFontInfo", {PFPDF_SYSFONTINFO}), FPDFText_ClosePage = define_c_proc(pdfium, "FPDFText_ClosePage", {C_INT}), FPDFText_GetCharBox = define_c_proc(pdfium, "FPDFText_GetCharBox", {C_INT, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER}), FPDFText_GetRect = define_c_proc(pdfium, "FPDFText_GetRect", {C_INT, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER}), FPDFText_FindClose = define_c_proc(pdfium, "FPDFText_FindClose", {C_HANDLE}), FPDFLink_GetRect = define_c_proc(pdfium, "FPDFLink_GetRect", {C_INT, C_DWORD, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER, DOUBLEPOINTER}), FPDFLink_CloseWebLinks = define_c_proc(pdfium, "FPDFLink_CloseWebLinks", {C_INT}), FPDFPage_SetMediaBox = define_c_proc(pdfium, "FPDFPage_SetMediaBox", {C_INT, C_FLOAT, C_FLOAT, C_FLOAT, C_FLOAT}), FPDFPage_SetCropBox = define_c_proc(pdfium, "FPDFPage_SetCropBox", {C_INT, C_FLOAT, C_FLOAT, C_FLOAT, C_FLOAT}), FPDFPageObj_TransformClipPath = define_c_proc(pdfium, "FPDFPageObj_TransformClipPath", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE}), FPDF_DestroyClipPath = define_c_proc(pdfium, "FPDF_DestroyClipPath", {C_INT}), FPDFPage_InsertClipPath = define_c_proc(pdfium, "FPDFPage_InsertClipPath", {C_INT, C_INT}), FPDF_LoadDocument = define_c_func(pdfium, "FPDF_LoadDocument", {C_LPSTR, C_LPSTR}, C_HANDLE), FPDF_LoadMemDocument = define_c_func(pdfium, "FPDF_LoadMemDocument", {BUFFERPOINTER, C_DWORD, C_LPSTR}, C_HANDLE), FPDF_LoadCustomDocument = define_c_func(pdfium, "FPDF_LoadCustomDocument", {PFPDF_FILEACCESS, C_LPSTR}, C_HANDLE), FPDF_GetFileVersion = define_c_func(pdfium, "FPDF_GetFileVersion", {C_INT, LONGPOINTER}, C_HANDLE), FPDF_GetLastError = define_c_func(pdfium, "FPDF_GetLastError", {}, C_HANDLE), FPDF_GetDocPermissions = define_c_func(pdfium, "FPDF_GetDocPermissions", {C_INT}, C_HANDLE), FPDF_GetSecurityHandlerRevision = define_c_func(pdfium, "FPDF_GetSecurityHandlerRevision", {C_INT}, C_HANDLE), FPDF_GetPageCount = define_c_func(pdfium, "FPDF_GetPageCount", {C_INT}, C_HANDLE), FPDF_LoadPage = define_c_func(pdfium, "FPDF_LoadPage", {C_INT, C_DWORD}, C_HANDLE), FPDF_GetPageWidth = define_c_func(pdfium, "FPDF_GetPageWidth", {C_INT}, C_DOUBLE), FPDF_GetPageHeight = define_c_func(pdfium, "FPDF_GetPageHeight", {C_INT}, C_DOUBLE), FPDF_GetPageSizeByIndex = define_c_func(pdfium, "FPDF_GetPageSizeByIndex", {C_INT, C_DWORD, DOUBLEPOINTER, DOUBLEPOINTER}, C_HANDLE), FPDF_RenderPageSkp = define_c_func(pdfium, "FPDF_RenderPageSkp", {C_INT, C_DWORD, C_DWORD}, C_HANDLE), FPDFBitmap_Create = define_c_func(pdfium, "FPDFBitmap_Create", {C_DWORD, C_DWORD, C_DWORD}, C_HANDLE), FPDFBitmap_CreateEx = define_c_func(pdfium, "FPDFBitmap_CreateEx", {C_DWORD, C_DWORD, C_DWORD, BUFFERPOINTER, C_DWORD}, C_HANDLE), FPDFBitmap_GetBuffer = define_c_func(pdfium, "FPDFBitmap_GetBuffer", {C_INT}, C_HANDLE), FPDFBitmap_GetWidth = define_c_func(pdfium, "FPDFBitmap_GetWidth", {C_INT}, C_HANDLE), FPDFBitmap_GetHeight = define_c_func(pdfium, "FPDFBitmap_GetHeight", {C_INT}, C_HANDLE), FPDFBitmap_GetStride = define_c_func(pdfium, "FPDFBitmap_GetStride", {C_INT}, C_HANDLE), FPDF_VIEWERREF_GetPrintScaling = define_c_func(pdfium, "FPDF_VIEWERREF_GetPrintScaling", {C_INT}, C_HANDLE), FPDF_VIEWERREF_GetNumCopies = define_c_func(pdfium, "FPDF_VIEWERREF_GetNumCopies", {C_INT}, C_HANDLE), FPDF_VIEWERREF_GetPrintPageRange = define_c_func(pdfium, "FPDF_VIEWERREF_GetPrintPageRange", {C_INT}, C_HANDLE), FPDF_VIEWERREF_GetDuplex = define_c_func(pdfium, "FPDF_VIEWERREF_GetDuplex", {C_INT}, C_HANDLE), FPDF_CountNamedDests = define_c_func(pdfium, "FPDF_CountNamedDests", {C_INT}, C_HANDLE), FPDF_GetNamedDestByName = define_c_func(pdfium, "FPDF_GetNamedDestByName", {C_INT, C_LPSTR}, C_HANDLE), FPDF_GetNamedDest = define_c_func(pdfium, "FPDF_GetNamedDest", {C_INT, C_DWORD, BUFFERPOINTER, LONGPOINTER}, C_HANDLE), FPDF_BStr_Init = define_c_func(pdfium, "FPDF_BStr_Init", {PFPDF_BSTR}, C_HANDLE), FPDF_BStr_Set = define_c_func(pdfium, "FPDF_BStr_Set", {PFPDF_BSTR, C_LPSTR, C_DWORD}, C_HANDLE), FPDF_BStr_Clear = define_c_func(pdfium, "FPDF_BStr_Clear", {PFPDF_BSTR}, C_HANDLE), FPDFAvail_Create = define_c_func(pdfium, "FPDFAvail_Create", {PFX_FILEAVAIL, PFPDF_FILEACCESS}, C_HANDLE), FPDFAvail_IsDocAvail = define_c_func(pdfium, "FPDFAvail_IsDocAvail", {C_INT, PFX_DOWNLOADHINTS}, C_HANDLE), FPDFAvail_GetDocument = define_c_func(pdfium, "FPDFAvail_GetDocument", {C_INT, C_LPSTR}, C_HANDLE), FPDFAvail_GetFirstPageNum = define_c_func(pdfium, "FPDFAvail_GetFirstPageNum", {C_INT}, C_HANDLE), FPDFAvail_IsPageAvail = define_c_func(pdfium, "FPDFAvail_IsPageAvail", {C_INT, C_DWORD, PFX_DOWNLOADHINTS}, C_HANDLE), FPDFAvail_IsFormAvail = define_c_func(pdfium, "FPDFAvail_IsFormAvail", {C_INT, PFX_DOWNLOADHINTS}, C_HANDLE), FPDFAvail_IsLinearized = define_c_func(pdfium, "FPDFAvail_IsLinearized", {C_INT}, C_HANDLE), FPDFBookmark_GetFirstChild = define_c_func(pdfium, "FPDFBookmark_GetFirstChild", {C_INT, C_INT}, C_HANDLE), FPDFBookmark_GetNextSibling = define_c_func(pdfium, "FPDFBookmark_GetNextSibling", {C_INT, C_INT}, C_HANDLE), FPDFBookmark_GetTitle = define_c_func(pdfium, "FPDFBookmark_GetTitle", {C_INT, BUFFERPOINTER, C_INT}, C_HANDLE), FPDFBookmark_Find = define_c_func(pdfium, "FPDFBookmark_Find", {C_INT, C_LPSTR}, C_HANDLE), FPDFBookmark_GetDest = define_c_func(pdfium, "FPDFBookmark_GetDest", {C_INT, C_INT}, C_HANDLE), FPDFBookmark_Get = define_c_func(pdfium, "FPDFBookmark_Get", {C_INT}, C_HANDLE), FPDFAction_GetType = define_c_func(pdfium, "FPDFAction_GetType", {C_INT}, C_HANDLE), FPDFAction_GetDest = define_c_func(pdfium, "FPDFAction_GetDest", {C_INT, C_INT}, C_HANDLE), FPDFAction_GetFilePath = define_c_func(pdfium, "FPDFAction_GetFilePath", {C_INT, BUFFERPOINTER, C_INT}, C_HANDLE), FPDFAction_GetURIPath = define_c_func(pdfium, "FPDFAction_GetURIPath", {C_INT, C_INT, BUFFERPOINTER, C_INT}, C_HANDLE), FPDFDest_GetPageIndex = define_c_func(pdfium, "FPDFDest_GetPageIndex", {C_INT, C_INT}, C_HANDLE), FPDFLink_GetLinkAtPoint = define_c_func(pdfium, "FPDFLink_GetLinkAtPoint", {C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), FPDFLink_GetLinkZOrderAtPoint = define_c_func(pdfium, "FPDFLink_GetLinkZOrderAtPoint", {C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), FPDFLink_GetDest = define_c_func(pdfium, "FPDFLink_GetDest", {C_INT, C_INT}, C_HANDLE), FPDFLink_Get = define_c_func(pdfium, "FPDFLink_Get", {C_INT}, C_HANDLE), FPDFLink_Enumerate = define_c_func(pdfium, "FPDFLink_Enumerate", {C_INT, LONGPOINTER, C_INT}, C_HANDLE), FPDFLink_GetAnnotRect = define_c_func(pdfium, "FPDFLink_GetAnnotRect", {C_INT, PFS_RECTF}, C_HANDLE), FPDFLink_CountQuadPoints = define_c_func(pdfium, "FPDFLink_CountQuadPoints", {C_INT}, C_HANDLE), FPDFLink_GetQuadPoints = define_c_func(pdfium, "FPDFLink_GetQuadPoints", {C_INT, C_DWORD, PFS_QUADPOINTSF}, C_HANDLE), FPDF_GetMetaText = define_c_func(pdfium, "FPDF_GetMetaText", {C_INT, BYTEPOINTER, BUFFERPOINTER, C_INT}, C_HANDLE), FPDF_CreateNewDocument = define_c_func(pdfium, "FPDF_CreateNewDocument", {}, C_HANDLE), FPDFPage_New = define_c_func(pdfium, "FPDFPage_New", {C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), FPDFPage_GetRotation = define_c_func(pdfium, "FPDFPage_GetRotation", {C_INT}, C_HANDLE), FPDFPage_CountObject = define_c_func(pdfium, "FPDFPage_CountObject", {C_INT}, C_HANDLE), FPDFPage_GetObject = define_c_func(pdfium, "FPDFPage_GetObject", {C_INT, C_DWORD}, C_HANDLE), FPDFPage_HasTransparency = define_c_func(pdfium, "FPDFPage_HasTransparency", {C_INT}, C_HANDLE), FPDFPage_GenerateContent = define_c_func(pdfium, "FPDFPage_GenerateContent", {C_INT}, C_HANDLE), FPDFPageObj_HasTransparency = define_c_func(pdfium, "FPDFPageObj_HasTransparency", {C_INT}, C_HANDLE), FPDFPageObj_NewImgeObj = define_c_func(pdfium, "FPDFPageObj_NewImgeObj", {C_INT}, C_HANDLE), FPDFImageObj_LoadJpegFile = define_c_func(pdfium, "FPDFImageObj_LoadJpegFile", {C_INT, C_DWORD, C_INT, PFPDF_FILEACCESS}, C_HANDLE), FPDFImageObj_SetBitmap = define_c_func(pdfium, "FPDFImageObj_SetBitmap", {INTEGERPOINTER, C_DWORD, C_INT, C_INT}, C_HANDLE), FSDK_SetUnSpObjProcessHandler = define_c_func(pdfium, "FSDK_SetUnSpObjProcessHandler", {PUNSUPPORT_INFO}, C_HANDLE), FPDFDoc_GetPageMode = define_c_func(pdfium, "FPDFDoc_GetPageMode", {C_INT}, C_HANDLE), FPDFPage_Flatten = define_c_func(pdfium, "FPDFPage_Flatten", {C_INT, C_DWORD}, C_HANDLE), FPDFDOC_InitFormFillEnvironment = define_c_func(pdfium, "FPDFDOC_InitFormFillEnvironment", {C_INT, PFPDF_FORMFILLINFO}, C_HANDLE), FORM_OnMouseMove = define_c_func(pdfium, "FORM_OnMouseMove", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), FORM_OnLButtonDown = define_c_func(pdfium, "FORM_OnLButtonDown", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), FORM_OnLButtonUp = define_c_func(pdfium, "FORM_OnLButtonUp", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), FORM_OnRButtonDown = define_c_func(pdfium, "FORM_OnRButtonDown", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), FORM_OnRButtonUp = define_c_func(pdfium, "FORM_OnRButtonUp", {C_HANDLE, C_INT, C_DWORD, C_DOUBLE, C_DOUBLE}, C_HANDLE), FORM_OnKeyDown = define_c_func(pdfium, "FORM_OnKeyDown", {C_HANDLE, C_INT, C_DWORD, C_DWORD}, C_HANDLE), FORM_OnKeyUp = define_c_func(pdfium, "FORM_OnKeyUp", {C_HANDLE, C_INT, C_DWORD, C_DWORD}, C_HANDLE), FORM_OnChar = define_c_func(pdfium, "FORM_OnChar", {C_HANDLE, C_INT, C_DWORD, C_DWORD}, C_HANDLE), FORM_ForceToKillFocus = define_c_func(pdfium, "FORM_ForceToKillFocus", {C_HANDLE}, C_HANDLE), FPDFPage_HasFormFieldAtPoint = define_c_func(pdfium, "FPDFPage_HasFormFieldAtPoint", {C_HANDLE, C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), FPDPage_HasFormFieldAtPoint = define_c_func(pdfium, "FPDPage_HasFormFieldAtPoint", {C_HANDLE, C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), FPDFPage_FormFieldZOrderAtPoint = define_c_func(pdfium, "FPDFPage_FormFieldZOrderAtPoint", {C_HANDLE, C_INT, C_DOUBLE, C_DOUBLE}, C_HANDLE), FPDF_HasXFAField = define_c_func(pdfium, "FPDF_HasXFAField", {C_INT, LONGPOINTER}, C_HANDLE), FPDF_LoadXFA = define_c_func(pdfium, "FPDF_LoadXFA", {C_INT}, C_HANDLE), FPDF_StringHandleCounts = define_c_func(pdfium, "FPDF_StringHandleCounts", {C_LPSTR}, C_HANDLE), FPDF_StringHandleGetStringByIndex = define_c_func(pdfium, "FPDF_StringHandleGetStringByIndex", {C_LPSTR, C_DWORD, C_LPSTR, INTEGERPOINTER}, C_HANDLE), FPDF_StringHandleAddString = define_c_func(pdfium, "FPDF_StringHandleAddString", {C_LPSTR, C_LPSTR, C_INT}, C_HANDLE), FPDF_ImportPages = define_c_func(pdfium, "FPDF_ImportPages", {C_INT, C_INT, C_LPSTR, C_DWORD}, C_HANDLE), FPDF_CopyViewerPreferences = define_c_func(pdfium, "FPDF_CopyViewerPreferences", {C_INT, C_INT}, C_HANDLE), FPDF_RenderPageBitmap_Start = define_c_func(pdfium, "FPDF_RenderPageBitmap_Start", {C_INT, C_INT, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, C_DWORD, PIFSDK_PAUSE}, C_HANDLE), FPDF_RenderPage_Continue = define_c_func(pdfium, "FPDF_RenderPage_Continue", {C_INT, PIFSDK_PAUSE}, C_HANDLE), FPDF_SaveAsCopy = define_c_func(pdfium, "FPDF_SaveAsCopy", {C_INT, PFPDF_FILEWRITE, C_INT}, C_HANDLE), FPDF_SaveWithVersion = define_c_func(pdfium, "FPDF_SaveWithVersion", {C_INT, PFPDF_FILEWRITE, C_INT, C_DWORD}, C_HANDLE), FPDFText_GetCharIndexFromTextIndex = define_c_func(pdfium, "FPDFText_GetCharIndexFromTextIndex", {C_INT, C_DWORD}, C_HANDLE), FPDF_GetDefaultTTFMap = define_c_func(pdfium, "FPDF_GetDefaultTTFMap", {}, C_HANDLE), FPDF_GetDefaultSystemFontInfo = define_c_func(pdfium, "FPDF_GetDefaultSystemFontInfo", {}, C_HANDLE), FPDFText_Load = define_c_func(pdfium, "FPDFText_Load", {C_INT}, C_HANDLE), FPDFText_CountChars = define_c_func(pdfium, "FPDFText_CountChars", {C_INT}, C_HANDLE), FPDFText_GetUnicode = define_c_func(pdfium, "FPDFText_GetUnicode", {C_INT, C_DWORD}, C_HANDLE), FPDFText_GetFontSize = define_c_func(pdfium, "FPDFText_GetFontSize", {C_INT, C_DWORD}, C_DOUBLE), FPDFText_GetCharIndexAtPos = define_c_func(pdfium, "FPDFText_GetCharIndexAtPos", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE}, C_HANDLE), FPDFText_GetText = define_c_func(pdfium, "FPDFText_GetText", {C_INT, C_DWORD, C_DWORD, LONGPOINTER}, C_HANDLE), FPDFText_CountRects = define_c_func(pdfium, "FPDFText_CountRects", {C_INT, C_DWORD, C_DWORD}, C_HANDLE), FPDFText_GetBoundedText = define_c_func(pdfium, "FPDFText_GetBoundedText", {C_INT, C_DOUBLE, C_DOUBLE, C_DOUBLE, C_DOUBLE, STRINGPOINTER, C_DWORD}, C_HANDLE), FPDFText_FindStart = define_c_func(pdfium, "FPDFText_FindStart", {C_INT, STRINGPOINTER, C_INT, C_DWORD}, C_HANDLE), FPDFText_FindNext = define_c_func(pdfium, "FPDFText_FindNext", {C_HANDLE}, C_HANDLE), FPDFText_FindPrev = define_c_func(pdfium, "FPDFText_FindPrev", {C_HANDLE}, C_HANDLE), FPDFText_GetSchResultIndex = define_c_func(pdfium, "FPDFText_GetSchResultIndex", {C_HANDLE}, C_HANDLE), FPDFText_GetSchCount = define_c_func(pdfium, "FPDFText_GetSchCount", {C_HANDLE}, C_HANDLE), FPDFLink_LoadWebLinks = define_c_func(pdfium, "FPDFLink_LoadWebLinks", {C_INT}, C_HANDLE), FPDFLink_CountWebLinks = define_c_func(pdfium, "FPDFLink_CountWebLinks", {C_INT}, C_HANDLE), FPDFLink_GetURL = define_c_func(pdfium, "FPDFLink_GetURL", {C_INT, C_DWORD, STRINGPOINTER, C_DWORD}, C_HANDLE), FPDFLink_CountRects = define_c_func(pdfium, "FPDFLink_CountRects", {C_INT, C_DWORD}, C_HANDLE), FPDFPage_GetMediaBox = define_c_func(pdfium, "FPDFPage_GetMediaBox", {C_INT, FLOATPOINTER, FLOATPOINTER, FLOATPOINTER, FLOATPOINTER}, C_HANDLE), FPDFPage_GetCropBox = define_c_func(pdfium, "FPDFPage_GetCropBox", {C_INT, FLOATPOINTER, FLOATPOINTER, FLOATPOINTER, FLOATPOINTER}, C_HANDLE), FPDFPage_TransFormWithClip = define_c_func(pdfium, "FPDFPage_TransFormWithClip", {C_INT, PFS_MATRIX, PFS_RECTF}, C_HANDLE), FPDF_CreateClipPath = define_c_func(pdfium, "FPDF_CreateClipPath", {C_FLOAT, C_FLOAT, C_FLOAT, C_FLOAT}, C_HANDLE)