11#include "PdfXMPPacket.h"
15 class PdfMetadataStore;
18 class PODOFO_API PdfMetadata final
20 friend class PdfDocument;
21 friend class PdfCatalog;
24 PdfMetadata(PdfDocument& doc);
25 PdfMetadata(PdfMetadata&) =
delete;
33 void SetTitle(nullable<const PdfString&> title);
38 nullable<const PdfString&> GetTitle()
const;
43 void SetAuthor(nullable<const PdfString&> author);
48 nullable<const PdfString&> GetAuthor()
const;
53 void SetSubject(nullable<const PdfString&> subject);
58 nullable<const PdfString&> GetSubject()
const;
63 nullable<const PdfString&> GetKeywordsRaw()
const;
68 void SetKeywords(std::vector<std::string> keywords);
73 std::vector<std::string> GetKeywords()
const;
79 void SetCreator(nullable<const PdfString&> creator);
84 nullable<const PdfString&> GetCreator()
const;
89 void SetProducer(nullable<const PdfString&> producer);
94 nullable<const PdfString&> GetProducer()
const;
99 void SetCreationDate(nullable<PdfDate> date);
104 nullable<const PdfDate&> GetCreationDate()
const;
109 void SetModifyDate(nullable<PdfDate> date);
114 nullable<const PdfDate&> GetModifyDate()
const;
119 void SetTrapped(nullable<bool> trapped);
123 nullable<bool>GetTrapped()
const;
129 void SetPdfVersion(PdfVersion version);
133 PdfALevel GetPdfALevel()
const;
138 void SetPdfALevel(PdfALevel level);
140 PdfUALevel GetPdfUALevel()
const;
142 void SetPdfUALevel(PdfUALevel version);
144 nullable<const PdfString&> GetProperty(PdfAdditionalMetadata prop)
const;
146 void SetProperty(PdfAdditionalMetadata prop, nullable<const PdfString&> value);
154 void SyncXMPMetadata(
bool resetXMPPacket =
false);
159 bool TrySyncXMPMetadata();
163 std::unique_ptr<PdfXMPPacket> TakeXMPPacket();
169 PdfMetadata& operator=(PdfMetadata&) =
delete;
171 void setKeywords(nullable<const PdfString&> keywords);
172 void ensureInitialized();
173 void syncXMPMetadata(
bool resetXMPPacket);
178 PdfMetadataStore* m_metadata;
180 std::unique_ptr<PdfXMPPacket> m_packet;
SPDX-FileCopyrightText: (C) 2022 Francesco Pretto ceztko@gmail.com SPDX-License-Identifier: LGPL-2....
Definition basetypes.h:16
PdfVersion
Enum to identify different versions of the PDF file format.
Definition PdfDeclarations.h:71