7#include "PdfMetadataStore.h"
11 typedef struct _xmlDoc xmlDoc;
12 typedef xmlDoc* xmlDocPtr;
13 typedef struct _xmlNode xmlNode;
14 typedef xmlNode* xmlNodePtr;
21 class PODOFO_API PdfXMPProperty final
23 friend class PdfXMPPacket;
27 const std::string& GetName()
const {
return Name; }
28 const std::string& GetNamespace()
const {
return Namespace; }
29 const std::string& GetPrefix()
const {
return Prefix; }
30 std::string GetPrefixedName()
const;
32 bool IsDuplicated()
const;
33 bool HasInvalidPrefix()
const;
36 std::string Namespace;
41 class PODOFO_API PdfXMPPacket final
45 PdfXMPPacket(
const PdfXMPPacket&) =
delete;
48 static std::unique_ptr<PdfXMPPacket>
Create(
const std::string_view& xmpview);
51 PdfMetadataStore GetMetadata()
const;
52 void GetMetadata(PdfMetadataStore& metadata)
const;
53 void SetMetadata(
const PdfMetadataStore& metadata);
54 void ToString(std::string& str)
const;
55 std::string ToString()
const;
57 void PruneAndValidate(PdfALevel level,
const std::function<
void(
const PdfXMPProperty& prop)>& warnings =
nullptr);
58#ifdef PODOFO_3RDPARTY_INTEROP_ENABLED
59 void PruneAndValidate(PdfALevel level,
const std::function<
void(
const PdfXMPProperty& prop, xmlNodePtr)>& warnings);
60 xmlDocPtr GetDoc() {
return m_Doc; }
61 xmlNodePtr GetOrCreateDescription();
62 xmlNodePtr GetDescription() {
return m_Description; }
66 PdfXMPPacket& operator=(
const PdfXMPPacket&) =
delete;
69 PdfXMPPacket(xmlDocPtr doc, xmlNodePtr xmpmeta);
74 xmlNodePtr m_Description;
All classes, functions, types and enums of PoDoFo are members of these namespace.
Definition basetypes.h:13
@ Name
Name datatype. Names are used as keys in dictionary to reference values.
@ Create
Create a new file or truncate existing one for writing/reading.