PoDoFo 1.0.0-dev
Loading...
Searching...
No Matches
PdfMetadata.h
1
7#ifndef PDF_METADATA
8#define PDF_METADATA
9
10#include "PdfInfo.h"
11#include "PdfXMPPacket.h"
12
13namespace PoDoFo
14{
15 class PdfMetadataStore;
16 class PdfDocument;
17
18 class PODOFO_API PdfMetadata final
19 {
20 friend class PdfDocument;
21 friend class PdfCatalog;
22
23 private:
24 PdfMetadata(PdfDocument& doc);
25 PdfMetadata(PdfMetadata&) = delete;
26
27 public:
28 ~PdfMetadata();
29
33 void SetTitle(nullable<const PdfString&> title);
34
38 nullable<const PdfString&> GetTitle() const;
39
43 void SetAuthor(nullable<const PdfString&> author);
44
48 nullable<const PdfString&> GetAuthor() const;
49
53 void SetSubject(nullable<const PdfString&> subject);
54
58 nullable<const PdfString&> GetSubject() const;
59
63 nullable<const PdfString&> GetKeywordsRaw() const;
64
68 void SetKeywords(std::vector<std::string> keywords);
69
73 std::vector<std::string> GetKeywords() const;
74
79 void SetCreator(nullable<const PdfString&> creator);
80
84 nullable<const PdfString&> GetCreator() const;
85
89 void SetProducer(nullable<const PdfString&> producer);
90
94 nullable<const PdfString&> GetProducer() const;
95
99 void SetCreationDate(nullable<PdfDate> date);
100
104 nullable<const PdfDate&> GetCreationDate() const;
105
109 void SetModifyDate(nullable<PdfDate> date);
110
114 nullable<const PdfDate&> GetModifyDate() const;
115
119 void SetTrapped(nullable<bool> trapped);
120
123 nullable<bool>GetTrapped() const;
124
129 void SetPdfVersion(PdfVersion version);
130
131 PdfVersion GetPdfVersion() const;
132
133 PdfALevel GetPdfALevel() const;
134
138 void SetPdfALevel(PdfALevel level);
139
140 PdfUALevel GetPdfUALevel() const;
141
142 void SetPdfUALevel(PdfUALevel version);
143
144 nullable<const PdfString&> GetProperty(PdfAdditionalMetadata prop) const;
145
146 void SetProperty(PdfAdditionalMetadata prop, nullable<const PdfString&> value);
147
154 void SyncXMPMetadata(bool resetXMPPacket = false);
155
159 bool TrySyncXMPMetadata();
160
163 std::unique_ptr<PdfXMPPacket> TakeXMPPacket();
164
165 private:
166 void Invalidate();
167
168 private:
169 PdfMetadata& operator=(PdfMetadata&) = delete;
170
171 void setKeywords(nullable<const PdfString&> keywords);
172 void ensureInitialized();
173 void syncXMPMetadata(bool resetXMPPacket);
174 void invalidate();
175
176 private:
177 PdfDocument* m_doc;
178 PdfMetadataStore* m_metadata;
179 bool m_xmpSynced;
180 std::unique_ptr<PdfXMPPacket> m_packet;
181 };
182}
183
184#endif // PDF_METADATA
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