GraphicsAbsorber.h
1 #pragma once
2 // Copyright (c) 2001-2024 Aspose Pty Ltd. All Rights Reserved.
3 
4 #include <system/object.h>
5 #include <cstdint>
6 
7 #include "Aspose.PDF.Cpp/aspose_pdf_api_defs.h"
8 
9 namespace Aspose
10 {
11 namespace Pdf
12 {
13 namespace Engine
14 {
15 namespace Presentation
16 {
17 class Presenter;
18 } // namespace Presentation
19 } // namespace Engine
20 class LayerProcessor;
21 class Matrix;
22 class Operator;
23 class OperatorCollection;
24 class Page;
25 class Resources;
26 namespace Vector
27 {
28 class GraphicElementCollection;
29 class GraphicState;
30 class SubPath;
31 class XFormPlacement;
32 } // namespace Vector
33 class XForm;
34 } // namespace Pdf
35 } // namespace Aspose
36 namespace System
37 {
38 namespace Collections
39 {
40 namespace Generic
41 {
42 template <typename, typename> class Dictionary;
43 template <typename> class List;
44 template <typename> class Stack;
45 } // namespace Generic
46 } // namespace Collections
47 class String;
48 } // namespace System
49 
50 namespace Aspose {
51 
52 namespace Pdf {
53 
54 namespace Vector {
55 
60 {
61  typedef NamespaceDoc ThisType;
62  typedef System::Object BaseType;
63 
64  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
65  RTTI_INFO_DECL();
66 
67 };
68 
73 class ASPOSE_PDF_SHARED_CLASS GraphicsAbsorber : public System::Object
74 {
75  typedef GraphicsAbsorber ThisType;
76  typedef System::Object BaseType;
77 
78  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
79  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
80 
81  friend class Aspose::Pdf::Engine::Presentation::Presenter;
82  friend class Aspose::Pdf::LayerProcessor;
83 
84 public:
85 
89  ASPOSE_PDF_SHARED_API System::SharedPtr<GraphicElementCollection> get_Elements() const;
90 
95  ASPOSE_PDF_SHARED_API void Visit(System::SharedPtr<Page> page);
102  ASPOSE_PDF_SHARED_API void SuppressUpdate();
109  ASPOSE_PDF_SHARED_API void ResumeUpdate();
110 
111  ASPOSE_PDF_SHARED_API GraphicsAbsorber();
112 
113 protected:
114 
116 
124  static bool IsPathPaintingOperator(System::String commandName);
125 
126 private:
127 
128  bool _saveFullOperators;
131  System::SharedPtr<SubPath> _currentSubPath;
134 
135  void CreateMatrix(System::SharedPtr<Page> page);
136  void InitializeCollections();
137  void ProcessOperators(System::SharedPtr<GraphicState> currentGS, System::SharedPtr<OperatorCollection> currentcontent, System::SharedPtr<Resources> currentResources, System::SharedPtr<Page> page, System::SharedPtr<XFormPlacement> currentPlacement = nullptr);
139  void Add(System::SharedPtr<Operator> op, System::SharedPtr<XFormPlacement> placement, bool needToAdd);
140 
141 };
142 
143 } // namespace Vector
144 } // namespace Pdf
145 } // namespace Aspose
146 
147 
String class used across the library. Is a substitute for C# System.String when translating code...
Definition: string.h:121
class ASPOSECPP_SHARED_CLASS List
Definition: ienumerable.h:17
The Aspose.Pdf.Vector is a root namespace for graphics operations.
Definition: GraphicsAbsorber.h:59
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:64
Definition: Artifact.h:67
System::SharedPtr< Matrix > CTM
Definition: GraphicsAbsorber.h:115
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: fwd.h:22
Definition: AFRelationship.h:4
The coordinates are in the page coordinate context.
Represents an absorber object of graphics elements. Performs graphics search and provides access to s...
Definition: GraphicsAbsorber.h:73
Whole PDF file will be submitted.