PoDoFo 1.2.0
Loading...
Searching...
No Matches
PdfOutlines.h
1// SPDX-FileCopyrightText: 2006 Dominik Seichter <domseichter@web.de>
2// SPDX-License-Identifier: LGPL-2.0-or-later OR MPL-2.0
3
4#ifndef PDF_OUTLINE_H
5#define PDF_OUTLINE_H
6
7#include "PdfElement.h"
8#include "PdfColor.h"
9
10namespace PoDoFo {
11
12class PdfDestination;
13class PdfAction;
14
18{
19 Default = 0,
20 Italic = 1,
21 Bold = 2,
22 BoldItalic = 3,
23};
24
32class PODOFO_API PdfOutlineItem : public PdfDictionaryElement
33{
34 friend class PdfOutlines;
35 friend class PdfDocument;
36
37private:
43
50
51 PdfOutlineItem(const PdfOutlineItem&) = delete;
52
53public:
54 virtual ~PdfOutlineItem();
55
58 PdfOutlineItem& CreateChild(const PdfString& title);
59
62 PdfOutlineItem& CreateNext(const PdfString& title);
63
65 inline PdfOutlineItem* Prev() const { return m_Prev; }
66
68 inline PdfOutlineItem* Next() const { return m_Next; }
69
71 inline PdfOutlineItem* First() const { return m_First; }
72
74 inline PdfOutlineItem* Last() const { return m_Last; }
75
78 inline PdfOutlineItem* GetParentOutline() const { return m_ParentOutline; }
79
85 void Erase();
86
89 void SetDestination(nullable<const PdfDestination&> dest);
90
93 nullable<const PdfDestination&> GetDestination() const;
94 nullable<PdfDestination&> GetDestination();
95
98 void SetAction(nullable<const PdfAction&> action);
99
102 nullable<const PdfAction&> GetAction() const;
103 nullable<PdfAction&> GetAction();
104
107 void SetTitle(const PdfString& title);
108
111 const PdfString& GetTitle() const;
112
118 void SetTextFormat(PdfOutlineFormat format);
119
122 PdfOutlineFormat GetTextFormat() const;
123
127 void SetTextColor(const PdfColor& color);
128
133 PdfColor GetTextColor() const;
134
135private:
146 void InsertChild(std::unique_ptr<PdfOutlineItem> item);
147
148 nullable<PdfAction&> getAction();
149 nullable<PdfDestination&> getDestination();
150 void setPrevious(PdfOutlineItem* item);
151 void setNext(PdfOutlineItem* item);
152 void setLast(PdfOutlineItem* item);
153 void setFirst(PdfOutlineItem* item);
154 void insertChildInternal(PdfOutlineItem* item, bool checkSameTree);
155
156private:
157 PdfOutlineItem* m_ParentOutline;
158
159 PdfOutlineItem* m_Prev;
160 PdfOutlineItem* m_Next;
161
162 PdfOutlineItem* m_First;
163 PdfOutlineItem* m_Last;
164
167};
168
174class PODOFO_API PdfOutlines final : public PdfOutlineItem
175{
176 friend class PdfDocument;
177
178private:
181
185
186public:
191 PdfOutlineItem& CreateRoot(const PdfString& title);
192};
193
194};
195
196#endif // PDF_OUTLINE_H
A color object can represent either a grayscale value, a RGB color, a CMYK color.
Definition PdfColor.h:20
PdfDocument is the core interface for working with PDF documents.
Definition PdfDocument.h:108
This class represents a PDF indirect Object in memory.
Definition PdfObject.h:31
A PDF outline item has a title and a destination.
Definition PdfOutlines.h:33
PdfOutlineItem * Next() const
Definition PdfOutlines.h:68
PdfOutlineItem * Prev() const
Definition PdfOutlines.h:65
PdfOutlineItem * Last() const
Definition PdfOutlines.h:74
PdfOutlineItem * GetParentOutline() const
Definition PdfOutlines.h:78
PdfOutlineItem * First() const
Definition PdfOutlines.h:71
The main PDF outlines dictionary.
Definition PdfOutlines.h:175
A string that can be written to a PDF document.
Definition PdfString.h:21
Convenient type for char array storage and/or buffer with std::string compatibility.
Definition basetypes.h:30
All classes, functions, types and enums of PoDoFo are members of these namespace.
Definition basetypes.h:13
PdfOutlineFormat
The title of an outline item can be displayed in different formatting styles since PDF 1....
Definition PdfOutlines.h:18
@ BoldItalic
Bold Italic.
@ Italic
Glyphs have dominant vertical strokes that are slanted.