11#include "PdfAnnotation.h"
15#include <podofo/auxiliary/InputDevice.h>
16#include <podofo/auxiliary/OutputDevice.h>
22enum class PdfCertPermission : uint8_t
29struct PdfSignatureBeacons final
31 PdfSignatureBeacons();
32 charbuff ContentsBeacon;
33 charbuff ByteRangeBeacon;
34 std::shared_ptr<size_t> ContentsOffset;
35 std::shared_ptr<size_t> ByteRangeOffset;
38class PODOFO_API PdfSignature final :
public PdfField
40 friend class PdfField;
41 friend class PdfSigningContext;
44 PdfSignature(PdfAcroForm& acroform, std::shared_ptr<PdfField>&& parent);
46 PdfSignature(PdfAnnotationWidget& widget, std::shared_ptr<PdfField>&& parent);
48 PdfSignature(PdfObject& obj, PdfAcroForm* acroform);
54 void SetSignerName(nullable<const PdfString&> text);
59 void SetSignatureReason(nullable<const PdfString&> text);
64 void SetSignatureLocation(nullable<const PdfString&> text);
66 [[deprecated(
"Use the SetCreatingApplication method instead")]]
67 void SetSignatureCreator(nullable<const PdfString&> creator);
72 void SetCreatingApplication(nullable<const PdfName&> application);
75 void SetSignatureDate(nullable<const PdfDate&> sigDate);
80 void AddCertificationReference(PdfCertPermission perm = PdfCertPermission::NoPerms);
85 nullable<const PdfString&> GetSignerName()
const;
90 nullable<const PdfString&> GetSignatureReason()
const;
95 nullable<const PdfString&> GetSignatureLocation()
const;
100 nullable<PdfDate> GetSignatureDate()
const;
106 void EnsureValueObject();
108 PdfSignature* GetParent();
109 const PdfSignature* GetParent()
const;
114 bool TryGetPreviousRevision(InputStreamDevice& input, OutputStreamDevice& output)
const;
117 PdfObject* getValueObject()
const override;
132 void PrepareForSigning(
const std::string_view& filter,
133 const std::string_view& subFilter,
134 const std::string_view& type,
135 const PdfSignatureBeacons& beacons);
138 void SetContentsByteRangeNoDirtySet(
const bufferview& contents, PdfArray&& byteRange);
140 void ensureValueObject();
142 void init(PdfAcroForm& acroForm);
145 PdfObject* m_ValueObj;
This file should be included as the FIRST file in every header of PoDoFo lib.
All classes, functions, types and enums of PoDoFo are members of these namespace.
Definition basetypes.h:13