PdfFileInfo.h
1 #pragma once
2 // Copyright (c) 2001-2024 Aspose Pty Ltd. All Rights Reserved.
3 //using Aspose.Pdf.Exceptions;
4 
5 #include <system/string.h>
6 #include <cstdint>
7 
8 #include "Aspose.PDF.Cpp/Facades/Facade.h"
9 #include "Aspose.PDF.Cpp/aspose_pdf_api_defs.h"
10 
11 namespace Aspose
12 {
13 namespace Pdf
14 {
15 class Document;
16 namespace Facades
17 {
18 class DocumentPrivilege;
19 } // namespace Facades
20 enum class PasswordType;
21 } // namespace Pdf
22 } // namespace Aspose
23 namespace System
24 {
25 namespace Collections
26 {
27 namespace Generic
28 {
29 template <typename, typename> class Dictionary;
30 } // namespace Generic
31 } // namespace Collections
32 class DateTime;
33 namespace IO
34 {
35 class Stream;
36 } // namespace IO
37 } // namespace System
38 
39 namespace Aspose {
40 
41 namespace Pdf {
42 
43 namespace Facades {
44 
48 class ASPOSE_PDF_SHARED_CLASS PdfFileInfo final : public Aspose::Pdf::Facades::SaveableFacade
49 {
50  typedef PdfFileInfo ThisType;
52 
53  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
54  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
55 
56 public:
57 
61  ASPOSE_PDF_SHARED_API System::String get_Author();
65  ASPOSE_PDF_SHARED_API void set_Author(System::String value);
69  ASPOSE_PDF_SHARED_API bool get_IsEncrypted();
73  ASPOSE_PDF_SHARED_API bool get_IsPdfFile();
77  ASPOSE_PDF_SHARED_API bool get_UseStrictValidation() const;
81  ASPOSE_PDF_SHARED_API void set_UseStrictValidation(bool value);
85  ASPOSE_PDF_SHARED_API System::String get_CreationDate();
89  ASPOSE_PDF_SHARED_API void set_CreationDate(System::String value);
93  ASPOSE_PDF_SHARED_API System::String get_Creator();
97  ASPOSE_PDF_SHARED_API void set_Creator(System::String value);
101  ASPOSE_PDF_SHARED_API bool get_HasCollection();
114  ASPOSE_PDF_SHARED_API System::String get_InputFile() const;
119  ASPOSE_PDF_SHARED_API void set_InputFile(System::String value);
124  ASPOSE_PDF_SHARED_API System::SharedPtr<System::IO::Stream> get_InputStream() const;
129  ASPOSE_PDF_SHARED_API void set_InputStream(System::SharedPtr<System::IO::Stream> value);
133  ASPOSE_PDF_SHARED_API System::String get_Keywords();
137  ASPOSE_PDF_SHARED_API void set_Keywords(System::String value);
141  ASPOSE_PDF_SHARED_API System::String get_ModDate();
145  ASPOSE_PDF_SHARED_API void set_ModDate(System::String value);
149  ASPOSE_PDF_SHARED_API int32_t get_NumberOfPages();
153  ASPOSE_PDF_SHARED_API System::String get_Producer();
157  ASPOSE_PDF_SHARED_API System::String get_Subject();
161  ASPOSE_PDF_SHARED_API void set_Subject(System::String value);
165  ASPOSE_PDF_SHARED_API System::String get_Title();
169  ASPOSE_PDF_SHARED_API void set_Title(System::String value);
174  ASPOSE_PDF_SHARED_API Aspose::Pdf::PasswordType get_PasswordType();
178  ASPOSE_PDF_SHARED_API bool get_HasOpenPassword();
184  ASPOSE_PDF_SHARED_API bool get_HasEditPassword();
185 
190  ASPOSE_PDF_SHARED_API void BindPdf(System::SharedPtr<Aspose::Pdf::Document> srcDoc) override;
191 
195  ASPOSE_PDF_SHARED_API PdfFileInfo();
200  ASPOSE_PDF_SHARED_API PdfFileInfo(System::SharedPtr<System::IO::Stream> inputStream);
206  ASPOSE_PDF_SHARED_API PdfFileInfo(System::SharedPtr<System::IO::Stream> inputStream, System::String password);
211  ASPOSE_PDF_SHARED_API PdfFileInfo(System::String inputFile);
217  ASPOSE_PDF_SHARED_API PdfFileInfo(System::String inputFile, System::String password);
218 
224  ASPOSE_PDF_SHARED_API void ClearInfo();
229  ASPOSE_PDF_SHARED_API System::SharedPtr<DocumentPrivilege> GetDocumentPrivilege();
235  ASPOSE_PDF_SHARED_API System::String GetMetaInfo(System::String name);
241  ASPOSE_PDF_SHARED_API float GetPageHeight(int32_t pageNum);
247  ASPOSE_PDF_SHARED_API int32_t GetPageRotation(int32_t pageNum);
253  ASPOSE_PDF_SHARED_API float GetPageWidth(int32_t pageNum);
259  ASPOSE_PDF_SHARED_API float GetPageXOffset(int32_t pageNum);
265  ASPOSE_PDF_SHARED_API float GetPageYOffset(int32_t pageNum);
270  ASPOSE_PDF_SHARED_API System::String GetPdfVersion();
277  ASPOSE_PDF_SHARED_API bool SaveNewInfo(System::SharedPtr<System::IO::Stream> outputStream);
283  ASPOSE_PDF_SHARED_API bool SaveNewInfo(System::String outputFile);
288  ASPOSE_PDF_SHARED_API void Save(System::SharedPtr<System::IO::Stream> destStream) override;
293  ASPOSE_PDF_SHARED_API void Save(System::String destFile) override;
299  ASPOSE_PDF_SHARED_API void SetMetaInfo(System::String name, System::String value);
305  ASPOSE_PDF_SHARED_API bool SaveNewInfoWithXmp(System::String outputFileName);
306 
311  ASPOSE_PDF_SHARED_API PdfFileInfo(System::SharedPtr<Aspose::Pdf::Document> document);
312 
316  ASPOSE_PDF_SHARED_API void Close() override;
317 
318 protected:
319 
325  ASPOSE_PDF_SHARED_API void BindPdf(System::SharedPtr<System::IO::Stream> srcStream, System::String password) override;
331  ASPOSE_PDF_SHARED_API void BindPdf(System::String srcFile, System::String password) override;
335  ASPOSE_PDF_SHARED_API void AssertDocument() const override;
336 
337 private:
338 
339  System::String _inputFile;
341  bool _isPdfFile;
342  System::String _errorReason;
344  bool _isEncrypted;
345  bool _useStrictValidation;
346  static const System::String DefaultXmpNamespacePrefix;
347  static const System::String DefaultXmpNamespaceUri;
348 
349  void Initialize();
350  void RenewInfo();
351  static System::String TranslateDate(System::DateTime date);
357  bool ContainsForbiddenSymbols();
358  bool ContainsHeaderForbiddenSymbols(System::String text);
359  bool ContainsForbiddenSymbols(System::String text, System::String allowedSymbols);
360 
361 };
362 
363 } // namespace Facades
364 } // namespace Pdf
365 } // namespace Aspose
366 
367 
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
PasswordType
This enum represents known password types used for password protected pdf documents.
Definition: PasswordType.h:11
Definition: Artifact.h:67
Base facade class.
Definition: Facade.h:57
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 class for accessing meta information of PDF document.
Definition: PdfFileInfo.h:48
Represents a specific date and time value on the time continuum. This type should be allocated on sta...
Definition: date_time.h:49
Whole PDF file will be submitted.