3#ifndef PDFSDK_CORE_DOCUMENT_H_INCLUDED_ 
    4#define PDFSDK_CORE_DOCUMENT_H_INCLUDED_ 
   32typedef struct PDPageRec_* PDPage;
 
   34#define kPDPageIndexNull ((size_t)(-1)) 
   42typedef void(PDFSDK_CALLCONV* PDDocPagesChangedProc)(PDPageOperation operation, 
const PDPageRange* pageRange, 
void* clientData);
 
   76typedef PDErrCode (PDFSDK_CALLCONV* PDDocAuthFreeDataProc)(
void* authProcData);
 
   80    PDDocAuthFreeDataProc free;
 
 
   83typedef PDErrCode (PDFSDK_CALLCONV* PDDocStreamReadAtProc)(
void* streamData, uint64_t pos, 
void* buffer, 
size_t nbytes, 
size_t* pRead);
 
   84typedef PDErrCode (PDFSDK_CALLCONV* PDDocStreamGetSizeProc)(
void* streamData, uint64_t* pSize);
 
   85typedef PDErrCode (PDFSDK_CALLCONV* PDDocStreamFreeDataProc)(
void* streamData);
 
   88    PDDocStreamReadAtProc readAt;
 
   89    PDDocStreamGetSizeProc getSize;
 
   90    PDDocStreamFreeDataProc free;
 
 
   95    const wchar_t* filePath;
 
 
  103    kPDDocSaveIncremental = 0x01,
 
  104    kPDDocSaveFull = 0x02,
 
  105    kPDDocSaveCopy = 0x04,
 
  106    kPDDocSaveLinearized = 0x08,
 
  107    kPDDocSaveCompressed = 0x10,
 
  108    kPDDocSaveXRefCompressed = 0x20,
 
  111typedef uint32_t PDDocSaveFlags;
 
  114    kPDOptSaveRemoveHiddenObjects = 1 << 0,
 
  115    kPDOptSaveDownsampleImages = 1 << 1,
 
  116    kPDOptSaveRemoveMetadata = 1 << 2,
 
  117    kPDOptSaveRemoveStructTree = 1 << 3,
 
  118    kPDOptSaveRemoveAttachments = 1 << 4,
 
  119    kPDOptSaveRemoveBookmarks = 1 << 5,
 
  120    kPDOptSaveRemoveAcroform = 1 << 6,
 
  121    kPDOptSaveRemoveOCProperties = 1 << 7,
 
  122    kPDOptSaveRemoveAnnotations = 1 << 8,
 
  123    kPDOptSaveRemoveOpenActions = 1 << 9,
 
  124    kPDOptSaveRemoveJavaScript = 1 << 10,
 
  125    kPDOptSaveRemoveInfo = 1 << 11
 
  127typedef uint32_t PDOptSaveFlags;
 
  130    kPDOptSaveImageQualityMin,
 
  131    kPDOptSaveImageQualityLow,
 
  132    kPDOptSaveImageQualityMedium,
 
  133    kPDOptSaveImageQualityHigh,
 
  134    kPDOptSaveImageQualityMax
 
  135} PDOptSaveImageQuality;
 
  139    PDOptSaveFlags flags;
 
  140    PDOptSaveImageQuality imageQuality;
 
 
  174PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocCreate(PDDoc* pDoc);
 
  176PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocIsCompressed(PDDoc doc, 
bool* pValue);
 
  177PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocIsModified(PDDoc doc, 
bool* pValue);
 
  178PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocSetModified(PDDoc doc, 
bool value);
 
  180PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocPurgeCaches(PDDoc doc);
 
  181PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocGetFilePath(PDDoc doc, 
wchar_t* buffer, 
size_t bufSize, 
size_t* pSize);
 
  182PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocGetPage(PDDoc doc, 
size_t index, PDPage* pPage);
 
  183PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocGetNumPages(PDDoc doc, 
size_t* pNumPages);
 
  184PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocAttachPagesChangedCallback(PDDoc doc, PDDocPagesChangedProc proc, 
void* clientData);
 
  185PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocDetachPagesChangedCallback(PDDoc doc, PDDocPagesChangedProc proc, 
void* clientData);
 
  186PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocNotifyPagesChanged(PDDoc doc, PDPageOperation operation, 
const PDPageRange* range);
 
  187PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocCreatePage(PDDoc doc, 
size_t insertAt, 
const PDRectF* mediaBox, PDPage* pPage);
 
  188PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocCreatePages(PDDoc doc, 
size_t insertAt, 
size_t count, 
const PDRectF* mediaBox);
 
  190PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocInsertPages(PDDoc doc, 
size_t insertAt, PDDoc sourceDoc, 
const PDPageRange* sourceRange, 
const PDProgressMonitor* progress, 
void* progressData);
 
  191PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocInsertPage(PDDoc doc, PDPage page, 
size_t insertAt);
 
  193PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocFindPageIndexForLabel(PDDoc doc, 
const wchar_t* label, 
size_t labelSize, 
size_t* pIndex);
 
  194PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocGetLabelForPageIndex(PDDoc doc, 
size_t index, 
wchar_t* buffer, 
size_t bufferSize, 
size_t* pSize);
 
  195PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocGetID(PDDoc doc, 
const char** pPermaID, 
size_t* pPermaLen, 
const char** pInstanceID, 
size_t* pInstanceLen);
 
  196PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocGetVersion(PDDoc doc, 
PDVersion* pVersion);
 
  197PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocGetFileSize(PDDoc doc, uint64_t* pFileSize);
 
  236PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocGetCreationDate(PDDoc doc, 
PDDateTime* creationDate);
 
  237PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocSetCreationDate(PDDoc doc, 
const PDDateTime* creationDate);
 
  239PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocSetModDate(PDDoc doc, 
const PDDateTime* modDate);
 
  240PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocSetPageLayout(PDDoc doc, PDAtom layout);
 
  251PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocSetPageMode(PDDoc doc, PDAtom mode);
 
  263PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDDocSetPageDirection(PDDoc doc, PDPageDirection direction);
 
  281PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDStructTreeRoleMapGetTag(PDDoc doc, PDAtom tag, PDAtom* pValue);
 
  282PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDStructTreeFindStructParent(PDDoc doc, 
int structParent, 
int MCID, 
PDObject* pObj);
 
  284PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageGetDoc(PDPage page, PDDoc* pDoc);
 
  285PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageGetIndex(PDPage page, 
size_t* pIndex);
 
  286PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageIsContentModified(PDPage page, 
bool* pValue);
 
  287PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageSetContentModified(PDPage page, 
bool value);
 
  300PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageSetMediaBox(PDPage page, 
const PDRectF* mediaBox);
 
  315PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageSetCropBox(PDPage page, 
const PDRectF* cropBox);
 
  329PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageSetTrimBox(PDPage page, 
const PDRectF* trimBox);
 
  330PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageGetTrimBox(PDPage page, 
PDRectF* pTrimBox);
 
  331PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageSetArtBox(PDPage page, 
const PDRectF* artBox);
 
  332PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageGetArtBox(PDPage page, 
PDRectF* pArtBox);
 
  333PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageSetBleedBox(PDPage page, 
const PDRectF* bleedBox);
 
  334PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageGetBleedBox(PDPage page, 
PDRectF* pBleedBox);
 
  335PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageSetRotate(PDPage page, PDRotate rotate);
 
  344PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageSetUserUnitSize(PDPage page, 
float unitSize);
 
  354PDF_CORE_API 
