00001 00021 #ifndef _FPDFEDITBASE_H_ 00022 #define _FPDFEDITBASE_H_ 00023 #include "fpdfview.h" 00024 #ifdef _WIN32 00025 00026 #define DLLEXPORT __declspec( dllexport ) 00027 #define STDCALL __stdcall 00028 #define CDECL _cdecl 00029 #else 00030 #define DLLEXPORT 00031 #define STDCALL 00032 #define CDECL 00033 #endif 00034 00035 #ifdef __cplusplus 00036 extern "C" { 00037 #endif 00038 00039 #define FPDF_ARGB(a,r,g,b) ((((FPDF_DWORD)(((FPDF_BYTE)(b)|((FPDF_WORD)((FPDF_BYTE)(g))<<8))|(((FPDF_DWORD)(FPDF_BYTE)(r))<<16)))) | (((FPDF_DWORD)(FPDF_BYTE)(a))<<24)) 00040 #define FPDF_GetBValue(argb) ((FPDF_BYTE)(argb)) 00041 #define FPDF_GetGValue(argb) ((FPDF_BYTE)(((FPDF_DWORD)(argb)) >> 8)) 00042 #define FPDF_GetRValue(argb) ((FPDF_BYTE)((argb)>>16)) 00043 #define FPDF_GetAValue(argb) ((FPDF_BYTE)((argb)>>24)) 00044 00045 00046 #ifndef UNICODE 00047 #define FPDF_SetMetaText FPDF_SetMetaTextA 00048 #define FPDF_VIEWERREF_SetUI FPDF_VIEWERREF_SetUIA 00049 #define FPDF_VIEWERREF_PrintScaling FPDF_VIEWERREF_PrintScalingA 00050 #define FPDFAction_SetFilePath FPDFAction_SetFilePathA 00051 #define FPDFBookmark_AddBookmark FPDFBookmark_AddBookmarkA 00052 #define FPDFBookmark_SetTitle FPDFBookmark_SetTitleA 00053 #else 00054 #define FPDF_SetMetaText FPDF_SetMetaTextW 00055 #define FPDF_VIEWERREF_SetUI FPDF_VIEWERREF_SetUIW 00056 #define FPDF_VIEWERREF_PrintScaling FPDF_VIEWERREF_PrintScalingW 00057 #define FPDFAction_SetFilePath FPDFAction_SetFilePathW 00058 #define FPDFBookmark_AddBookmark FPDFBookmark_AddBookmarkW 00059 #define FPDFBookmark_SetTitle FPDFBookmark_SetTitleW 00060 #endif 00061 00062 00067 DLLEXPORT FPDF_DOCUMENT STDCALL FPDF_CreateNewDocument(); 00068 00069 00070 00076 #define FPDF_PERM_PRINT 0x0004 00077 00078 #define FPDF_PERM_MODIFY 0x0008 00079 00080 #define FPDF_PERM_EXTRACT 0x0010 00081 00082 #define FPDF_PERM_ANNOT_FORM 0x0020 00083 00084 #define FPDF_PERM_FILL_FORM 0x0100 00085 00086 #define FPDF_PERM_EXTRACT_ACCESS 0x0200 00087 00088 #define FPDF_PERM_ASSEMBLE 0x0400 00089 00090 #define FPDF_PERM_PRINT_HIGH 0x0800 00091 00107 DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsFile(FPDF_DOCUMENT document, char* file_name, 00108 FPDF_DWORD permissions, 00109 FPDF_LPCBYTE UserPwd, long nUserPwdLen, 00110 FPDF_LPCBYTE OwnerPwd, long nOwnerPwdLen); 00111 00112 00113 00116 struct FPDF_FILEWRITE{ 00117 00121 int version; 00122 00130 int (CDECL *WriteBlock)( FPDF_FILEWRITE* pThis, const void* pData, unsigned long size); 00131 00132 }; 00133 00134 00136 #define FPDF_INCREMENTAL 1 00137 00138 #define FPDF_NO_INCREMENTAL 2 00139 00140 00141 00142 00143 00156 DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveDocument( FPDF_DOCUMENT document,FPDF_FILEWRITE * pFileWrite, 00157 FPDF_DWORD permissions, 00158 FPDF_LPCBYTE UserPwd, long nUserPwdLen, 00159 FPDF_LPCBYTE OwnerPwd, long nOwnerPwdLen, 00160 FPDF_DWORD flags); 00161 00162 00163 00164 00172 DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy( FPDF_DOCUMENT document,FPDF_FILEWRITE * pFileWrite, 00173 FPDF_DWORD flags ); 00174 00175 00176 00185 DLLEXPORT FPDF_BOOL STDCALL FPDF_SetMetaTextA(FPDF_DOCUMENT document,FPDF_BYTESTRING tag,FPDF_BYTESTRING value); 00186 00187 DLLEXPORT FPDF_BOOL STDCALL FPDF_SetMetaTextW(FPDF_DOCUMENT document,FPDF_WIDESTRING tag,FPDF_WIDESTRING value); 00188 00189 00195 #define FPDF_RECT_PAGE 0 00196 00197 #define FPDF_RECT_BOUNDING 1 00198 00199 #define FPDF_RECT_MEDIABOX 2 00200 00201 #define FPDF_RECT_CROPBOX 3 00202 00203 #define FPDF_RECT_TRIMBOX 4 00204 00205 #define FPDF_RECT_ARTBOX 5 00206 00207 #define FPDF_RECT_BLEEDBOX 6 00208 00219 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_GetUIA(FPDF_DOCUMENT document,FPDF_BYTESTRING tag); 00220 00221 00222 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_GetUIW(FPDF_DOCUMENT document,FPDF_BYTESTRING tag); 00223 00224 00232 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_SetUIA(FPDF_DOCUMENT document,FPDF_BYTESTRING tag,FPDF_BOOL value); 00233 00234 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_SetUIW(FPDF_DOCUMENT document,FPDF_WIDESTRING tag,FPDF_BOOL value); 00235 00242 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_ViewArea(FPDF_DOCUMENT document,int nRectType); 00243 00244 00252 DLLEXPORT void STDCALL FPDF_VIEWERREF_GetPrintPageRange(FPDF_DOCUMENT document,int* from,int* to); 00253 00254 00261 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_SetPrintPageRange(FPDF_DOCUMENT document,int from,int to); 00262 00263 00264 00265 00271 DLLEXPORT int STDCALL FPDF_VIEWERREF_GetNumCoipes(FPDF_DOCUMENT document); 00272 00273 00280 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_SetNumCoipes(FPDF_DOCUMENT document,int value); 00281 00282 00288 DLLEXPORT int STDCALL FPDF_VIEWERREF_GetPrintClip(FPDF_DOCUMENT document); 00289 00290 00291 00298 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_SetPrintClip(FPDF_DOCUMENT document,int nRectType); 00299 00300 00307 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_PrintScalingA(FPDF_DOCUMENT document,FPDF_BYTESTRING value); 00308 00309 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_PrintScalingW(FPDF_DOCUMENT document,FPDF_WIDESTRING value); 00310 00311 00317 DLLEXPORT int STDCALL FPDF_VIEWERREF_GetPrintArea(FPDF_DOCUMENT document); 00318 00319 00326 DLLEXPORT FPDF_BOOL STDCALL FPDF_VIEWERREF_SetPrintArea(FPDF_DOCUMENT document,int nRectType); 00327 00328 00334 #define PDFACTION_UNSUPPORTED 0 00335 00336 #define PDFACTION_GOTO 1 00337 00338 #define PDFACTION_REMOTEGOTO 2 00339 00340 #define PDFACTION_URI 3 00341 00342 #define PDFACTION_LAUNCH 4 00343 00352 DLLEXPORT FPDF_ACTION STDCALL FPDF_CreateAction(FPDF_DOCUMENT document,int actiontype); 00353 00354 00355 00361 DLLEXPORT FPDF_BOOL STDCALL FPDF_DeleteAction(FPDF_ACTION action); 00362 00363 00364 00372 DLLEXPORT FPDF_BOOL STDCALL FPDFAction_SetFilePathA(FPDF_ACTION action,FPDF_BYTESTRING pFilePath,FPDF_BOOL bURL); 00373 00374 DLLEXPORT FPDF_BOOL STDCALL FPDFAction_SetFilePathW(FPDF_ACTION action,FPDF_WIDESTRING pFilePath,FPDF_BOOL bURL); 00375 00376 00377 00378 00385 DLLEXPORT FPDF_BOOL STDCALL FPDFAction_SetURI(FPDF_ACTION action, FPDF_BYTESTRING csURI); 00386 00387 00395 DLLEXPORT unsigned long STDCALL FPDFAction_GetURI(FPDF_DOCUMENT document,FPDF_ACTION action, void* buffer, unsigned long buflen); 00396 00397 00398 00405 DLLEXPORT FPDF_BOOL STDCALL FPDFAction_SetDest(FPDF_ACTION action, FPDF_DEST dest); 00406 00407 00408 00414 #define PDFZOOM_XYZ 1 00415 00416 #define PDFZOOM_FITPAGE 2 00417 00418 #define PDFZOOM_FITHORZ 3 00419 00420 #define PDFZOOM_FITVERT 4 00421 00422 #define PDFZOOM_FITRECT 5 00423 00424 #define PDFZOOM_FITBBOX 6 00425 00426 #define PDFZOOM_FITBHORZ 7 00427 00428 #define PDFZOOM_FITBVERT 8 00429 00440 DLLEXPORT FPDF_BOOL STDCALL FPDFDest_SetPageIndex(FPDF_DOCUMENT document, FPDF_DEST dest, int page_index); 00441 00442 00443 00444 00450 DLLEXPORT FPDF_DEST STDCALL FPDF_CreateDest(int mode); 00451 00452 00458 DLLEXPORT FPDF_BOOL STDCALL FPDF_DeleteDest(FPDF_DEST dest); 00459 00460 00461 00468 DLLEXPORT FPDF_BOOL STDCALL FPDFDest_SetZoomMode(FPDF_DEST dest, int mode); 00469 00470 00471 00472 00481 DLLEXPORT FPDF_BOOL STDCALL FPDFDest_SetXYZParam(FPDF_DEST dest,double x,double y,double z); 00482 00483 00484 00485 00492 DLLEXPORT FPDF_BOOL STDCALL FPDFDest_SetFITHORZParam(FPDF_DEST dest,double param); 00493 00494 00495 00502 DLLEXPORT FPDF_BOOL STDCALL FPDFDest_SetFITVERTParam(FPDF_DEST dest,double param); 00503 00504 00505 00506 00514 DLLEXPORT FPDF_BOOL STDCALL FPDFDest_SetFitRectParam(FPDF_DEST dest,double left,double bottom,double right,double top); 00515 00516 00523 DLLEXPORT FPDF_BOOL STDCALL FPDFDest_SetFitBHorzParam(FPDF_DEST dest,double param); 00524 00525 00526 00533 DLLEXPORT FPDF_BOOL STDCALL FPDFDest_SetFitBVertParam(FPDF_DEST dest,double param); 00534 00535 00536 00545 DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_AddBookmarkA(FPDF_DOCUMENT document, FPDF_BOOKMARK parent,FPDF_BOOKMARK InsterAfter,FPDF_BYTESTRING titlename); 00546 00547 DLLEXPORT FPDF_BOOKMARK STDCALL FPDFBookmark_AddBookmarkW(FPDF_DOCUMENT document, FPDF_BOOKMARK parent,FPDF_BOOKMARK InsterAfter,FPDF_WIDESTRING titlename); 00548 00549 00550 00551 00558 DLLEXPORT FPDF_BOOL STDCALL FPDFBookmark_DeleteBookmark(FPDF_DOCUMENT document,FPDF_BOOKMARK bookmark); 00559 00560 00566 #define FONTNORMAL 0x00 00567 00568 #define FONTITALIC 0x01 00569 00570 #define FONTBOLD 0x02 00571 00580 DLLEXPORT FPDF_BOOL STDCALL FPDFBookmark_SetTitleA(FPDF_BOOKMARK bookmark,FPDF_BYTESTRING titlename); 00581 00582 DLLEXPORT FPDF_BOOL STDCALL FPDFBookmark_SetTitleW(FPDF_BOOKMARK bookmark,FPDF_WIDESTRING titlename); 00583 00584 00591 DLLEXPORT FPDF_BOOL STDCALL FPDFBookmark_SetColorRef(FPDF_BOOKMARK bookmark,unsigned long color); 00592 00593 00594 00602 DLLEXPORT FPDF_BOOL STDCALL FPDFBookmark_SetFontStyle(FPDF_BOOKMARK bookmark,unsigned long fontstyle); 00603 00604 00605 00612 DLLEXPORT FPDF_BOOL STDCALL FPDFBookmark_SetAction(FPDF_BOOKMARK bookmark,FPDF_ACTION action); 00613 00614 00615 00625 DLLEXPORT FPDF_PAGE STDCALL FPDFPage_New(FPDF_DOCUMENT document, int page_index, double width, double height); 00626 00627 00634 DLLEXPORT void STDCALL FPDFPage_Delete(FPDF_DOCUMENT document, int page_index); 00635 00641 #define FPDF_RECT_PAGE 0 00642 00643 #define FPDF_RECT_BOUNDING 1 00644 00645 #define FPDF_RECT_MEDIABOX 2 00646 00647 #define FPDF_RECT_CROPBOX 3 00648 00649 #define FPDF_RECT_TRIMBOX 4 00650 00651 #define FPDF_RECT_ARTBOX 5 00652 00653 #define FPDF_RECT_BLEEDBOX 6 00654 00665 DLLEXPORT void STDCALL FPDFPage_InsertObject(FPDF_PAGE page, FPDF_PAGEOBJECT page_obj); 00666 00667 00674 DLLEXPORT void STDCALL FPDFPage_DeleteObject(FPDF_PAGE page, int index); 00675 00676 00682 DLLEXPORT int STDCALL FPDFPage_CountObject(FPDF_PAGE page); 00683 00684 00685 00692 DLLEXPORT FPDF_PAGEOBJECT STDCALL FPDFPage_GetObject(FPDF_PAGE page, int index); 00693 00694 00695 00702 DLLEXPORT int STDCALL FPDFPage_GetPageObjectIndex(FPDF_PAGE page, FPDF_PAGEOBJECT page_obj); 00703 00704 00705 00713 DLLEXPORT FPDF_BOOL STDCALL FPDFPage_GenerateContent(FPDF_PAGE page); 00714 00715 00716 00717 00718 00731 DLLEXPORT void STDCALL FPDFPageObj_Transform(FPDF_PAGEOBJECT page_object, 00732 double a, double b, double c, double d, double e, double f); 00733 00734 00735 00742 DLLEXPORT FPDF_PAGEOBJECT STDCALL FPDFPageObj_Clone(FPDF_PAGEOBJECT page_object); 00743 00744 00745 00752 DLLEXPORT void STDCALL FPDFPageObj_Free(FPDF_PAGEOBJECT page_object); 00753 00754 00760 #define FPDF_PAGEOBJ_TEXT 1 00761 00762 #define FPDF_PAGEOBJ_PATH 2 00763 00764 #define FPDF_PAGEOBJ_IMAGE 3 00765 00766 #define FPDF_PAGEOBJ_SHADING 4 00767 00768 #define FPDF_PAGEOBJ_FORM 5 00769 00778 DLLEXPORT int STDCALL FPDFPageObj_GetType(FPDF_PAGEOBJECT page_object); 00779 00780 00791 DLLEXPORT void STDCALL FPDFPageObj_GetBBox(FPDF_PAGEOBJECT page_object, 00792 double* left, double* bottom, double* right, double* top ); 00793 00800 DLLEXPORT int STDCALL FPDFPageObj_GetClipCount(FPDF_PAGEOBJECT page_object); 00801 00802 00803 00811 DLLEXPORT FPDF_PATH STDCALL FPDFPageObj_GetClip(FPDF_PAGEOBJECT page_object, int index); 00812 00813 00814 00820 #define FPDF_FILL_NULL 0 00821 00822 #define FPDF_FILL_ALTERNATE 1 00823 00824 #define FPDF_FILL_WINDING 2 00825 00837 DLLEXPORT FPDF_BOOL STDCALL FPDFPageObj_AddClip(FPDF_PAGEOBJECT page_object, FPDF_PATH path, int type); 00838 00839 00848 DLLEXPORT FPDF_BOOL STDCALL FPDFPageObj_AppendPathToClip(FPDF_PAGEOBJECT page_object, FPDF_PATH path, int type); 00849 00850 00851 00859 DLLEXPORT void STDCALL FPDFPageObj_RemoveClip(FPDF_PAGEOBJECT page_object, int index); 00860 00861 00867 DLLEXPORT FPDF_DWORD STDCALL FPDFPageObj_GetFillColor(FPDF_PAGEOBJECT page_object); 00868 00869 00870 00877 DLLEXPORT void STDCALL FPDFPageObj_SetFillColor(FPDF_PAGEOBJECT page_object, FPDF_DWORD argb); 00878 00879 00885 DLLEXPORT FPDF_DWORD STDCALL FPDFPageObj_GetStrokeColor(FPDF_PAGEOBJECT page_object); 00886 00893 DLLEXPORT void STDCALL FPDFPageObj_SetStrokeColor(FPDF_PAGEOBJECT page_object, FPDF_DWORD argb); 00894 00895 00901 DLLEXPORT double STDCALL FPDFPageObj_GetLineWidth(FPDF_PAGEOBJECT page_object); 00902 00909 DLLEXPORT void STDCALL FPDFPageObj_SetLineWidth(FPDF_PAGEOBJECT page_object, double width); 00910 00911 00917 #define FPDF_LINECAP_BUTT 0 00918 00919 #define FPDF_LINECAP_ROUND 1 00920 00921 #define FPDF_LINECAP_PROJECT 2 00922 00929 DLLEXPORT int STDCALL FPDFPageObj_GetLineCapStyle(FPDF_PAGEOBJECT page_object); 00930 00931 00938 DLLEXPORT void STDCALL FPDFPageObj_SetLineCapStyle(FPDF_PAGEOBJECT page_object, int style); 00939 00940 00946 #define FPDF_LINEJOIN_MITER 0 00947 00948 #define FPDF_LINEJOIN_ROUND 1 00949 00950 #define FPDF_LINEJOIN_BEVEL 2 00951 00958 DLLEXPORT int STDCALL FPDFPageObj_GetLineJoinStyle(FPDF_PAGEOBJECT page_object); 00959 00960 00967 DLLEXPORT void STDCALL FPDFPageObj_SetLineJoinStyle(FPDF_PAGEOBJECT page_object, int style); 00968 00969 00977 DLLEXPORT double STDCALL FPDFPageObj_GetMiterLimit(FPDF_PAGEOBJECT page_object); 00978 00979 00988 DLLEXPORT void STDCALL FPDFPageObj_SetMiterLimit(FPDF_PAGEOBJECT page_object, double miter_limit); 00989 00990 00996 DLLEXPORT int STDCALL FPDFPageObj_GetDashCount(FPDF_PAGEOBJECT page_object); 00997 00998 01006 DLLEXPORT void STDCALL FPDFPageObj_SetDashCount(FPDF_PAGEOBJECT page_object, int count); 01007 01008 01009 01018 DLLEXPORT double STDCALL FPDFPageObj_GetDashArray(FPDF_PAGEOBJECT page_object, int index); 01019 01020 01030 DLLEXPORT void STDCALL FPDFPageObj_SetDashArray(FPDF_PAGEOBJECT page_object, int index, double dash_value); 01031 01032 01039 DLLEXPORT double STDCALL FPDFPageObj_GetDashPhase(FPDF_PAGEOBJECT page_object); 01040 01041 01049 DLLEXPORT void STDCALL FPDFPageObj_SetDashPhase(FPDF_PAGEOBJECT page_object, double phase_value); 01050 01051 01052 #ifdef __cplusplus 01053 }; 01054 #endif 01055 01056 01057 #endif 01058 01059 01060 01062