PdfFileSignature.h
1 #pragma once
2 // Copyright (c) 2001-2024 Aspose Pty Ltd. All Rights Reserved.
3 
4 #include <system/string.h>
5 #include <cstdint>
6 
7 #include "Aspose.PDF.Cpp/Facades/Facade.h"
8 #include "Aspose.PDF.Cpp/aspose_pdf_api_defs.h"
9 
10 namespace Aspose
11 {
12 namespace Pdf
13 {
14 class Document;
15 namespace Forms
16 {
17 enum class DocMDPAccessPermissions;
18 class DocMDPSignature;
19 class Signature;
20 } // namespace Forms
21 namespace LicenseManagement
22 {
23 class VentureLicense;
24 } // namespace LicenseManagement
25 class Rectangle;
26 } // namespace Pdf
27 } // namespace Aspose
28 namespace System
29 {
30 namespace Collections
31 {
32 namespace Generic
33 {
34 template <typename> class IList;
35 } // namespace Generic
36 } // namespace Collections
37 class DateTime;
38 namespace Drawing
39 {
40 class Rectangle;
41 } // namespace Drawing
42 namespace IO
43 {
44 class Stream;
45 } // namespace IO
46 } // namespace System
47 
48 namespace Aspose {
49 
50 namespace Pdf {
51 
52 namespace Facades {
53 
57 class ASPOSE_PDF_SHARED_CLASS PdfFileSignature final : public Aspose::Pdf::Facades::SaveableFacade
58 {
59  typedef PdfFileSignature ThisType;
61 
62  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
63  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
64 
65 public:
66 
70  ASPOSE_PDF_SHARED_API System::String get_SignatureAppearance() const;
74  ASPOSE_PDF_SHARED_API void set_SignatureAppearance(System::String value);
78  ASPOSE_PDF_SHARED_API bool get_IsLtvEnabled();
82  ASPOSE_PDF_SHARED_API bool get_IsCertified();
86  ASPOSE_PDF_SHARED_API System::SharedPtr<System::IO::Stream> get_SignatureAppearanceStream() const;
90  ASPOSE_PDF_SHARED_API void set_SignatureAppearanceStream(System::SharedPtr<System::IO::Stream> value);
91 
95  ASPOSE_PDF_SHARED_API PdfFileSignature();
101  ASPOSE_PDF_SHARED_API PdfFileSignature(System::String inputFile);
108  ASPOSE_PDF_SHARED_API PdfFileSignature(System::String inputFile, System::String outputFile);
109 
114  ASPOSE_PDF_SHARED_API void BindPdf(System::String inputFile) override;
119  ASPOSE_PDF_SHARED_API void BindPdf(System::SharedPtr<System::IO::Stream> inputStream) override;
124  ASPOSE_PDF_SHARED_API void Save(System::String outputFile) override;
129  ASPOSE_PDF_SHARED_API void Save(System::SharedPtr<System::IO::Stream> outputStream) override;
141  ASPOSE_PDF_SHARED_API void Sign(int32_t page, System::String SigReason, System::String SigContact, System::String SigLocation, bool visible, System::Drawing::Rectangle annotRect);
154  ASPOSE_PDF_SHARED_API void Sign(int32_t page, System::String SigReason, System::String SigContact, System::String SigLocation, bool visible, System::Drawing::Rectangle annotRect, System::SharedPtr<Aspose::Pdf::Forms::Signature> sig);
167  ASPOSE_PDF_SHARED_API void Sign(int32_t page, bool visible, System::Drawing::Rectangle annotRect, System::SharedPtr<Aspose::Pdf::Forms::Signature> sig);
181  ASPOSE_PDF_SHARED_API void Sign(System::String SigName, System::String SigReason, System::String SigContact, System::String SigLocation, System::SharedPtr<Aspose::Pdf::Forms::Signature> sig);
197  ASPOSE_PDF_SHARED_API void Sign(int32_t page, System::String SigName, System::String SigReason, System::String SigContact, System::String SigLocation, bool visible, System::Drawing::Rectangle annotRect, System::SharedPtr<Aspose::Pdf::Forms::Signature> sig);
209  ASPOSE_PDF_SHARED_API void Sign(System::String SigName, System::SharedPtr<Aspose::Pdf::Forms::Signature> sig);
215  ASPOSE_PDF_SHARED_API Aspose::Pdf::Forms::DocMDPAccessPermissions GetAccessPermissions();
227  ASPOSE_PDF_SHARED_API void Certify(int32_t page, System::String SigReason, System::String SigContact, System::String SigLocation, bool visible, System::Drawing::Rectangle annotRect, System::SharedPtr<Aspose::Pdf::Forms::DocMDPSignature> docMdpSignature);
237  ASPOSE_PDF_SHARED_API void Certify(System::String sigName, System::SharedPtr<Aspose::Pdf::Forms::DocMDPSignature> docMdpSignature);
245  ASPOSE_PDF_SHARED_API System::SharedPtr<System::Collections::Generic::IList<System::String>> GetSignNames(bool onlyActive = true);
250  ASPOSE_PDF_SHARED_API System::SharedPtr<System::Collections::Generic::IList<System::String>> GetBlankSignNames();
256  ASPOSE_PDF_SHARED_API bool IsContainSignature();
261  ASPOSE_PDF_SHARED_API bool ContainsSignature();
266  ASPOSE_PDF_SHARED_API bool ContainsUsageRights();
273  ASPOSE_PDF_SHARED_API bool IsCoversWholeDocument(System::String signName);
279  ASPOSE_PDF_SHARED_API bool CoversWholeDocument(System::String signName);
285  ASPOSE_PDF_SHARED_API int32_t GetRevision(System::String signName);
290  ASPOSE_PDF_SHARED_API int32_t GetTotalRevision();
294  ASPOSE_PDF_SHARED_API void RemoveUsageRights();
301  ASPOSE_PDF_SHARED_API void RemoveSignature(System::String signName);
309  ASPOSE_PDF_SHARED_API void RemoveSignature(System::String signName, bool removeField);
315  ASPOSE_PDF_SHARED_API void RemoveSignatures();
321  ASPOSE_PDF_SHARED_API bool VerifySigned(System::String signName);
327  ASPOSE_PDF_SHARED_API System::String GetSignerName(System::String signName);
333  ASPOSE_PDF_SHARED_API System::DateTime GetDateTime(System::String signName);
339  ASPOSE_PDF_SHARED_API System::String GetReason(System::String signName);
345  ASPOSE_PDF_SHARED_API System::String GetLocation(System::String signName);
351  ASPOSE_PDF_SHARED_API System::String GetContactInfo(System::String signName);
357  ASPOSE_PDF_SHARED_API bool VerifySignature(System::String signName);
363  ASPOSE_PDF_SHARED_API System::SharedPtr<System::IO::Stream> ExtractImage(System::String signName);
369  ASPOSE_PDF_SHARED_API System::SharedPtr<System::IO::Stream> ExtractCertificate(System::String signName);
374  ASPOSE_PDF_SHARED_API void Save();
375 
382  ASPOSE_PDF_SHARED_API PdfFileSignature(System::SharedPtr<Aspose::Pdf::Document> document);
393  ASPOSE_PDF_SHARED_API PdfFileSignature(System::SharedPtr<Aspose::Pdf::Document> document, System::String outputFile);
394 
404  ASPOSE_PDF_SHARED_API void SetCertificate(System::String pfx, System::String pass);
408  ASPOSE_PDF_SHARED_API void Close() override;
409 
410 private:
411 
412  System::String _outputFile;
413  System::String _signatureAppearance;
414  System::SharedPtr<System::IO::Stream> _signatureAppearanceStream;
416  int32_t _page;
417  System::String _sigName;
418  bool _visible;
420  System::String _pfx;
421  System::String _pass;
422  int32_t _length;
423 
424  void AssertSignature(System::String sigName);
425  void AssertSignatureObjectIsNull(System::String sigName);
426  void AssertCanSign(System::SharedPtr<Aspose::Pdf::Forms::Signature> sig);
427  System::String GetNextSignatureName();
429  void FlushChanges(System::SharedPtr<System::IO::Stream> inputStream, System::SharedPtr<System::IO::Stream> outputStream, System::String password);
430  void RemoveSignatureInternal(System::String signName);
431 
432 };
433 
434 } // namespace Facades
435 } // namespace Pdf
436 } // namespace Aspose
437 
438 
String class used across the library. Is a substitute for C# System.String when translating code...
Definition: string.h:121
Base class for all saveable facades.
Definition: Facade.h:151
Definition: Artifact.h:67
Base facade class.
Definition: Facade.h:57
Represents a rectangular area of an image defined as integer X and Y coordinates of its upper left co...
Definition: rectangle.h:18
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: fwd.h:22
General facade interface that defines common facades methods.
Definition: IFacade.h:33
Definition: AFRelationship.h:4
Represents a specific date and time value on the time continuum. This type should be allocated on sta...
Definition: date_time.h:49
Represents a class to sign a pdf file with a certificate.
Definition: PdfFileSignature.h:57
DocMDPAccessPermissions
The access permissions granted for this document. Valid values are: 1 - No changes to the document ar...
Definition: DocMDPAccessPermissions.h:17
Whole PDF file will be submitted.