PDErrCode PDFSDK_CALLCONV PDPageGetPDObject(PDPage page, 
PDObject* pObj);
 
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDDocGetPageMode(PDDoc doc, PDAtom *pMode)
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDPageGetMediaBox(PDPage page, PDRectF *pMediaBox)
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDPageFlushModifiedContent(PDPage page)
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDDocSetInfoString(PDDoc doc, PDAtom infoStringAtom, const wchar_t *buffer, size_t bufferSize)
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDPageGetCropBox(PDPage page, PDRectF *pCropBox)
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDPageGetRotate(PDPage page, PDRotate *pRotate)
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDDocGetInfoString(PDDoc doc, PDAtom infoStringAtom, wchar_t *buffer, size_t bufferSize, size_t *pSize)
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDPageGetUserUnitSize(PDPage page, float *pUnitSize)
PDErrCode(PDFSDK_CALLCONV * PDDocAuthProc)(void *authProcData, PDAtom securityHandlerName, void *pAuthData)
Definition document.h:75
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDDocGetPageLayout(PDDoc doc, PDAtom *pLayout)
PDF_CORE_API PDErrCode PDFSDK_CALLCONV PDDocGetPageDirection(PDDoc doc, PDPageDirection *pDirection)
int32_t PDErrCode
Definition errors.h:44
Definition document.h:145
void * progressData
A pointer to pass to progress each time it is called.
Definition document.h:159
PDDocSaveFlags flags
A combination of PDDocSaveFlags.
Definition document.h:147
const PDVersion * version
The version number of the document. Pass null to keep the current version.
Definition document.h:165
const PDProgressMonitor * progress
The progress monitor to receive notifications about the saving process. It may be null.
Definition document.h:156
PDWriteStream outputStream
The stream to write output document to. Used only if filePath is null.
Definition document.h:153
const PDOptSaveSettings * optSettings
The settings to use in "Reduce File Size". Pass null for the regular save.
Definition document.h:162
const wchar_t * filePath
The path to which the document is saved. If both this and outputStream are null, the current document...
Definition document.h:150
Definition document.h:138
Definition progress_monitor.h:15
Definition math_types.h:30