5#ifndef PDF_XOBJECT_FORM_H
6#define PDF_XOBJECT_FORM_H
10#include "PdfResources.h"
15class PdfObjectRelocationMap;
26class PODOFO_API PdfXObjectForm final :
public PdfXObject,
public PdfCanvas
28 friend class PdfDocument;
29 friend class PdfXObject;
30 friend class PdfAnnotation;
38 PdfXObjectForm(PdfDocument& doc,
const Rect& rect);
41 [[deprecated(
"Use the FillFromPage methods with flags instead")]]
42 void FillFromPage(
const PdfPage& page,
bool useTrimBox);
51 void FillFromPage(
const PdfPage& page, PdfFillFormFlags flags = PdfFillFormFlags::None, PdfObjectRelocationMap* map =
nullptr);
52 void FillFromPage(
const PdfPage& page, PdfObjectRelocationMap* map);
55 PdfResources& GetOrCreateResources()
override;
57 Rect GetRect()
const override;
61 void SetRect(
const Rect& rect);
63 void SetMatrix(
const Matrix& m);
65 const Matrix& GetMatrix()
const override;
68 inline PdfResources* GetResources() {
return m_Resources.get(); }
69 inline const PdfResources* GetResources()
const {
return m_Resources.get(); }
72 PdfXObjectForm* getForm()
const override;
75 PdfXObjectForm(PdfObject& obj);
78 bool TryGetRotationRadians(
double& teta)
const override;
79 Corners GetRectRaw()
const override;
80 PdfObject* getContentsObject()
override;
81 PdfResources* getResources()
override;
82 PdfDictionaryElement& getElement()
override;
83 PdfObjectStream& GetOrCreateContentsStream(PdfStreamAppendFlags flags)
override;
84 PdfObjectStream& ResetContentsStream()
override;
85 void CopyContentsTo(OutputStream& stream)
const override;
86 void initXObject(
const Rect& rect);
90 PdfElement& GetElement() =
delete;
91 const PdfElement& GetElement()
const =
delete;
92 PdfObject* GetContentsObject() =
delete;
93 const PdfObject* GetContentsObject()
const =
delete;
98 std::unique_ptr<PdfResources> m_Resources;
All classes, functions, types and enums of PoDoFo are members of these namespace.
Definition basetypes.h:13
@ None
Do not add a default appearance.
PdfFillFormFlags
Definition PdfXObjectForm.h:18
@ UseTrimBox
Default, intersects with /TrimBox.