10#include "PdfMetadataStore.h"
14 typedef struct _xmlDoc xmlDoc;
15 typedef xmlDoc* xmlDocPtr;
16 typedef struct _xmlNode xmlNode;
17 typedef xmlNode* xmlNodePtr;
24 class PODOFO_API PdfXMPProperty final
26 friend class PdfXMPPacket;
30 const std::string& GetName()
const {
return Name; }
31 const std::string& GetNamespace()
const {
return Namespace; }
32 const std::string& GetPrefix()
const {
return Prefix; }
33 std::string GetPrefixedName()
const;
35 bool IsDuplicated()
const;
36 bool HasInvalidPrefix()
const;
39 std::string Namespace;
44 class PODOFO_API PdfXMPPacket final
48 PdfXMPPacket(
const PdfXMPPacket&) =
delete;
51 static std::unique_ptr<PdfXMPPacket>
Create(
const std::string_view& xmpview);
54 PdfMetadataStore GetMetadata()
const;
55 void GetMetadata(PdfMetadataStore& metadata)
const;
56 void SetMetadata(
const PdfMetadataStore& metadata);
57 void ToString(std::string& str)
const;
58 std::string ToString()
const;
61 void PruneAndValidate(PdfALevel level,
const std::function<
void(
const PdfXMPProperty& prop)>& warnings =
nullptr);
62#ifdef PODOFO_3RDPARTY_INTEROP_ENABLED
63 void PruneAndValidate(PdfALevel level,
const std::function<
void(
const PdfXMPProperty& prop, xmlNodePtr)>& warnings);
64 xmlDocPtr GetDoc() {
return m_Doc; }
65 xmlNodePtr GetOrCreateDescription();
66 xmlNodePtr GetDescription() {
return m_Description; }
70 PdfXMPPacket& operator=(
const PdfXMPPacket&) =
delete;
73 PdfXMPPacket(xmlDocPtr doc, xmlNodePtr xmpmeta);
78 xmlNodePtr m_Description;
SPDX-FileCopyrightText: (C) 2022 Francesco Pretto ceztko@gmail.com SPDX-License-Identifier: LGPL-2....
Definition basetypes.h:16
@ 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.