PoDoFo 1.0.0-dev
Loading...
Searching...
No Matches
PdfCanvas.h
1
7#ifndef PDF_CANVAS_H
8#define PDF_CANVAS_H
9
10#include "PdfDeclarations.h"
11#include "PdfResources.h"
12#include "PdfArray.h"
13#include <podofo/auxiliary/Corners.h>
14
15namespace PoDoFo {
16
17enum class PdfStreamAppendFlags
18{
19 None = 0,
20 Prepend = 1,
21 NoSaveRestorePrior = 2
22};
23
27class PODOFO_API PdfCanvas
28{
29public:
33 virtual ~PdfCanvas();
34
40 const PdfObject* GetContentsObject() const;
41 PdfObject* GetContentsObject();
42
46 virtual PdfObjectStream& GetOrCreateContentsStream(PdfStreamAppendFlags flags) = 0;
47
51
52 charbuff GetContentsCopy() const;
53
57 void CopyContentsTo(charbuff& buffer) const;
58 virtual void CopyContentsTo(OutputStream& stream) const = 0;
59
63 PdfResources* GetResources();
64 const PdfResources* GetResources() const;
65
66 PdfDictionaryElement& GetElement();
67 const PdfDictionaryElement& GetElement() const;
68
73
76 void EnsureResourcesCreated();
77
81 virtual Corners GetRectRaw() const = 0;
82
87 virtual bool TryGetRotationRadians(double& teta) const = 0;
88
89protected:
90 virtual PdfObject* getContentsObject() = 0;
91 virtual PdfResources* getResources() = 0;
92 virtual PdfDictionaryElement& getElement() = 0;
93};
94
95};
96
97ENABLE_BITMASK_OPERATORS(PoDoFo::PdfStreamAppendFlags);
98
99#endif // PDF_CANVAS_H
SPDX-FileCopyrightText: (C) 2005 Dominik Seichter domseichter@web.de SPDX-FileCopyrightText: (C) 2020...
An unoriented rectangle defined by 2 points.
Definition Corners.h:20
An interface for writing blocks of data to a data source.
Definition OutputStream.h:18
A interface that provides the necessary features for a painter to draw onto a PdfObject.
Definition PdfCanvas.h:28
virtual PdfObjectStream & ResetContentsStream()=0
Reset the contents object and create a new stream for appending.
virtual bool TryGetRotationRadians(double &teta) const =0
Try getting the current canvas rotation.
virtual Corners GetRectRaw() const =0
Get the current canvas size in PDF Units.
virtual PdfObjectStream & GetOrCreateContentsStream(PdfStreamAppendFlags flags)=0
Get access an object that you can use to ADD drawing to.
virtual PdfResources & GetOrCreateResources()=0
Get or create the resource object of this page.
A PDF stream can be appended to any PdfObject and can contain arbitrary data.
Definition PdfObjectStream.h:87
This class represents a PDF indirect Object in memory.
Definition PdfObject.h:35
A interface that provides a wrapper around /Resources.
Definition PdfResources.h:25
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
@ None
Do not add a default appearrance.