Resources.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/ISupportsMemoryCleanup.h"
8 #include "Aspose.PDF.Cpp/aspose_pdf_api_defs.h"
9 
10 namespace Aspose
11 {
12 namespace Pdf
13 {
14 namespace Annotations
15 {
16 class Annotation;
17 class FreeTextAnnotation;
18 class HighlightAnnotation;
19 class StampAnnotation;
20 class WatermarkAnnotation;
21 } // namespace Annotations
22 class ApsToPdfConverter;
23 class Artifact;
24 class Document;
25 namespace Drawing
26 {
27 class Shape;
28 } // namespace Drawing
29 namespace Engine
30 {
31 namespace CommonData
32 {
33 namespace Graphics
34 {
35 namespace Patterns
36 {
37 class IPattern;
38 class TilingPattern;
39 } // namespace Patterns
40 } // namespace Graphics
41 namespace PageContent
42 {
43 class IResourceDictionary;
44 namespace Operators
45 {
46 namespace InlineImages
47 {
48 class EndInlineObject;
49 } // namespace InlineImages
50 } // namespace Operators
51 } // namespace PageContent
52 namespace Text
53 {
54 namespace Fonts
55 {
56 namespace Utilities
57 {
58 class DocumentFontsCollector;
59 class FontCreator;
60 class PageAnnotationProcessor;
61 } // namespace Utilities
62 } // namespace Fonts
63 namespace Segmenting
64 {
65 class PhysicalTextSegment;
66 class TextSegmentBuilder;
67 } // namespace Segmenting
68 } // namespace Text
69 } // namespace CommonData
70 namespace Data
71 {
72 class IPdfDictionary;
73 class IPdfObject;
74 class IPdfPrimitive;
75 } // namespace Data
76 namespace IO
77 {
78 namespace ConvertStrategies
79 {
80 namespace ConvertHelpers
81 {
82 class FontUtils;
83 class LowLevelFontSubstitutor;
84 } // namespace ConvertHelpers
85 namespace GlyphWidths
86 {
87 class TrueTypeGlyphWidthsProcessor;
88 } // namespace GlyphWidths
89 namespace PdfA
90 {
91 class PdfAOperatorValidator;
92 } // namespace PdfA
93 class PdfAConvertStrategy;
94 class PdfConvertStrategy;
95 class PdfUaConvertStrategy;
96 class PdfXConvertStrategy;
97 class SearchablePdfConvertStrategy;
98 class TransparentContentRemoval;
99 class VersionConvertStrategy;
100 } // namespace ConvertStrategies
101 } // namespace IO
102 namespace Presentation
103 {
104 class ColorDetectHelper;
105 namespace IndependentImpl
106 {
107 namespace ColorInitializerStrategies
108 {
109 class TextToGrayConversion;
110 } // namespace ColorInitializerStrategies
111 } // namespace IndependentImpl
112 } // namespace Presentation
113 } // namespace Engine
114 namespace Facades
115 {
116 class FormEditor;
117 class PdfContentEditor;
118 class PdfExtractor;
119 class PdfFileEditor;
120 } // namespace Facades
121 namespace Forms
122 {
123 class Form;
124 class TextModel;
125 } // namespace Forms
126 class ImagePlacementAbsorber;
127 namespace Interchange
128 {
129 class ContentSequencePage;
130 class ContentSequenceXForm;
131 } // namespace Interchange
132 namespace OFD
133 {
134 namespace Converters
135 {
136 class PageBlockConverter;
137 } // namespace Converters
138 } // namespace OFD
139 class OperatorCollection;
140 namespace Optimization
141 {
142 class ImageCompressor;
143 } // namespace Optimization
144 class Page;
145 namespace PageModel
146 {
147 class GraphicElement;
148 class ImageElement;
149 class TextElement;
150 } // namespace PageModel
151 class PdfPageStamp;
152 class Resources;
153 class RgbToDeviceGrayConversionStrategy;
154 namespace Structure
155 {
156 class FigureElement;
157 } // namespace Structure
158 namespace Tests
159 {
160 namespace Collections
161 {
162 class ResourcesTests;
163 } // namespace Collections
164 namespace Engine
165 {
166 namespace CommonData
167 {
168 namespace PageContent
169 {
170 namespace Operators
171 {
172 namespace TextShowing
173 {
174 class TextShowingTests;
175 } // namespace TextShowing
176 } // namespace Operators
177 } // namespace PageContent
178 } // namespace CommonData
179 } // namespace Engine
180 namespace Layers
181 {
182 class LayersTests;
183 } // namespace Layers
184 class PdfFile_2_0Test;
185 class RegressionTests_v10_5;
186 class RegressionTests_v11_7;
187 class RegressionTests_v16_12;
188 class RegressionTests_v17_2;
189 class RegressionTests_v19_12;
190 class RegressionTests_v19_3;
191 class RegressionTests_v19_5;
192 class RegressionTests_v20_06;
193 class RegressionTests_v20_07;
194 class RegressionTests_v22_10;
195 class RegressionTests_v23_09;
196 class RegressionTests_v23_10;
197 class RegressionTests_v6_3;
198 class RegressionTests_v6_9;
199 class RegressionTests_v7_0;
200 class RegressionTests_v7_3;
201 class RegressionTests_v7_6;
202 class RegressionTests_v7_8;
203 class RegressionTests_v8_0;
204 class RegressionTests_v8_2;
205 class RegressionTests_v8_6;
206 class RegressionTests_v8_7;
207 class RegressionTests_v9_2;
208 class RegressionTests_v9_9;
209 namespace Text
210 {
211 class TextBuilderTests;
212 } // namespace Text
213 } // namespace Tests
214 namespace Text
215 {
216 class FontCollection;
217 class TextExtractionVerifier;
218 class TextFragmentAbsorber;
219 } // namespace Text
220 namespace Vector
221 {
222 namespace Extraction
223 {
224 class ApsSvgRenderer;
225 } // namespace Extraction
226 class GraphicState;
227 class СumulativeGraphicState;
228 } // namespace Vector
229 class XForm;
230 class XFormCollection;
231 class XImage;
232 class XImageCollection;
233 } // namespace Pdf
234 } // namespace Aspose
235 namespace System
236 {
237 namespace Collections
238 {
239 namespace Generic
240 {
241 template <typename, typename> class Dictionary;
242 } // namespace Generic
243 } // namespace Collections
244 namespace Drawing
245 {
246 class Image;
247 } // namespace Drawing
248 } // namespace System
249 
250 namespace Aspose {
251 
252 namespace Pdf {
253 
257 class ASPOSE_PDF_SHARED_CLASS Resources final : public Aspose::Pdf::ISupportsMemoryCleanup
258 {
259  typedef Resources ThisType;
261 
262  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
263  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
264 
265  friend class Aspose::Pdf::ApsToPdfConverter;
266  friend class Aspose::Pdf::Engine::CommonData::Text::Fonts::Utilities::DocumentFontsCollector;
267  friend class Aspose::Pdf::Engine::CommonData::Text::Fonts::Utilities::FontCreator;
268  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::ConvertHelpers::LowLevelFontSubstitutor;
269  friend class Aspose::Pdf::Engine::CommonData::Text::Fonts::Utilities::PageAnnotationProcessor;
270  friend class Aspose::Pdf::Interchange::ContentSequencePage;
271  friend class Aspose::Pdf::Interchange::ContentSequenceXForm;
272  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfUaConvertStrategy;
273  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfConvertStrategy;
274  friend class Aspose::Pdf::Optimization::ImageCompressor;
276  friend class Aspose::Pdf::Engine::Presentation::IndependentImpl::ColorInitializerStrategies::TextToGrayConversion;
279  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::ConvertHelpers::FontUtils;
280  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::GlyphWidths::TrueTypeGlyphWidthsProcessor;
281  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfXConvertStrategy;
282  friend class Aspose::Pdf::PageModel::GraphicElement;
283  friend class Aspose::Pdf::PageModel::ImageElement;
284  friend class Aspose::Pdf::PageModel::TextElement;
285  friend class Aspose::Pdf::Engine::Presentation::ColorDetectHelper;
287  friend class Aspose::Pdf::Engine::CommonData::Graphics::Patterns::TilingPattern;
288  friend class Aspose::Pdf::Engine::CommonData::PageContent::Operators::InlineImages::EndInlineObject;
289  friend class Aspose::Pdf::Engine::CommonData::Text::Segmenting::PhysicalTextSegment;
290  friend class Aspose::Pdf::Engine::CommonData::Text::Segmenting::TextSegmentBuilder;
291  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfAConvertStrategy;
292  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::SearchablePdfConvertStrategy;
293  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::VersionConvertStrategy;
294  friend class Aspose::Pdf::Text::TextExtractionVerifier;
295  friend class Aspose::Pdf::Document;
305  friend class Aspose::Pdf::Page;
309  friend class Aspose::Pdf::XForm;
311  friend class Aspose::Pdf::XImage;
314  friend class Aspose::Pdf::Forms::TextModel;
315  friend class Aspose::Pdf::Artifact;
317  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::TransparentContentRemoval;
318  friend class Aspose::Pdf::Engine::IO::ConvertStrategies::PdfA::PdfAOperatorValidator;
319  friend class Aspose::Pdf::OFD::Converters::PageBlockConverter;
320  friend class Aspose::Pdf::Vector::Extraction::ApsSvgRenderer;
321  friend class Aspose::Pdf::Vector::СumulativeGraphicState;
322  friend class Aspose::Pdf::Tests::Collections::ResourcesTests;
323  friend class Aspose::Pdf::Tests::Text::TextBuilderTests;
324  friend class Aspose::Pdf::Tests::Engine::CommonData::PageContent::Operators::TextShowing::TextShowingTests;
325  friend class Aspose::Pdf::Tests::RegressionTests_v7_0;
326  friend class Aspose::Pdf::Tests::RegressionTests_v7_6;
327  friend class Aspose::Pdf::Tests::RegressionTests_v8_6;
328  friend class Aspose::Pdf::Tests::RegressionTests_v9_2;
329  friend class Aspose::Pdf::Tests::RegressionTests_v9_9;
330  friend class Aspose::Pdf::Tests::RegressionTests_v10_5;
331  friend class Aspose::Pdf::Tests::RegressionTests_v11_7;
332  friend class Aspose::Pdf::Tests::RegressionTests_v16_12;
333  friend class Aspose::Pdf::Tests::RegressionTests_v17_2;
334  friend class Aspose::Pdf::Tests::RegressionTests_v19_3;
335  friend class Aspose::Pdf::Tests::RegressionTests_v6_3;
336  friend class Aspose::Pdf::Tests::RegressionTests_v6_9;
337  friend class Aspose::Pdf::Tests::RegressionTests_v7_3;
338  friend class Aspose::Pdf::Tests::RegressionTests_v7_8;
339  friend class Aspose::Pdf::Tests::RegressionTests_v8_0;
340  friend class Aspose::Pdf::Tests::RegressionTests_v8_2;
341  friend class Aspose::Pdf::Tests::RegressionTests_v8_7;
342  friend class Aspose::Pdf::Tests::RegressionTests_v19_5;
343  friend class Aspose::Pdf::Tests::RegressionTests_v19_12;
344  friend class Aspose::Pdf::Tests::RegressionTests_v20_06;
345  friend class Aspose::Pdf::Tests::RegressionTests_v20_07;
346  friend class Aspose::Pdf::Tests::RegressionTests_v22_10;
347  friend class Aspose::Pdf::Tests::RegressionTests_v23_09;
348  friend class Aspose::Pdf::Tests::RegressionTests_v23_10;
349  friend class Aspose::Pdf::Tests::PdfFile_2_0Test;
350  friend class Aspose::Pdf::Tests::Layers::LayersTests;
351 
352 public:
353 
357  class ASPOSE_PDF_SHARED_CLASS ExtGStateValue : public System::Object
358  {
359  typedef ExtGStateValue ThisType;
360  typedef System::Object BaseType;
361 
362  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
363  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
364 
366 
367  public:
368 
369  ASPOSE_PDF_SHARED_API System::String get_Name() const;
370  ASPOSE_PDF_SHARED_API double get_CA() const;
371  ASPOSE_PDF_SHARED_API double get_ca() const;
372 
373  ASPOSE_PDF_SHARED_API ExtGStateValue(System::String name);
374 
375  protected:
376 
377  ASPOSE_PDF_SHARED_API void set_CA(double value);
378  ASPOSE_PDF_SHARED_API void set_ca(double value);
379 
380  private:
381 
382  System::String _name;
383  double _ca1;
384  double _ca2;
385 
386  };
387 
388 
389 public:
390 
394  ASPOSE_PDF_SHARED_API System::SharedPtr<XFormCollection> get_Forms();
398  ASPOSE_PDF_SHARED_API System::SharedPtr<XImageCollection> get_Images();
402  ASPOSE_PDF_SHARED_API System::SharedPtr<Text::FontCollection> get_Fonts();
403 
409  ASPOSE_PDF_SHARED_API System::SharedPtr<Text::FontCollection> GetFonts(bool CreateIfAbsent);
415  ASPOSE_PDF_SHARED_API void cpp_set_xfrom_weak(System::SharedPtr<XForm> from);
419  ASPOSE_PDF_SHARED_API void FreeMemory() override;
420 
421 protected:
422 
427 
440  bool get_IsCommonResource();
448  void set_IsCommonResource(bool value);
451 
455  void ClearFormsCache();
456  void ClearImagesCache();
457  void ClearFontsCache();
458  void InvalidateForms();
460  static void ReleaseResourcesFor(const System::SharedPtr<Page>& page);
479  bool IsXObjectCommon(int32_t imageObjectId);
481 
482  virtual ASPOSE_PDF_SHARED_API ~Resources();
483 
484 private:
485 
489  bool _fontsInitialized;
490  bool _imagesInitialized;
491  bool _xformsInitialized;
495  static const int32_t FALSE;
496  static const int32_t TRUE;
497  static const int32_t UNKNOWN;
498  int32_t _IsCommonResource;
501 
503 
504  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(Resources, CODEPORTING_ARGS(System::SharedPtr<Aspose::Pdf::Document> document, System::SharedPtr<Engine::Data::IPdfDictionary> resources));
506 
507 };
508 
509 } // namespace Pdf
510 } // namespace Aspose
511 
512 
String class used across the library. Is a substitute for C# System.String when translating code...
Definition: string.h:121
System::SharedPtr< Engine::Data::IPdfDictionary > get_EngineDict() const
Represents rubber stamp annotation. This type of annotation displays text or graphics intended to loo...
Definition: StampAnnotation.h:86
System::SharedPtr< OperatorCollection > _Contents
Definition: Resources.h:426
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:625
Definition: Artifact.h:67
void set_Contents(System::SharedPtr< OperatorCollection > value)
ASPOSE_PDF_SHARED_API void cpp_set_xfrom_weak(System::SharedPtr< XForm > from)
System::SharedPtr< OperatorCollection > get_Contents() const
ASPOSE_PDF_SHARED_API System::SharedPtr< XImageCollection > get_Images()
Gets Images images collection
Represents a free text annotation that displays text directly on the page. Unlike an ordinary text an...
Definition: FreeTextAnnotation.h:91
static System::SharedPtr< Resources > GetResourcesFor(System::SharedPtr< Page > page)
bool _isIgnoreResourceFontErrors
Definition: Resources.h:423
System::SharedPtr< Engine::Data::IPdfDictionary > _EngineDict
Definition: Resources.h:424
Represents a highlight annotation that highlights a range of text in the document.
Definition: HighlightAnnotation.h:67
static void ReleaseResourcesFor(const System::SharedPtr< Page > &page)
System::SharedPtr< Engine::CommonData::Graphics::Patterns::IPattern > FindPattern(System::String patternName)
Represents shape - the base graphics object.
Definition: Shape.h:60
Represents an absorber object of text fragments. Performs text search and provides access to search r...
Definition: TextFragmentAbsorber.h:81
static System::SharedPtr< Resources > Create(System::SharedPtr< Aspose::Pdf::Document > doc, System::SharedPtr< Engine::CommonData::PageContent::IResourceDictionary > res)
ASPOSE_PDF_SHARED_API System::SharedPtr< System::Collections::Generic::Dictionary< System::String, System::SharedPtr< Resources::ExtGStateValue > > > GetExtGStates()
Gets all ExGStates from resources.
bool IsXObjectCommon(int32_t imageObjectId)
Determines whether common images are existed in the document.
Definition: signed_info.h:13
Represents rgb to device gray color spaces conversion strategy.
Definition: RgbToDeviceGrayConversionStrategy.h:46
Represents ExtGStates with some values.
Definition: Resources.h:357
System::SharedPtr< Engine::Data::IPdfDictionary > CreateEntry(System::String section, System::String &name)
Create resource entry in the desired section
Represents graphic state of the current GraphicElement.
Definition: GraphicState.h:57
Class describes Watermark annotation object.
Definition: WatermarkAnnotation.h:73
void set_IsCommonResource(bool value)
True if this resources are common i.e. are shared for several pages (placed in pages dictionary as in...
ASPOSE_PDF_SHARED_API void FreeMemory() override
Clears cached data, frees memory etc.
Class representing page resources.
Definition: Resources.h:257
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: fwd.h:22
Represents an absorber object of image placement objects. Performs search of image usages and provide...
Definition: ImagePlacementAbsorber.h:77
Class representing page of PDF document.
Definition: Page.h:375
virtual ASPOSE_PDF_SHARED_API ~Resources()
Definition: AFRelationship.h:4
ASPOSE_PDF_SHARED_API System::SharedPtr< Text::FontCollection > get_Fonts()
Gets Fonts resources collection
Class representing image X-Object.
Definition: XImage.h:173
The interface defines ways to cleanup memory in case mass operations.
Definition: ISupportsMemoryCleanup.h:13
static System::SharedPtr< System::Drawing::Image > GetImage(System::String name, System::SharedPtr< Engine::Data::IPdfDictionary > resources)
means loading document in OFD format.
bool get_IsCommonResource()
True if this resources are common i.e. are shared for several pages (placed in pages dictionary as in...
Class represents stamp which uses PDF page as stamp.
Definition: PdfPageStamp.h:47
System::SharedPtr< Aspose::Pdf::Document > get_Document() const
The coordinates are in the page coordinate context.
Class for extracting images and text from PDF document.
Definition: PdfExtractor.h:83
Implements operations with PDF file: concatenation, splitting, extracting pages, making booklet...
Definition: PdfFileEditor.h:105
Class representing XImage collection.
Definition: XImageCollection.h:153
System::SharedPtr< Engine::Data::IPdfObject > get_Source() const
void set_Source(System::SharedPtr< Engine::Data::IPdfObject > value)
Class represents collection of XFormCollection.
Definition: XFormCollection.h:75
Class representing logical structure figure.
Definition: FigureElement.h:51
Represents a class to edit PDF file&#39;s content.
Definition: PdfContentEditor.h:89
Class represent XForm
Definition: XForm.h:185
ASPOSE_PDF_SHARED_API System::SharedPtr< Text::FontCollection > GetFonts(bool CreateIfAbsent)
Returns fonts collection. If resources don&#39;t contain fonts entry it will be created in depends of Cre...
Class representing annotation object.
Definition: Annotation.h:303
System::SharedPtr< Engine::CommonData::PageContent::IResourceDictionary > get_ResourceDictionary() const
ASPOSE_PDF_SHARED_API System::SharedPtr< XFormCollection > get_Forms()
Gets Forms forms collection
System::SharedPtr< Engine::CommonData::PageContent::IResourceDictionary > _ResourceDictionary
Definition: Resources.h:425
void ClearFormsCache()
Clears cached forms (this required when fields are flattened)
Class represents PDF Artifact object.
Definition: Artifact.h:90
Class for editing forms (ading/deleting field etc)
Definition: FormEditor.h:73
Whole PDF file will be submitted.