3#ifndef PDFSDK_CXX_PDF_OBJECT_H_INCLUDED_
4#define PDFSDK_CXX_PDF_OBJECT_H_INCLUDED_
13#include "forward_declarations.h"
14#include "wrapper_base.h"
95 explicit operator
bool() const noexcept {
return !
Equals(nullPDObject); }
96 bool operator==(
const Object& rhs)
const noexcept {
return Equals(rhs); }
448 void Acquire() noexcept;
449 void Release() noexcept;
480class DictEnumerator : public detail::RefCountedHandle<PDDictEnumerator> {
508 DictEnumerator& begin() {
Reset();
MoveNext();
return *
this; }
509 End end()
const {
return {}; }
510 DictEnumerator& operator++() { MoveNext();
return *
this; }
511 bool operator!=(End)
const {
return GetKey() != kPDAtomNull; }
512 std::pair<PDAtom, Object> operator*()
const;
515 PDF_CXX_CORE_WRAPPER_DEFINE_MEMBERS_(DictEnumerator, PDDictEnumerator)
520#include "object_impl.inl"
Enumerator for traversing key/value pairs in a dictionary Object.
Definition object.h:480
Represents a PDF object.
Definition object.h:25
void ArrayAddInteger(int64_t value)
void DictRemove(PDAtom name)
void ArrayAddReal(float value)
void DictPutStringUnicode(PDAtom name, std::wstring_view unicode)
PDObjectType GetObjectType() const
bool Equals(const Object &rhs) const noexcept
Compares two objects for identity.
void ArrayAddStringUnicode(std::wstring_view unicode)
Object GetStreamDict() const
void DictPutName(PDAtom name, PDAtom value)
Object DictPutDict(PDAtom name)
void ArrayAdd(const Object &object)
float GetRealValue() const
void DictPutReal(PDAtom name, float value)
Object ArrayGet(size_t index) const
uint32_t GetObjNumber() const
void ArrayInsert(size_t index, const Object &object)
Object DictFind(PDAtom name) const
std::wstring GetUnicodeString() const
void ArrayAddString(std::string_view bytes, bool hex=false)
ReadStream StreamOpen(PDObjectStreamOpenMode openMode=kPDObjectStreamOpenFiltered) const
void DictPutInteger(PDAtom name, int64_t value)
bool DeepEquals(const Object &that)
PDAtom DictFindName(PDAtom name) const
DictEnumerator DictGetEnumerator() const
size_t GetArrayLength() const
void ArrayAddBoolean(bool value)
void ArrayRemove(size_t index)
int64_t GetIntValue() const
bool GetBoolValue() const
Object DictPutArray(PDAtom name)
void DictPutString(PDAtom name, std::string_view bytes, bool hex=false)
bool IsDictOrStream() const
uint16_t GetGenNumber() const
void ArrayPut(size_t index, const Object &object)
void DictEnum(Func &&func) const
void reset(PDObject obj, bool adopt=false) noexcept
size_t GetDictNumEntries() const
PDObject get() const noexcept
void ArrayAddName(PDAtom value)
uint64_t GetFileOffset() const
std::string GetStringValue() const
PDAtom GetNameValue() const
PDObject detach() noexcept
void DictPutBoolean(PDAtom name, bool value)
void DictPut(PDAtom name, const Object &object)
Represents a read stream for reading data from PDF objects.
Definition read_stream.h:19
PDObjectStreamOpenMode
Specifies how an objects' stream is accessed.
Definition objects.h:102
@ kPDObjectStreamOpenFiltered
Definition objects.h:110
PDObjectType
Represents the type of a PDObject and may be retrieved using PDObjectGetType.
Definition objects.h:25