Page.h
1 #pragma once
2 // Copyright (c) 2001-2024 Aspose Pty Ltd. All Rights Reserved.
3 
4 #include <system/multicast_delegate.h>
5 #include <system/idisposable.h>
6 #include <system/event.h>
7 #include <system/array.h>
8 #include <cstdint>
9 
10 #include "Aspose.PDF.Cpp/ISupportsMemoryCleanup.h"
11 #include "Aspose.PDF.Cpp/IOperatorContainer.h"
12 #include "Aspose.PDF.Cpp/aspose_pdf_api_defs.h"
13 
14 namespace Aspose
15 {
16 namespace Pdf
17 {
18 namespace Annotations
19 {
20 class Annotation;
21 class AnnotationCollection;
22 class AnnotationSelector;
23 class ExplicitDestination;
24 class FdfReader;
25 class FileAttachmentAnnotation;
26 class HideAction;
27 class Redaction;
28 class ScreenAnnotation;
29 class TextMarkupAnnotation;
30 class WidgetAnnotation;
31 } // namespace Annotations
32 class ApsFragment;
33 class ApsFragmentCollection;
34 class ApsToPdfConverter;
35 class ApsUsingConverter;
36 class Artifact;
37 class ArtifactCollection;
38 class BackgroundArtifact;
39 class Cell;
40 class Color;
41 enum class ColorType;
42 class CompositingParameters;
43 class ContentsAppender;
44 namespace Devices
45 {
46 class ImageGenerator;
47 class PageDevice;
48 class Resolution;
49 } // namespace Devices
50 class DocOutOfMemoryHandler;
51 class Document;
52 namespace Drawing
53 {
54 class Shape;
55 } // namespace Drawing
56 namespace Engine
57 {
58 namespace CommonData
59 {
60 class IPage;
61 class IPageTreeNode;
62 namespace Text
63 {
64 namespace Fonts
65 {
66 namespace Utilities
67 {
68 class DocumentCIDType2FontContentUpdater;
69 class DocumentFontsSubstitutor;
70 class DocumentFontsUnembedder;
71 template <typename> class FontsRemover;
72 class PageAnnotationProcessor;
73 } // namespace Utilities
74 } // namespace Fonts
75 namespace Segmenting
76 {
77 class TextSegmentBuilder;
78 class TextSegmenter;
79 } // namespace Segmenting
80 } // namespace Text
81 } // namespace CommonData
82 namespace Data
83 {
84 class IPdfArray;
85 class IPdfDictionary;
86 class IPdfObject;
87 class IPdfPrimitive;
88 } // namespace Data
89 namespace IO
90 {
91 namespace ConvertStrategies
92 {
93 namespace ConvertHelpers
94 {
95 class LowLevelFontSubstitutor;
96 } // namespace ConvertHelpers
97 class PdfAConvertStrategy;
98 class PdfConvertStrategy;
99 class PdfUaConvertStrategy;
100 class PdfXConvertStrategy;
101 class SearchablePdfConvertStrategy;
102 class TransparentContentRemoval;
103 } // namespace ConvertStrategies
104 } // namespace IO
105 } // namespace Engine
106 namespace Facades
107 {
108 class LogicalStructureConcatenation;
109 class LogicalStructureCopier;
110 class PdfContentEditor;
111 class PdfFileEditor;
112 class PdfFileMend;
113 class PdfPageEditor;
114 } // namespace Facades
115 class FloatingBox;
116 class FlowConverter;
117 class FormattedFragment;
118 namespace Forms
119 {
120 class ButtonField;
121 class CheckboxField;
122 class ComboBoxField;
123 class DateField;
124 class Field;
125 class Form;
126 class ListBoxField;
127 class RadioButtonField;
128 class RadioButtonOptionField;
129 class RichTextBoxField;
130 class SignatureField;
131 class TextBoxField;
132 class XFA;
133 } // namespace Forms
134 class GraphInfo;
135 class Group;
136 namespace GroupProcessor
137 {
138 class TextExtractor;
139 } // namespace GroupProcessor
140 class HeaderFooter;
141 class Heading;
142 class HtmlFragment;
143 class Image;
145 namespace Interchange
146 {
147 class ContentSequencePage;
148 class DocumentInterchange;
149 } // namespace Interchange
150 class Layer;
151 namespace LogicalStructure
152 {
153 class MCRElement;
154 } // namespace LogicalStructure
155 class Matrix;
156 namespace OFD
157 {
158 namespace Converters
159 {
160 class AnnotationsConverter;
161 class PageBlockConverter;
162 } // namespace Converters
163 } // namespace OFD
164 class Operator;
165 class OperatorCollection;
166 namespace Operators
167 {
168 class BDC;
169 } // namespace Operators
170 namespace Optimization
171 {
172 class ImageCompressor;
173 class ResourceOptimizer;
174 } // namespace Optimization
175 class OutlineCollection;
177 class PageCollection;
178 class PageGenerator;
179 class PageInfo;
180 namespace PageModel
181 {
182 class AnnotationElement;
183 class GraphicElement;
184 class ImageElement;
185 class TextElement;
186 } // namespace PageModel
187 class Paragraphs;
188 class PdfPageStamp;
189 class PdfToApsConverter;
190 namespace PdfToMarkdown
191 {
192 class OutlinesHeaderDetector;
193 class PageContentModel;
194 class PageLayoutViewer;
195 } // namespace PdfToMarkdown
196 namespace Plugins
197 {
198 class Optimizer;
199 } // namespace Plugins
200 class Rectangle;
201 class Resources;
203 enum class Rotation;
204 class Row;
205 class Stamp;
206 class Table;
207 enum class TabOrder;
208 namespace Tagged
209 {
210 class TaggedContent;
211 class TaggedContext;
212 } // namespace Tagged
213 namespace Tests
214 {
215 namespace Engine
216 {
217 namespace Commands
218 {
219 class PageContentCommandProcessorTests;
220 } // namespace Commands
221 namespace IO
222 {
223 class PdfAConvertTests;
224 class PdfUaConvertTests;
225 class PdfUaGenerateTests;
226 class PdfXConvertTests;
227 } // namespace IO
228 } // namespace Engine
229 namespace Facades
230 {
231 class PdfFileStampTests;
232 } // namespace Facades
233 class PageTreeBalancerTests;
234 namespace PDFUA
235 {
236 class PDFUA_CreatingTests;
237 } // namespace PDFUA
238 class RegressionTests_v10_4;
239 class RegressionTests_v10_8;
240 class RegressionTests_v11_2;
241 class RegressionTests_v11_4;
242 class RegressionTests_v11_8;
243 class RegressionTests_v17_11;
244 class RegressionTests_v18_2;
245 class RegressionTests_v19_11;
246 class RegressionTests_v20_06;
247 class RegressionTests_v20_08;
248 class RegressionTests_v21_11;
249 class RegressionTests_v21_3;
250 class RegressionTests_v22_05;
251 class RegressionTests_v22_11;
252 class RegressionTests_v23_07;
253 class RegressionTests_v23_09;
254 class RegressionTests_v23_10;
255 class RegressionTests_v23_11;
256 class RegressionTests_v24_02;
257 class RegressionTests_v6_3;
258 class RegressionTests_v6_7;
259 class RegressionTests_v6_9;
260 class RegressionTests_v7_0;
261 class RegressionTests_v7_1;
262 class RegressionTests_v7_2;
263 class RegressionTests_v7_4;
264 class RegressionTests_v7_5;
265 class RegressionTests_v7_7;
266 class RegressionTests_v7_8;
267 class RegressionTests_v7_9;
268 class RegressionTests_v8_0;
269 class RegressionTests_v8_1;
270 class RegressionTests_v8_3;
271 class RegressionTests_v8_4;
272 class RegressionTests_v8_6;
273 class RegressionTests_v8_7;
274 class RegressionTests_v9_0;
275 class RegressionTests_v9_4;
276 class RegressionTests_v9_8;
277 class RegressionTests_v9_9;
278 namespace Text
279 {
280 class TextParagraphAbsorberTests;
281 } // namespace Text
282 } // namespace Tests
283 class TeXFragment;
284 namespace Text
285 {
286 class FontAbsorber;
287 class FontCleanup;
288 class TableAbsorber;
289 class TextAbsorber;
290 class TextBuilder;
291 class TextFragment;
292 class TextFragmentAbsorber;
293 class TextFragmentState;
294 class TextPostReplaceFixer;
295 class TextState;
296 } // namespace Text
297 class TextStamp;
298 class TocInfo;
299 namespace Utils
300 {
301 class DictionaryEditor;
302 } // namespace Utils
303 namespace Vector
304 {
305 class GraphicElementCollection;
306 class GraphicsAbsorber;
307 } // namespace Vector
308 class Watermark;
309 class XfaToPdfConverter;
310 class XForm;
311 } // namespace Pdf
312 namespace Pub
313 {
314 class PdfConverter;
315 class PdfDocumentBuilder;
316 namespace Utils
317 {
318 class PdfUtilities;
319 } // namespace Utils
320 } // namespace Pub
321 namespace Rendering
322 {
323 class ApsNode;
324 } // namespace Rendering
325 } // namespace Aspose
326 namespace System
327 {
328 namespace Collections
329 {
330 namespace Generic
331 {
332 template <typename, typename> class Dictionary;
333 template <typename> class IList;
334 template <typename> class List;
335 } // namespace Generic
336 } // namespace Collections
337 namespace Drawing
338 {
339 class RectangleF;
340 } // namespace Drawing
341 namespace IO
342 {
343 class MemoryStream;
344 class Stream;
345 } // namespace IO
346 namespace Text
347 {
348 class StringBuilder;
349 } // namespace Text
350 namespace Xml
351 {
352 class XmlReader;
353 class XmlTextWriter;
354 } // namespace Xml
355 } // namespace System
356 
357 namespace Aspose {
358 
359 namespace Pdf {
360 
364 class ASPOSE_PDF_SHARED_CLASS Page final : public System::IDisposable, public Aspose::Pdf::ISupportsMemoryCleanup, public Aspose::Pdf::IOperatorContainer
365 {
366  typedef Page ThisType;
370 
371  typedef ::System::BaseTypesInfo<BaseType, BaseType1, BaseType2> ThisTypeBaseTypesInfo;
372  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
373 
374  friend class Aspose::Pdf::ApsFragment;
375  friend class Aspose::Pdf::ApsFragmentCollection;
376  friend class Aspose::Pdf::ApsToPdfConverter;
377  friend class Aspose::Pdf::Engine::CommonData::Text::Fonts::Utilities::DocumentFontsSubstitutor;
378  friend class Aspose::Pdf::Engine::CommonData::Text::Fonts::Utilities::DocumentFontsUnembedder;
380  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::ConvertHelpers::LowLevelFontSubstitutor;
381  friend class Aspose::Pdf::Engine::CommonData::Text::Fonts::Utilities::PageAnnotationProcessor;
382  friend class Aspose::Pdf::Engine::CommonData::Text::Fonts::Utilities::DocumentCIDType2FontContentUpdater;
386  friend class Aspose::Pdf::Interchange::ContentSequencePage;
387  friend class Aspose::Pdf::Interchange::DocumentInterchange;
388  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfUaConvertStrategy;
389  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfConvertStrategy;
390  friend class Aspose::Pdf::Optimization::ImageCompressor;
391  friend class Aspose::Pdf::Optimization::ResourceOptimizer;
392  friend class Aspose::Pdf::PdfToApsConverter;
396  friend class Aspose::Pdf::Annotations::Redaction;
397  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfConvertStrategy;
398  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfXConvertStrategy;
399  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::TransparentContentRemoval;
400  friend class Aspose::Pdf::PageModel::AnnotationElement;
401  friend class Aspose::Pdf::PageModel::GraphicElement;
402  friend class Aspose::Pdf::PageModel::ImageElement;
403  friend class Aspose::Pdf::PageModel::TextElement;
405  friend class Aspose::Pdf::Facades::LogicalStructureConcatenation;
407  friend class Aspose::Pdf::Engine::CommonData::Text::Segmenting::TextSegmentBuilder;
408  friend class Aspose::Pdf::Engine::CommonData::Text::Segmenting::TextSegmenter;
409  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfAConvertStrategy;
410  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::SearchablePdfConvertStrategy;
412  friend class Aspose::Pdf::Tagged::TaggedContent;
413  friend class Aspose::Pdf::Tagged::TaggedContext;
414  friend class Aspose::Pdf::Text::FontCleanup;
415  friend class Aspose::Pdf::GroupProcessor::TextExtractor;
417  friend class Aspose::Pdf::Text::TextPostReplaceFixer;
419  friend class Aspose::Pdf::Heading;
421  friend class Aspose::Pdf::Image;
422  friend class Aspose::Pdf::PageGenerator;
423  friend class Aspose::Pdf::ApsUsingConverter;
425  friend class Aspose::Pdf::Devices::ImageGenerator;
426  friend class Aspose::Pdf::Document;
432  friend class Aspose::Pdf::Stamp;
439  friend class Aspose::Pdf::Forms::XFA;
457  friend class Aspose::Pdf::Cell;
458  friend class Aspose::Pdf::Row;
464  friend class Aspose::Pdf::XfaToPdfConverter;
465  friend class Aspose::Pdf::XForm;
466  friend class Aspose::Pdf::DocOutOfMemoryHandler;
467  friend class Aspose::Pdf::ContentsAppender;
468  friend class Aspose::Pdf::ApsToPdfConverter;
469  friend class Aspose::Pdf::Group;
471  friend class Aspose::Pdf::Table;
472  friend class Aspose::Pdf::Artifact;
478  friend class Aspose::Pdf::Facades::LogicalStructureCopier;
480  friend class Aspose::Pdf::PdfToMarkdown::OutlinesHeaderDetector;
481  friend class Aspose::Pdf::OFD::Converters::AnnotationsConverter;
482  friend class Aspose::Pdf::OFD::Converters::PageBlockConverter;
483  friend class Aspose::Pdf::PdfToMarkdown::PageContentModel;
484  friend class Aspose::Pdf::PdfToMarkdown::PageLayoutViewer;
487  friend class Aspose::Pdf::FlowConverter;
488  friend class Aspose::Pdf::Tests::Engine::Commands::PageContentCommandProcessorTests;
489  friend class Aspose::Pdf::Tests::Text::TextParagraphAbsorberTests;
490  friend class Aspose::Pdf::Tests::Engine::IO::PdfAConvertTests;
491  friend class Aspose::Pdf::Tests::Engine::IO::PdfXConvertTests;
492  friend class Aspose::Pdf::Tests::Engine::IO::PdfUaConvertTests;
493  friend class Aspose::Pdf::Tests::RegressionTests_v7_0;
494  friend class Aspose::Pdf::Tests::RegressionTests_v8_3;
495  friend class Aspose::Pdf::Tests::RegressionTests_v8_4;
496  friend class Aspose::Pdf::Tests::RegressionTests_v8_6;
497  friend class Aspose::Pdf::Tests::RegressionTests_v9_0;
498  friend class Aspose::Pdf::Tests::RegressionTests_v9_4;
499  friend class Aspose::Pdf::Tests::RegressionTests_v9_9;
500  friend class Aspose::Pdf::Tests::RegressionTests_v11_2;
501  friend class Aspose::Pdf::Tests::RegressionTests_v11_4;
502  friend class Aspose::Pdf::Tests::RegressionTests_v18_2;
503  friend class Aspose::Pdf::Tests::RegressionTests_v19_11;
504  friend class Aspose::Pdf::Tests::RegressionTests_v21_3;
505  friend class Aspose::Pdf::Tests::RegressionTests_v21_11;
506  friend class Aspose::Pdf::Tests::Engine::IO::PdfUaGenerateTests;
507  friend class Aspose::Pdf::Tests::RegressionTests_v6_3;
508  friend class Aspose::Pdf::Tests::RegressionTests_v6_7;
509  friend class Aspose::Pdf::Tests::RegressionTests_v6_9;
510  friend class Aspose::Pdf::Tests::RegressionTests_v7_1;
511  friend class Aspose::Pdf::Tests::RegressionTests_v7_2;
512  friend class Aspose::Pdf::Tests::RegressionTests_v7_4;
513  friend class Aspose::Pdf::Tests::RegressionTests_v7_5;
514  friend class Aspose::Pdf::Tests::RegressionTests_v7_7;
515  friend class Aspose::Pdf::Tests::RegressionTests_v7_8;
516  friend class Aspose::Pdf::Tests::RegressionTests_v7_9;
517  friend class Aspose::Pdf::Tests::RegressionTests_v8_0;
518  friend class Aspose::Pdf::Tests::RegressionTests_v8_1;
519  friend class Aspose::Pdf::Tests::RegressionTests_v8_7;
520  friend class Aspose::Pdf::Tests::RegressionTests_v9_8;
521  friend class Aspose::Pdf::Tests::RegressionTests_v10_4;
522  friend class Aspose::Pdf::Tests::RegressionTests_v10_8;
523  friend class Aspose::Pdf::Tests::RegressionTests_v11_8;
524  friend class Aspose::Pdf::Tests::RegressionTests_v17_11;
525  friend class Aspose::Pdf::Tests::RegressionTests_v20_06;
526  friend class Aspose::Pdf::Tests::RegressionTests_v20_08;
527  friend class Aspose::Pdf::Tests::RegressionTests_v22_05;
528  friend class Aspose::Pdf::Tests::RegressionTests_v22_11;
529  friend class Aspose::Pdf::Tests::RegressionTests_v23_07;
530  friend class Aspose::Pdf::Tests::RegressionTests_v23_09;
531  friend class Aspose::Pdf::Tests::RegressionTests_v23_10;
532  friend class Aspose::Pdf::Tests::RegressionTests_v23_11;
533  friend class Aspose::Pdf::Tests::RegressionTests_v24_02;
534  friend class Aspose::Pdf::Tests::Facades::PdfFileStampTests;
535  friend class Aspose::Pdf::Tests::PDFUA::PDFUA_CreatingTests;
536  friend class Aspose::Pdf::Tests::PageTreeBalancerTests;
537  friend class Aspose::Pub::Utils::PdfUtilities;
538  friend class Aspose::Pub::PdfConverter;
539  friend class Aspose::Pub::PdfDocumentBuilder;
540 
541 public:
542 
547  using BeforePageGenerate = System::MulticastDelegate<void(System::SharedPtr<Page>)>;
548 
549 
550 public:
551 
559  ASPOSE_PDF_SHARED_API bool get_IsAddParagraphsAfterLast() const;
567  ASPOSE_PDF_SHARED_API void set_IsAddParagraphsAfterLast(bool value);
571  ASPOSE_PDF_SHARED_API System::SharedPtr<Image> get_BackgroundImage() const;
575  ASPOSE_PDF_SHARED_API void set_BackgroundImage(System::SharedPtr<Image> value);
580  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::TocInfo> get_TocInfo() const;
585  ASPOSE_PDF_SHARED_API void set_TocInfo(System::SharedPtr<Aspose::Pdf::TocInfo> value);
590  ASPOSE_PDF_SHARED_API System::SharedPtr<HeaderFooter> get_Header() const;
595  ASPOSE_PDF_SHARED_API void set_Header(System::SharedPtr<HeaderFooter> value);
605  ASPOSE_PDF_SHARED_API void set_Layers(System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Layer>>> value);
610  ASPOSE_PDF_SHARED_API System::SharedPtr<HeaderFooter> get_Footer() const;
615  ASPOSE_PDF_SHARED_API void set_Footer(System::SharedPtr<HeaderFooter> value);
620  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Paragraphs> get_Paragraphs();
625  ASPOSE_PDF_SHARED_API void set_Paragraphs(System::SharedPtr<Aspose::Pdf::Paragraphs> value);
630  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::PageInfo> get_PageInfo();
635  ASPOSE_PDF_SHARED_API void set_PageInfo(System::SharedPtr<Aspose::Pdf::PageInfo> value);
644  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Rectangle> get_Rect();
653  ASPOSE_PDF_SHARED_API void set_Rect(System::SharedPtr<Aspose::Pdf::Rectangle> value);
658  ASPOSE_PDF_SHARED_API Aspose::Pdf::ColorType get_ColorType();
663  ASPOSE_PDF_SHARED_API System::SharedPtr<GraphInfo> get_NoteLineStyle();
668  ASPOSE_PDF_SHARED_API void set_NoteLineStyle(System::SharedPtr<GraphInfo> value);
673  ASPOSE_PDF_SHARED_API Aspose::Pdf::TabOrder get_TabOrder();
678  ASPOSE_PDF_SHARED_API void set_TabOrder(Aspose::Pdf::TabOrder value);
685  ASPOSE_PDF_SHARED_API double get_Duration();
692  ASPOSE_PDF_SHARED_API void set_Duration(double value);
699  ASPOSE_PDF_SHARED_API System::SharedPtr<OperatorCollection> get_Contents() override;
703  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Group> get_Group();
707  ASPOSE_PDF_SHARED_API void set_Group(System::SharedPtr<Aspose::Pdf::Group> value);
712  ASPOSE_PDF_SHARED_API System::SharedPtr<Annotations::AnnotationCollection> get_Annotations();
719  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Resources> get_Resources() override;
725  ASPOSE_PDF_SHARED_API Rotation get_Rotate();
731  ASPOSE_PDF_SHARED_API void set_Rotate(Rotation value);
737  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Rectangle> get_TrimBox();
743  ASPOSE_PDF_SHARED_API void set_TrimBox(System::SharedPtr<Aspose::Pdf::Rectangle> value);
749  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Rectangle> get_ArtBox();
755  ASPOSE_PDF_SHARED_API void set_ArtBox(System::SharedPtr<Aspose::Pdf::Rectangle> value);
761  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Rectangle> get_BleedBox();
767  ASPOSE_PDF_SHARED_API void set_BleedBox(System::SharedPtr<Aspose::Pdf::Rectangle> value);
773  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Rectangle> get_CropBox();
779  ASPOSE_PDF_SHARED_API void set_CropBox(System::SharedPtr<Aspose::Pdf::Rectangle> value);
785  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Rectangle> get_MediaBox();
791  ASPOSE_PDF_SHARED_API void set_MediaBox(System::SharedPtr<Aspose::Pdf::Rectangle> value);
795  ASPOSE_PDF_SHARED_API int32_t get_Number();
799  ASPOSE_PDF_SHARED_API System::SharedPtr<Matrix> get_RotationMatrix();
803  ASPOSE_PDF_SHARED_API System::SharedPtr<Color> get_Background();
807  ASPOSE_PDF_SHARED_API void set_Background(System::SharedPtr<Color> value);
811  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Watermark> get_Watermark();
815  ASPOSE_PDF_SHARED_API void set_Watermark(System::SharedPtr<Aspose::Pdf::Watermark> value);
819  ASPOSE_PDF_SHARED_API System::SharedPtr<ArtifactCollection> get_Artifacts();
823  ASPOSE_PDF_SHARED_API System::SharedPtr<PageActionCollection> get_Actions();
832  ASPOSE_PDF_SHARED_API double get_UserUnit();
837  ASPOSE_PDF_SHARED_API void set_UserUnit(double value);
838 
843  ASPOSE_PDF_SHARED_API System::SharedPtr<System::IO::MemoryStream> ConvertToPNGMemoryStream();
851  ASPOSE_PDF_SHARED_API void AddGraphics(System::SharedPtr<Vector::GraphicElementCollection> elements, System::SharedPtr<Aspose::Pdf::Rectangle> rectangle = nullptr);
857  ASPOSE_PDF_SHARED_API void DeleteGraphics(System::SharedPtr<Vector::GraphicElementCollection> elementsToDelete);
863  ASPOSE_PDF_SHARED_API bool TrySaveVectorGraphics(System::String pathToSave);
868  ASPOSE_PDF_SHARED_API bool HasVectorGraphics();
869 
874 
880  ASPOSE_PDF_SHARED_API bool IsBlank(double fillThresholdFactor);
886  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Rectangle> GetPageRect(bool considerRotation);
891  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Rectangle> CalculateContentBBox();
901  ASPOSE_PDF_SHARED_API void SendTo(System::SharedPtr<Devices::PageDevice> device, System::SharedPtr<System::IO::Stream> output);
906  ASPOSE_PDF_SHARED_API void Accept(System::SharedPtr<Annotations::AnnotationSelector> visitor);
912  static ASPOSE_PDF_SHARED_API int32_t RotationToInt(Rotation rotation);
918  static ASPOSE_PDF_SHARED_API Rotation IntToRotation(int32_t rotation);
927  ASPOSE_PDF_SHARED_API void AddStamp(System::SharedPtr<Stamp> stamp);
933  ASPOSE_PDF_SHARED_API void AddImage(System::SharedPtr<System::IO::Stream> imageStream, System::SharedPtr<Aspose::Pdf::Rectangle> imageRect);
940  ASPOSE_PDF_SHARED_API void AddImage(System::String hocr, System::SharedPtr<System::IO::Stream> imageStream, System::SharedPtr<Aspose::Pdf::Rectangle> imageRect);
949  ASPOSE_PDF_SHARED_API void AddImage(System::SharedPtr<System::IO::Stream> imageStream, System::SharedPtr<Aspose::Pdf::Rectangle> imageRect, int32_t imageWidth, int32_t imageHeight, bool saveImageProportions);
955  ASPOSE_PDF_SHARED_API void AddImage(System::String imagePath, System::SharedPtr<Aspose::Pdf::Rectangle> rectangle);
965  ASPOSE_PDF_SHARED_API void SendTo(System::SharedPtr<Devices::PageDevice> device, System::String outputFileName);
969  ASPOSE_PDF_SHARED_API void Flatten();
974  ASPOSE_PDF_SHARED_API void Accept(System::SharedPtr<Text::TextFragmentAbsorber> visitor);
979  ASPOSE_PDF_SHARED_API void Accept(System::SharedPtr<ImagePlacementAbsorber> visitor);
984  ASPOSE_PDF_SHARED_API void Accept(System::SharedPtr<Text::TextAbsorber> visitor);
990  ASPOSE_PDF_SHARED_API void SetPageSize(double width, double height);
994  ASPOSE_PDF_SHARED_API void Dispose() override;
998  ASPOSE_PDF_SHARED_API void MakeGrayscale();
1002  ASPOSE_PDF_SHARED_API void FreeMemory() override;
1007  ASPOSE_PDF_SHARED_API System::String GetNotifications();
1013  ASPOSE_PDF_SHARED_API System::ArrayPtr<uint8_t> AsByteArray(System::SharedPtr<Devices::Resolution> resolution);
1018  ASPOSE_PDF_SHARED_API System::String AsXml();
1019 
1020 protected:
1021 
1022  bool detached;
1023 
1024  bool get_IsDisposed() const;
1025  bool get_IsRowExceedPageMode() const;
1026  void set_IsRowExceedPageMode(bool value);
1027  double get_IsRowExceedPageHeigth() const;
1028  void set_IsRowExceedPageHeigth(double value);
1034  bool get_IsTextAddedOnPage() const;
1040  void set_IsTextAddedOnPage(bool value);
1044  double get_CurY() const;
1048  void set_CurY(double value);
1052  bool get_IgnoreAnnotationExceptions() const;
1056  void set_IgnoreAnnotationExceptions(bool value);
1060  bool get_HasLayers();
1065  System::SharedPtr<PageCollection> get_Pages() const;
1070  void set_Pages(System::SharedPtr<PageCollection> value);
1075  System::String get_Id() const;
1080  void set_Id(System::String value);
1084  bool get_HasAnnotations();
1085 
1088 
1090  bool get_IsNoteMoreThanPage() const;
1091  void set_IsNoteMoreThanPage(bool value);
1092  int32_t get___BadNumber();
1097  System::SharedPtr<Aspose::Pdf::ContentsAppender> get_ContentsAppender();
1098 
1099  void _SetPageNumber(int32_t number);
1103  static System::SharedPtr<Page> GetNextPage(System::SharedPtr<Page> page);
1107  void ProcessHeaderFooters();
1108  void SetPageInfo();
1109  static void PrintBackgroundImage(System::SharedPtr<Image> image, double width, double height, double curX, double curY, System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Operator>>> operators, System::SharedPtr<Page> page);
1110  static System::SharedPtr<Page> ProcessPage(System::SharedPtr<Page> page);
1114  void ProcessParagraphs();
1143  void InvalidateAnnotations();
1144 
1146 
1147  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Page, CODEPORTING_ARGS(System::SharedPtr<Engine::CommonData::IPage> page));
1153  void UpdateContents();
1157  void UpdateResources();
1185  System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Operator>>> AddImage(System::SharedPtr<System::IO::Stream> stream, System::SharedPtr<Aspose::Pdf::Rectangle> rectangle, System::SharedPtr<CompositingParameters> compositingParameters, bool addImage, bool isBlackWhite, System::SharedPtr<System::IO::Stream> predefinedStream = nullptr, bool isTagged = false, int32_t MCID = 0);
1198  void Flatten4(bool doRemoveFiedls);
1203  void SetTransition(System::SharedPtr<Engine::Data::IPdfDictionary> transition);
1208  void RemoveObjectReferences(System::String name);
1209  static void RemoveObjectReferences(System::SharedPtr<OperatorCollection> contents, System::String name);
1210  bool IsUsedOnPage(System::String name);
1220  void DeleteUnusedResources(System::SharedPtr<System::Collections::Generic::Dictionary<int32_t, int32_t>> usageTable);
1221  void ClearContents();
1222  void RegisterObservation(System::String message);
1223  void Serialize(System::SharedPtr<System::Xml::XmlTextWriter> writer);
1224  void Deserialize(System::SharedPtr<System::Xml::XmlReader> reader);
1225  void ReleaseResources();
1226  void PreSave();
1227  void RemoveTransparencyGroup();
1228 
1229  virtual ASPOSE_PDF_SHARED_API ~Page();
1230 
1231 private:
1232 
1233  System::SharedPtr<Image> _backgroundImage;
1237  System::SharedPtr<Matrix> _rotationMatrix;
1240  System::SharedPtr<GraphInfo> noteLineStyle;
1241  System::String id;
1242  bool _isDisposed;
1253  bool _isPageInfoSet;
1254  Aspose::Pdf::ColorType _colorType;
1255  double _curY;
1257  int32_t _number;
1258  bool pr_IsRowExceedPageMode;
1259  bool pr_IsAddParagraphsAfterLast;
1260  double pr_IsRowExceedPageHeigth;
1261  bool pr_IsTextAddedOnPage;
1262  bool pr_IgnoreAnnotationExceptions;
1264  bool pr_IsNoteMoreThanPage;
1265 
1266  System::SharedPtr<Layer> GetLayerById(System::String id);
1271  void AssignData(System::SharedPtr<Page> page);
1275  static void ProcessNoteMoreThanPage(System::SharedPtr<Page> page, System::SharedPtr<Page>& newPage, System::SharedPtr<PageGenerator> generator, System::SharedPtr<HeaderFooter> footer, double width, double height, System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Operator>>> operators);
1276  static System::SharedPtr<PageGenerator> PrepareFooterGenerator(System::SharedPtr<Page> page, System::SharedPtr<HeaderFooter> footer, double width, double height);
1277  static void PrepareHeaderGenerator(System::SharedPtr<Page> page, System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Operator>>> operators, double width, double height);
1278  static System::SharedPtr<Page> GeneratePageContent(System::SharedPtr<Page> page, System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<Operator>>> operators, double width, double height);
1280  static void InvokeBeforePageGenerate(System::SharedPtr<Page> page);
1281  void UpdateBox(System::String name, System::SharedPtr<Aspose::Pdf::Rectangle> rect);
1282  int32_t getNodePosition(System::SharedPtr<Engine::CommonData::IPageTreeNode> node);
1283  int32_t getPagesCount(System::SharedPtr<Engine::CommonData::IPageTreeNode> node);
1284  Aspose::Pdf::TabOrder TranslateTabOrder(System::String value);
1289  void createAppearance(System::SharedPtr<Engine::Data::IPdfObject> annotation);
1290  void FixAnnotations();
1292  int32_t GetNumber_New();
1296  int32_t GetNumber_Old();
1298  static bool IsArtifact(System::SharedPtr<Operators::BDC> op, System::String subtype);
1299  void assertObject();
1310 
1311 };
1312 
1313 } // namespace Pdf
1314 } // namespace Aspose
1315 
1316 
MulticastDelegate< Args... > Event
Represents an event - a mechanism through which subscribers are notified about an occurence of intere...
Definition: event.h:14
Date field with calendar view.
Definition: DateField.h:34
A class for accessing an object&#39;s dictionary.
Definition: DictionaryEditor.h:55
String class used across the library. Is a substitute for C# System.String when translating code...
Definition: string.h:121
bool detached
Definition: Page.h:1022
Rotation
Enumeration of possible rotation values.
Definition: Rotation.h:16
Class representing Combobox field of the form.
Definition: ComboBoxField.h:63
Represents a FloatingBox in a Pdf document. FloatingBox is custom positioned.
Definition: FloatingBox.h:45
An abstract class for various kinds of stamps which come as descendants.
Definition: Stamp.h:47
Represents an absorber object of a text. Performs text extraction and provides access to the result v...
Definition: TextAbsorber.h:72
Represents a rectangular area of an image defined as single-precision floating point X and Y coordina...
Definition: rectangle_f.h:14
Represents table of contents info.
Definition: TOCInfo.h:44
Class descibes background artifact. This artifact allows to set background of the page...
Definition: BackgroundArtifact.h:48
Represents document outline hierarchy.
Definition: OutlineCollection.h:50
Represents a class for adding texts and images on the pages of existing PDF document.
Definition: PdfFileMend.h:49
Represents fragment of Pdf text.
Definition: TextFragment.h:173
Represents page layer.
Definition: Layer.h:35
Class representing form object.
Definition: Form.h:172
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:64
Class representing PDF document
Definition: Document.h:616
Definition: Artifact.h:67
Represents abstract formatted fragment.
Definition: FormattedFragment.h:60
Represents signature form field.
Definition: SignatureField.h:83
Represents the base class for explicit destinations in PDF document.
Definition: ExplicitDestination.h:64
Represents an absorber object of fonts. Performs search for fonts and provides access to search resul...
Definition: FontAbsorber.h:31
Represents the page information.
Definition: PageInfo.h:40
Class represnets push button field.
Definition: ButtonField.h:73
Class describes rich text editor component.
Definition: RichTextBoxField.h:64
Represents html fragment.
Definition: HtmlFragment.h:48
A group attributes class specifying the attributes of the page’s page group for use in the transpare...
Definition: Group.h:43
Represents XML form regarding XML Forms Architecture (XFA).
Definition: XFA.h:93
Represents shape - the base graphics object.
Definition: Shape.h:60
System::SharedPtr< Engine::CommonData::IPage > EnginePage
Definition: Page.h:1087
Represents an absorber object of text fragments. Performs text search and provides access to search r...
Definition: TextFragmentAbsorber.h:81
Class representing widget annotation.
Definition: WidgetAnnotation.h:93
Definition: signed_info.h:13
Represents rgb to device gray color spaces conversion strategy.
Definition: RgbToDeviceGrayConversionStrategy.h:46
Represents heading.
Definition: Heading.h:58
Base class for acro form fields.
Definition: Field.h:130
The annotation is grouped with the annotation specified by InReplyTo.
Represents a class to edit the PDF file&#39;s page, including rotating page, zooming page, moving position and changing page size.
Definition: PdfPageEditor.h:66
This class describes page actions
Definition: PageActionCollection.h:33
Class represents collection of operators
Definition: OperatorCollection.h:170
Class represents artifact collection.
Definition: ArtifactCollection.h:48
Specifies that the member is a field.
Class representing page resources.
Definition: Resources.h:248
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: fwd.h:22
means saving in XML format
Appends text object to Pdf page.
Definition: TextBuilder.h:77
Defines method that releases resources owned by the current object. Objects of this class should only...
Definition: idisposable.h:29
Represents an absorber object of image placement objects. Performs search of image usages and provide...
Definition: ImagePlacementAbsorber.h:77
Class represents item of RadioButton field.
Definition: RadioButtonOptionField.h:62
Represents marked-content reference object in logical structure.
Definition: MCRElement.h:63
Class representing text box field.
Definition: TextBoxField.h:88
Represents Optimizer plugin.
Definition: Optimizer.h:35
Class representing page of PDF document.
Definition: Page.h:364
Definition: AFRelationship.h:4
System::MulticastDelegate< void(System::SharedPtr< Page >)> BeforePageGenerate
Procedure for customize header and footer.
Definition: Page.h:547
Class describes file attachment annotation.
Definition: FileAttachmentAnnotation.h:58
A screen annotation that specifies a region of a page upon which media clips may be played...
Definition: ScreenAnnotation.h:43
Subclass of System::SmartPtr which sets itself to weak mode at construction. Please note that this cl...
Definition: TextFragmentState.h:69
Class represents ListBox field.
Definition: ListBoxField.h:54
Represents textual stamp.
Definition: TextStamp.h:69
Class representing radio button field.
Definition: RadioButtonField.h:75
Forward declaration of Dictionary class.
Definition: Artifact.h:73
Represents a row of the table.
Definition: Row.h:53
The interface defines ways to cleanup memory in case mass operations.
Definition: ISupportsMemoryCleanup.h:13
Represents a cell of the table&#39;s row.
Definition: Cell.h:65
Class representing annotation collection.
Definition: AnnotationCollection.h:56
means loading document in OFD format.
Represents a watermark of the page.
Definition: Watermark.h:31
Class represents stamp which uses PDF page as stamp.
Definition: PdfPageStamp.h:47
List forward declaration.
Definition: Artifact.h:74
Implements operations with PDF file: concatenation, splitting, extracting pages, making booklet...
Definition: PdfFileEditor.h:105
System::WeakPtr< Document > _document
Definition: Page.h:1086
Represents a hide action that hides or shows one or more annotations on the screen by setting or clea...
Definition: HideAction.h:36
Represents a text state of a text fragment.
Definition: TextFragmentState.h:97
Collection of PDF document pages.
Definition: PageCollection.h:134
Represents image.
Definition: Image.h:66
Abstract base class for text markup annotations.
Definition: TextMarkupAnnotation.h:57
Represents a class to edit PDF file&#39;s content.
Definition: PdfContentEditor.h:89
Class represent XForm
Definition: XForm.h:185
Represents objects that contain a collection of operators as their contents.
Definition: IOperatorContainer.h:22
Represents a table that can be added to the page.
Definition: Table.h:86
Class representing annotation object.
Definition: Annotation.h:299
Class which performes reading of FDF format.
Definition: FdfReader.h:67
This class represents paragraph collection.
Definition: Paragraphs.h:36
Class representing checkbox field
Definition: CheckboxField.h:86
TabOrder
Tab order on the page
Definition: TabOrder.h:11
Class represents transformation matrix.
Definition: Matrix.h:98
Represents an absorber object of table elements. Performs search and provides access to search result...
Definition: TableAbsorber.h:63
Represents a text state of a text
Definition: TextState.h:135
Represents TeX fragment.
Definition: TeXFragment.h:53
Represents an absorber object of graphics elements. Performs graphics search and provides access to s...
Definition: GraphicsAbsorber.h:71
Class represents PDF Artifact object.
Definition: Artifact.h:90
ColorType
Specifies color type of elements on page.
Definition: ColorType.h:16
Abstract class representing operator.
Definition: Operator.h:427
Whole PDF file will be submitted.
Class represents rectangle.
Definition: Rectangle.h:100