3#ifndef PDFSDK_CORE_OBJECTS_H_INCLUDED_
4#define PDFSDK_CORE_OBJECTS_H_INCLUDED_
87inline PDObject PDObjectCreateNull() {
92#define nullPDObject (PDObjectCreateNull())
99typedef struct PDReadStreamRec_* PDReadStream;
100typedef struct PDWriteStreamRec_* PDWriteStream;
102typedef PDErrCode(PDFSDK_CALLCONV* PDWriteStreamWriteProc)(
void* streamData,
const void* buffer,
size_t nbytes,
size_t* pWritten);
103typedef PDErrCode(PDFSDK_CALLCONV* PDWriteStreamCloseProc)(
void* streamData);
104typedef void(PDFSDK_CALLCONV* PDWriteStreamFreeDataProc)(
void* streamData);
107 PDWriteStreamWriteProc write;
108 PDWriteStreamCloseProc close;
109 PDWriteStreamFreeDataProc free;
129PDF_CORE_API
void PDFSDK_CALLCONV PDObjectAcquire(
PDObject object);
130PDF_CORE_API
void PDFSDK_CALLCONV PDObjectRelease(
PDObject object);
131PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocGetObjectByID(PDDoc file, uint32_t
id,
PDObject* pObj);
133PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocGetRootObject(PDDoc file,
PDObject* pObj);
134PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocGetInfoObject(PDDoc file,
PDObject* pObj);
139PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocCreateBoolObject(PDDoc file,
bool indirect,
bool value,
PDObject*
object);
140PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectGetBool(
PDObject object,
bool* value);
143PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocCreateIntObject(PDDoc file,
bool indirect, int64_t value,
PDObject*
object);
144PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectGetInt(
PDObject object, int64_t* value);
147PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocCreateRealObject(PDDoc file,
bool indirect,
float value,
PDObject*
object);
148PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectGetReal(
PDObject object,
float* value);
151PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocCreateStringObjectFromUnicode(PDDoc file,
bool indirect,
const wchar_t* buffer,
size_t bufSize,
PDObject*
object);
152PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocCreateStringObject(PDDoc file,
bool indirect,
const void* buffer,
size_t numBytes,
bool hexString,
PDObject*
object);
153PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectGetUnicodeString(
PDObject object,
wchar_t* buffer,
size_t bufSize,
size_t* bufNeededSize);
154PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectGetString(
PDObject object,
void* buffer,
size_t numBytes,
size_t* neededBytes);
157PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocCreateNameObject(PDDoc file,
bool indirect, PDAtom name,
PDObject*
object);
158PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectGetName(
PDObject object, PDAtom* name);
161PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocCreateArrayObject(PDDoc file,
bool indirect,
PDObject*
object);
164PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectArrayRemove(
PDObject array,
size_t index);
165PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectArrayGetLength(
PDObject array,
size_t* index);
168PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocCreateDictObject(PDDoc file,
bool indirect,
PDObject*
object);
170PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectDictPutName(
PDObject dict, PDAtom name, PDAtom value);
172PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectDictFindName(
PDObject dict, PDAtom name, PDAtom* pvalue);
173PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectDictRemove(
PDObject dict, PDAtom name);
177PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDDocCreateStreamObject(PDDoc file,
const void* buffer,
size_t bufSize,
PDObject attributesDict,
PDObject encodeParms,
bool encodeSource,
PDObject* pObj);
181PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDReadStreamRead(PDReadStream readStream,
void* buffer,
size_t numBytes,
size_t* numBytesRead);
182PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDReadStreamClose(PDReadStream stream);
184PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDCreateWriteStreamFromProcs(
const PDWriteStreamProcs* procs,
void* streamData, PDWriteStream* pStream);
185PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDWriteStreamWrite(PDWriteStream readStream,
const void* buffer,
size_t numBytes,
size_t* numBytesWritten);
186PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDWriteStreamClose(PDWriteStream stream);
188PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectIsIndirect(
PDObject object,
bool* pIndirect);
189PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectGetObjNumber(
PDObject object, uint32_t* pObjNum);
190PDF_CORE_API
PDErrCode PDFSDK_CALLCONV PDObjectGetGenNumber(
PDObject object, uint16_t* pGenNum);
int32_t PDErrCode
Definition errors.h:44
PDErrCode(PDFSDK_CALLCONV * PDObjectDictEnumProc)(PDAtom key, PDObject value, void *userData)
Definition objects.h:97
PDObjectStreamOpenMode
Specifies how an objects' stream is accessed.
Definition objects.h:115
@ kPDObjectStreamOpenRaw
Definition objects.h:116
@ kPDObjectStreamOpenFiltered
Definition objects.h:123
@ kPDObjectStreamOpenDecrypted
Definition objects.h:120
PDObjectType
Represents the type of a PDObject and may be retrieved using PDObjectGetType.
Definition objects.h:25
@ kPDObjectBoolean
Definition objects.h:29
@ kPDObjectNull
Definition objects.h:26
@ kPDObjectStream
Definition objects.h:34
@ kPDObjectArray
Definition objects.h:33
@ kPDObjectName
Definition objects.h:30
@ kPDObjectInteger
Definition objects.h:27
@ kPDObjectString
Definition objects.h:31
@ kPDObjectDict
Definition objects.h:32
@ kPDObjectReal
Definition objects.h:28