#include "PdfObject.h" #include "PdfDictionary.h" #include "PdfXRefTable.h" std::string PdfObject::ToString(PdfXRefTable* xRefTable) { UpdateDictionary(); auto content = GetStringPrefix(); content += mDictionary.ToString(); content += GetStringSuffix(); xRefTable->AddRecord(content.size(), mGenerationNumber, mIsFree); return content; } void PdfObject::UpdateDictionary() { } std::string PdfObject::GetStringSuffix() const { return "endobj\n\n"; } unsigned PdfObject::IndexObjects(unsigned count) { const auto newCount = count + 1; mObjectNumber = newCount; return newCount; } void PdfObject::SetObjectNumber(unsigned num) { mObjectNumber = num; } void PdfObject::SetGenerationNumber(unsigned num) { mGenerationNumber = num; } std::string PdfObject::GetStringPrefix() const { return std::to_string(mObjectNumber) + " " + std::to_string(mGenerationNumber) + " obj\n"; } std::string PdfObject::GetRefString() const { return std::to_string(mObjectNumber) + " " + std::to_string(mGenerationNumber) + " R"; } bool PdfObject::IsFree() const { return mIsFree; }