PoDoFo 1.0.0-dev
Loading...
Searching...
No Matches
PdfOutlines.h
1
6#ifndef PDF_OUTLINE_H
7#define PDF_OUTLINE_H
8
9#include "PdfElement.h"
10#include "PdfColor.h"
11
12namespace PoDoFo {
13
14class PdfDestination;
15class PdfAction;
16
22{
23 Default = 0,
24 Italic = 1,
25 Bold = 2,
26 BoldItalic = 3,
27};
28
38class PODOFO_API PdfOutlineItem : public PdfDictionaryElement
39{
40 friend class PdfOutlines;
41 friend class PdfDocument;
42
43private:
50
58
59 PdfOutlineItem(const PdfOutlineItem&) = delete;
60
61public:
62 virtual ~PdfOutlineItem();
63
67 PdfOutlineItem& CreateChild(const PdfString& title);
68
72 PdfOutlineItem& CreateNext(const PdfString& title);
73
77 inline PdfOutlineItem* Prev() const { return m_Prev; }
78
82 inline PdfOutlineItem* Next() const { return m_Next; }
83
87 inline PdfOutlineItem* First() const { return m_First; }
88
92 inline PdfOutlineItem* Last() const { return m_Last; }
93
98 inline PdfOutlineItem* GetParentOutline() const { return m_ParentOutline; }
99
106 void Erase();
107
111 void SetDestination(nullable<const PdfDestination&> dest);
112
116 nullable<const PdfDestination&> GetDestination() const;
117 nullable<PdfDestination&> GetDestination();
118
122 void SetAction(nullable<const PdfAction&> action);
123
127 nullable<const PdfAction&> GetAction() const;
128 nullable<PdfAction&> GetAction();
129
133 void SetTitle(const PdfString& title);
134
138 const PdfString& GetTitle() const;
139
146 void SetTextFormat(PdfOutlineFormat format);
147
151 PdfOutlineFormat GetTextFormat() const;
152
157 void SetTextColor(const PdfColor& color);
158
164 PdfColor GetTextColor() const;
165
166private:
178 void InsertChild(std::unique_ptr<PdfOutlineItem> item);
179
180 nullable<PdfAction&> getAction();
181 nullable<PdfDestination&> getDestination();
182 void setPrevious(PdfOutlineItem* item);
183 void setNext(PdfOutlineItem* item);
184 void setLast(PdfOutlineItem* item);
185 void setFirst(PdfOutlineItem* item);
186 void insertChildInternal(PdfOutlineItem* item, bool checkParent);
187
188private:
189 PdfOutlineItem* m_ParentOutline;
190
191 PdfOutlineItem* m_Prev;
192 PdfOutlineItem* m_Next;
193
194 PdfOutlineItem* m_First;
195 PdfOutlineItem* m_Last;
196
199};
200
207class PODOFO_API PdfOutlines final : public PdfOutlineItem
208{
209 friend class PdfDocument;
210
211private:
215
220
221public:
227 PdfOutlineItem& CreateRoot(const PdfString& title);
228};
229
230};
231
232#endif // PDF_OUTLINE_H
A color object can represent either a grayscale value, a RGB color, a CMYK color.
Definition PdfColor.h:23
PdfDocument is the core interface for working with PDF documents.
Definition PdfDocument.h:111
This class represents a PDF indirect Object in memory.
Definition PdfObject.h:35
A PDF outline item has an title and a destination.
Definition PdfOutlines.h:39
PdfOutlineItem * Next() const
Definition PdfOutlines.h:82
PdfOutlineItem * Prev() const
Definition PdfOutlines.h:77
PdfOutlineItem * Last() const
Definition PdfOutlines.h:92
PdfOutlineItem * GetParentOutline() const
Definition PdfOutlines.h:98
PdfOutlineItem * First() const
Definition PdfOutlines.h:87
The main PDF outlines dictionary.
Definition PdfOutlines.h:208
A string that can be written to a PDF document.
Definition PdfString.h:24
Convenient type for char array storage and/or buffer with std::string compatibility.
Definition basetypes.h:38
SPDX-FileCopyrightText: (C) 2022 Francesco Pretto ceztko@gmail.com SPDX-License-Identifier: LGPL-2....
Definition basetypes.h:16
PdfOutlineFormat
The title of an outline item can be displayed in different formatting styles since PDF 1....
Definition PdfOutlines.h:22
@ BoldItalic
Bold Italic.
@ Italic
Glyphs have dominant vertical strokes that are slanted.