fpdfview.h
Go to the documentation of this file.
00001 
00020 #ifndef _FPDFVIEW_H_
00021 #define _FPDFVIEW_H_
00022 
00023 #if defined(_WIN32) && !defined(__WINDOWS__)
00024 #include <windows.h>
00025 #endif
00026 
00028 typedef void*   FPDF_MODULEMGR;
00029 
00031 typedef void*   FPDF_DOCUMENT;          
00032 typedef void*   FPDF_PAGE;                      
00033 typedef void*   FPDF_PAGEOBJECT;        
00034 typedef void*   FPDF_PATH;
00035 typedef void*   FPDF_CLIPPATH;  
00036 typedef void*   FPDF_BITMAP;    
00037 typedef void*   FPDF_FONT;                      
00038 
00039 typedef void*   FPDF_TEXTPAGE;
00040 typedef void*   FPDF_SCHHANDLE;
00041 typedef void*   FPDF_PAGELINK;
00042 typedef void*   FPDF_HMODULE;
00043 typedef void*   FPDF_DOCSCHHANDLE;
00044 
00045 typedef void*   FPDF_BOOKMARK;
00046 typedef void*   FPDF_DEST;
00047 typedef void*   FPDF_ACTION;
00048 typedef void*   FPDF_LINK;
00049 
00051 typedef int                             FPDF_BOOL;
00052 typedef int                             FPDF_ERROR;     
00053 typedef unsigned long   FPDF_DWORD;
00054 typedef unsigned short  FPDF_WORD;
00055 typedef unsigned char                   FPDF_BYTE;
00057 typedef unsigned short                  FPDF_WCHAR;
00058 typedef unsigned char const*    FPDF_LPCBYTE;
00059 
00060 
00062 typedef const char*                             FPDF_BYTESTRING;
00063 
00065 typedef const unsigned short*   FPDF_WIDESTRING;                 
00066 
00074 #ifdef _WIN32_WCE
00075 typedef const unsigned short* FPDF_STRING;
00076 #else
00077 typedef const char* FPDF_STRING;
00078 #endif
00079 
00080 #ifdef _WIN32
00081 
00082 #define DLLEXPORT __declspec( dllexport )
00083 #define STDCALL __stdcall
00084 #define CDECL   _cdecl
00085 #else
00086 #define DLLEXPORT
00087 #define STDCALL
00088 #define CDECL
00089 #endif
00090 
00091 #ifdef __cplusplus
00092 extern "C" {
00093 #endif
00094 
00095 
00096 
00103 DLLEXPORT void STDCALL FPDF_InitLibrary(void* hInstance);
00104 
00109 DLLEXPORT FPDF_MODULEMGR STDCALL FPDF_GetModuleMgr();
00110 
00117 DLLEXPORT void STDCALL FPDF_DestroyLibrary();
00118 
00129 DLLEXPORT void STDCALL FPDF_UnlockDLL(FPDF_BYTESTRING license_id, FPDF_BYTESTRING unlock_code);
00130 
00141 DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadDocument(FPDF_STRING file_path, 
00142                                                                                                   FPDF_BYTESTRING password);
00155 DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadMemDocument(const void* data_buf, 
00156                                                                                         int size, FPDF_BYTESTRING password);
00157 
00162 typedef struct {
00166         unsigned long   m_FileLen;
00167 
00168         
00176         int                             (CDECL *m_GetBlock)(void* param, unsigned long position, unsigned char* pBuf, unsigned long size);
00177 
00182         void*                   m_Param;
00183 } FPDF_FILEACCESS;
00194 DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_LoadCustomDocument(FPDF_FILEACCESS* pFileAccess, 
00195                                                                                                                 FPDF_BYTESTRING password);
00196 
00197 
00203 #define FPDF_ERR_SUCCESS                0
00204 
00205 #define FPDF_ERR_UNKNOWN                1
00206 
00207 #define FPDF_ERR_FILE                   2
00208 
00209 #define FPDF_ERR_FORMAT                 3
00210 
00211 #define FPDF_ERR_PASSWORD               4
00212 
00213 #define FPDF_ERR_SECURITY               5
00214 
00215 #define FPDF_ERR_PAGE                   6         
00216 
00226 DLLEXPORT unsigned long STDCALL FPDF_GetLastError();
00227 
00234 DLLEXPORT unsigned long STDCALL FPDF_GetDocPermissions(FPDF_DOCUMENT document);
00235 
00241 DLLEXPORT int STDCALL FPDF_GetPageCount(FPDF_DOCUMENT document);
00242 
00251 DLLEXPORT FPDF_PAGE     STDCALL FPDF_LoadPage(FPDF_DOCUMENT document, int page_index);
00252 
00260 DLLEXPORT double STDCALL FPDF_GetPageWidth(FPDF_PAGE page);
00261 
00269 DLLEXPORT double STDCALL FPDF_GetPageHeight(FPDF_PAGE page);
00270 
00280 DLLEXPORT int STDCALL FPDF_GetPageSizeByIndex(FPDF_DOCUMENT document, int page_index, double* width, double* height);
00281 
00289 typedef void (*FPDF_ENUMPAGESIZEPROC)(int page_index, double width, double height);
00290 
00297 DLLEXPORT void STDCALL FPDF_EnumPageSize(FPDF_DOCUMENT document, FPDF_ENUMPAGESIZEPROC callback);
00298 
00304 #define FPDF_ANNOT                      0x01             
00305 
00306 #define FPDF_LCD_TEXT           0x02            
00307 
00308 #define FPDF_NO_NATIVETEXT      0x04            
00309 
00310 #define FPDF_GRAYSCALE          0x08            
00311 
00312 #define FPDF_DEBUG_INFO         0x80             
00313 
00314 #define FPDF_NO_CATCH           0x100           
00315 
00316 #ifdef _WIN32
00317 
00332 DLLEXPORT void STDCALL FPDF_RenderPage(HDC dc, FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y,
00333                                                 int rotate, int flags);
00334 #endif
00335 
00351 DLLEXPORT void STDCALL FPDF_RenderPageBitmap(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y, 
00352                                                 int size_x, int size_y, int rotate, int flags);
00353 
00375 DLLEXPORT void STDCALL FPDF_QuickDrawPage(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y, 
00376                                                                                   int size_x, int size_y, int rotate, int flags);
00377 
00384 DLLEXPORT void STDCALL FPDF_ClosePage(FPDF_PAGE page);
00385 
00392 DLLEXPORT void STDCALL FPDF_CloseDocument(FPDF_DOCUMENT document);
00393 
00420 DLLEXPORT void STDCALL FPDF_DeviceToPage(FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y,
00421                                                 int rotate, int device_x, int device_y, double* page_x, double* page_y);
00422 
00441 DLLEXPORT void STDCALL FPDF_PageToDevice(FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y,
00442                                                 int rotate, double page_x, double page_y, int* device_x, int* device_y);
00443 
00464 DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_Create(int width, int height, int alpha);
00465 
00471 #define FPDFBitmap_Gray         1                
00472 
00473 #define FPDFBitmap_BGR          2                
00474 
00475 #define FPDFBitmap_BGRx         3               
00476 
00477 #define FPDFBitmap_BGRA         4               
00478 
00497 DLLEXPORT FPDF_BITMAP STDCALL FPDFBitmap_CreateEx(int width, int height, int format, void* first_scan, int stride);
00498 
00519 DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, 
00520                                                                         int red, int green, int blue, int alpha);
00521 
00529 DLLEXPORT void* STDCALL FPDFBitmap_GetBuffer(FPDF_BITMAP bitmap);
00530 
00536 DLLEXPORT int STDCALL FPDFBitmap_GetWidth(FPDF_BITMAP bitmap);
00537 
00543 DLLEXPORT int STDCALL FPDFBitmap_GetHeight(FPDF_BITMAP bitmap);
00544 
00550 DLLEXPORT int STDCALL FPDFBitmap_GetStride(FPDF_BITMAP bitmap);
00551 
00559 DLLEXPORT void STDCALL FPDFBitmap_Destroy(FPDF_BITMAP bitmap);
00560 
00571 DLLEXPORT void* STDCALL FPDF_AllocMemory(unsigned long size);
00572 
00581 DLLEXPORT void STDCALL FPDF_FreeMemory(void* p);
00582 
00584 #define FPDFERR_OUT_OF_MEMORY           1               
00585 
00586 #define FPDFERR_MISSING_FEATURE         2                
00587 
00588 typedef void (*FPDF_ErrorHandler)(int code, FPDF_BYTESTRING msg);
00589 
00597 DLLEXPORT void STDCALL FPDF_SetErrorHandler(FPDF_ErrorHandler func);
00598 
00605 DLLEXPORT void STDCALL FPDF_SetModulePath(FPDF_STRING module_name, FPDF_STRING folder_name);
00606 
00607 
00608 
00615 typedef struct {
00616 
00633         void*   (*MapFont)(FPDF_BYTESTRING name, int codepage);
00634 
00653         void    (*GetGlyphBBox)(void* font, int unicode, int cid, int* left, int* top, int* right, int* bottom);
00654 
00683         int             (*GetGlyphBitmap)(void* font, int unicode, int cid, double size, int* left, int* top, 
00684                                                         int* width, int* height, void** buffer, int* stride);
00685 } FPDF_GLYPHPROVIDER;
00686 
00695 DLLEXPORT void STDCALL FPDF_SetGlyphProvider(FPDF_GLYPHPROVIDER* pProvider);
00696 
00705 DLLEXPORT int STDCALL FPDF_SetSystemFontFile(FPDF_BYTESTRING file_path);
00706 
00707 
00708 
00715 DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetFirstChild(FPDF_DOCUMENT document, FPDF_BOOKMARK bookmark);
00716 
00717 
00724 DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_GetNextSibling(FPDF_DOCUMENT document, FPDF_BOOKMARK bookmark);
00725 
00726 
00734 DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_Find(FPDF_DOCUMENT document, FPDF_WIDESTRING title);
00735 
00736 
00742 DLLEXPORT unsigned long STDCALL FPDFBookmark_GetColorRef(FPDF_BOOKMARK bookmark);
00743 
00744 
00750 #define PDFBOOKMARK_NORMAL                      0
00751 
00752 #define PDFBOOKMARK_ITALIC                      1
00753 
00754 #define PDFBOOKMARK_BOLD                        2
00755 
00756 #define PDFBOOKMARK_BOLDITALIC          3
00757 
00764 DLLEXPORT unsigned long STDCALL FPDFBookmark_GetFontStyle(FPDF_BOOKMARK bookmark);
00765 
00766 
00782 DLLEXPORT unsigned long STDCALL FPDFBookmark_GetTitle(FPDF_BOOKMARK bookmark, void* buffer, unsigned long buflen);
00783 
00784 
00791 DLLEXPORT FPDF_ACTION STDCALL FPDFBookmark_GetAction(FPDF_BOOKMARK bookmark);
00792 
00793 
00800 DLLEXPORT FPDF_DEST STDCALL FPDFBookmark_GetDest(FPDF_DOCUMENT document, FPDF_BOOKMARK bookmark);
00801 
00802 
00821 DLLEXPORT int STDCALL FPDFBookmark_GetPageFirstLine(FPDF_PAGE page, void* buffer, int buflen);
00822 
00828 #define PDFACTION_UNSUPPORTED           0               
00829 
00830 #define PDFACTION_GOTO                          1                
00831 
00832 #define PDFACTION_REMOTEGOTO            2                
00833 
00834 #define PDFACTION_URI                           3                
00835 
00836 #define PDFACTION_LAUNCH                        4                
00837 
00844 DLLEXPORT unsigned long STDCALL FPDFAction_GetType(FPDF_ACTION action);
00845 
00846 
00858 DLLEXPORT unsigned long STDCALL FPDFAction_GetFilePath(FPDF_ACTION action, void* buffer, unsigned long buflen);
00859 
00860 
00870 DLLEXPORT FPDF_DEST STDCALL FPDFAction_GetDest(FPDF_DOCUMENT document, FPDF_ACTION action);
00871 
00872 
00873 
00886 DLLEXPORT unsigned long STDCALL FPDFAction_GetURIPath(FPDF_DOCUMENT document, FPDF_ACTION action, 
00887                                                                                                           void* buffer, unsigned long buflen);
00888 
00889 
00890 
00897 DLLEXPORT unsigned long STDCALL FPDFDest_GetPageIndex(FPDF_DOCUMENT document, FPDF_DEST dest);
00898 
00904 #define PDFZOOM_XYZ                             1                        
00905 
00906 #define PDFZOOM_FITPAGE                 2                        
00907 
00908 #define PDFZOOM_FITHORZ                 3                        
00909 
00910 #define PDFZOOM_FITVERT                 4                       
00911 
00912 #define PDFZOOM_FITRECT                 5               
00913 
00914 #define PDFZOOM_FITBBOX                 6                       
00915 
00916 #define PDFZOOM_FITBHORZ                7
00917 
00918 #define PDFZOOM_FITBVERT                8                       
00919 
00926 DLLEXPORT unsigned long STDCALL FPDFDest_GetZoomMode(FPDF_DEST dest);
00927 
00928 
00942 DLLEXPORT double STDCALL FPDFDest_GetZoomParam(FPDF_DEST dest, int param);
00943 
00944 
00945 
00955 DLLEXPORT FPDF_LINK STDCALL FPDFLink_GetLinkAtPoint(FPDF_PAGE page, double x, double y);
00956 
00957 
00958 
00966 DLLEXPORT FPDF_DEST STDCALL FPDFLink_GetDest(FPDF_DOCUMENT document, FPDF_LINK link);
00967 
00968 
00974 DLLEXPORT FPDF_ACTION STDCALL FPDFLink_GetAction(FPDF_LINK link);
00975 
00976 #ifdef _WIN32
00977 
00986 DLLEXPORT HBITMAP STDCALL FPDF_GetPageThumbnail(FPDF_PAGE page);
00987 #endif
00988 
00989 
00990 
01010 DLLEXPORT unsigned long STDCALL FPDF_GetMetaText(FPDF_DOCUMENT doc, FPDF_BYTESTRING tag,
01011                                                                                                  void* buffer, unsigned long buflen);
01012 
01013 
01014 
01015 
01016 #ifdef _WIN32_WCE
01017 
01018 
01028 typedef struct {
01044         int (*MapFontId)(FPDF_BYTESTRING name, int charset);
01045 
01057         void (*GetFontById)(unsigned short* buffer, int size, int charset, int font_id);
01058         
01068         unsigned short (*SubstUnicode)(int font_id, unsigned short unicode);
01069 } FPDF_WCEFONTMAPPER;
01070 
01078 DLLEXPORT void STDCALL FPDF_SetWCEFontMapper(FPDF_WCEFONTMAPPER* mapper);
01079 
01080 
01081 
01082 
01083 
01088 typedef struct _OOM_INFO
01089 {
01090 
01094         int version;
01095         
01101         void(*FSDK_OOM_Handler)(_OOM_INFO* pThis);
01102 }OOM_INFO;
01103 
01104 
01111 DLLEXPORT FPDF_BOOL STDCALL FSDK_SetOOMHandler(OOM_INFO* oomInfo);
01112 
01113 
01114 #endif  ///< _WIN32_WCE
01115 
01116 #ifdef __cplusplus
01117 };
01118 #endif
01119 
01120 #endif 
01121 
01122