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