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