PoDoFo 1.1.0
Loading...
Searching...
No Matches
PdfXMPPacket.h
1
7#ifndef PDF_XMP_PACKET
8#define PDF_XMP_PACKET
9
10#include "PdfMetadataStore.h"
11
12extern "C"
13{
14 typedef struct _xmlDoc xmlDoc;
15 typedef xmlDoc* xmlDocPtr;
16 typedef struct _xmlNode xmlNode;
17 typedef xmlNode* xmlNodePtr;
18}
19
20namespace PoDoFo
21{
22 class PODOFO_API PdfXMPPacket final
23 {
24 public:
25 PdfXMPPacket();
26 PdfXMPPacket(const PdfXMPPacket&) = delete;
27 ~PdfXMPPacket();
28
29 static std::unique_ptr<PdfXMPPacket> Create(const std::string_view& xmpview);
30
31 public:
32 PdfMetadataStore GetMetadata() const;
33 void GetMetadata(PdfMetadataStore& metadata) const;
34 void SetMetadata(const PdfMetadataStore& metadata);
35 void ToString(std::string& str) const;
36 std::string ToString() const;
37
38#if PODOFO_3RDPARTY_INTEROP_ENABLED
39 xmlDocPtr GetDoc() { return m_Doc; }
40 xmlNodePtr GetOrCreateDescription();
41 xmlNodePtr GetDescription() const { return m_Description; }
42#endif // PODOFO_3RDPARTY_INTEROP_ENABLED
43
44 public:
45 PdfXMPPacket& operator=(const PdfXMPPacket&) = delete;
46
47 private:
48 PdfXMPPacket(xmlDocPtr doc, xmlNodePtr xmpmeta);
49
50 private:
51 xmlDocPtr m_Doc;
52 xmlNodePtr m_XMPMeta;
53 xmlNodePtr m_Description;
54 };
55}
56
57#endif // PDF_XMP_PACKET
SPDX-FileCopyrightText: (C) 2022 Francesco Pretto ceztko@gmail.com SPDX-License-Identifier: LGPL-2....
Definition basetypes.h:16
@ Create
Create a new file or truncate existing one for writing/reading.