TextFragmentAbsorber.h
1 #pragma once
2 // Copyright (c) 2001-2024 Aspose Pty Ltd. All Rights Reserved.
3 
4 #include <system/array.h>
5 
6 #include "Aspose.PDF.Cpp/Text/TextAbsorber.h"
7 #include "Aspose.PDF.Cpp/aspose_pdf_api_defs.h"
8 
9 namespace Aspose
10 {
11 namespace Pdf
12 {
13 class Document;
14 namespace Engine
15 {
16 namespace CommonData
17 {
18 namespace Text
19 {
20 namespace Segmenting
21 {
22 class PhysicalTextSegment;
23 class TextSegmenter;
24 class TextSegmenterSearchResult;
25 } // namespace Segmenting
26 } // namespace Text
27 } // namespace CommonData
28 } // namespace Engine
29 class Page;
30 class Rectangle;
31 namespace Text
32 {
33 class Font;
34 class OnSegmentChangedEventArgs;
35 class TextEditOptions;
36 class TextExtractionError;
37 class TextExtractionOptions;
38 class TextFragmentCollection;
39 class TextReplaceOptions;
40 class TextSearchOptions;
41 } // namespace Text
42 class XForm;
43 } // namespace Pdf
44 } // namespace Aspose
45 namespace System
46 {
47 namespace Collections
48 {
49 namespace Generic
50 {
51 template <typename, typename> class Dictionary;
52 template <typename> class List;
53 } // namespace Generic
54 } // namespace Collections
55 namespace Text
56 {
57 namespace RegularExpressions
58 {
59 class Regex;
60 } // namespace RegularExpressions
61 } // namespace Text
62 } // namespace System
63 
64 namespace Aspose {
65 
66 namespace Pdf {
67 
68 namespace Text {
69 
81 class ASPOSE_PDF_SHARED_CLASS TextFragmentAbsorber final : public Aspose::Pdf::Text::TextAbsorber
82 {
85 
86  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
87  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
88 
89 public:
90 
96  ASPOSE_PDF_SHARED_API System::SharedPtr<TextFragmentCollection> get_TextFragments();
102  ASPOSE_PDF_SHARED_API void set_TextFragments(System::SharedPtr<TextFragmentCollection> value);
114  ASPOSE_PDF_SHARED_API System::String get_Phrase() const;
120  ASPOSE_PDF_SHARED_API void set_Phrase(System::String value);
126  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Text::TextSearchOptions> get_TextSearchOptions() override;
132  ASPOSE_PDF_SHARED_API void set_TextSearchOptions(System::SharedPtr<Aspose::Pdf::Text::TextSearchOptions> value) override;
136  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Text::TextEditOptions> get_TextEditOptions() const;
140  ASPOSE_PDF_SHARED_API void set_TextEditOptions(System::SharedPtr<Aspose::Pdf::Text::TextEditOptions> value);
144  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Text::TextReplaceOptions> get_TextReplaceOptions() const;
148  ASPOSE_PDF_SHARED_API void set_TextReplaceOptions(System::SharedPtr<Aspose::Pdf::Text::TextReplaceOptions> value);
153  ASPOSE_PDF_SHARED_API bool get_HasErrors() const;
162  ASPOSE_PDF_SHARED_API System::String get_Text() override;
166  ASPOSE_PDF_SHARED_API System::SharedPtr<TextExtractionOptions> get_ExtractionOptions() override;
170  ASPOSE_PDF_SHARED_API void set_ExtractionOptions(System::SharedPtr<TextExtractionOptions> value) override;
171 
180  ASPOSE_PDF_SHARED_API TextFragmentAbsorber();
191  ASPOSE_PDF_SHARED_API TextFragmentAbsorber(System::SharedPtr<Aspose::Pdf::Text::TextEditOptions> textEditOptions);
201  ASPOSE_PDF_SHARED_API TextFragmentAbsorber(System::String phrase);
211  ASPOSE_PDF_SHARED_API TextFragmentAbsorber(System::SharedPtr<System::Text::RegularExpressions::Regex> regex);
222  ASPOSE_PDF_SHARED_API TextFragmentAbsorber(System::String phrase, System::SharedPtr<Aspose::Pdf::Text::TextSearchOptions> textSearchOptions);
233  ASPOSE_PDF_SHARED_API TextFragmentAbsorber(System::SharedPtr<System::Text::RegularExpressions::Regex> regex, System::SharedPtr<Aspose::Pdf::Text::TextSearchOptions> textSearchOptions);
256  ASPOSE_PDF_SHARED_API TextFragmentAbsorber(System::String phrase, System::SharedPtr<Aspose::Pdf::Text::TextSearchOptions> textSearchOptions, System::SharedPtr<Aspose::Pdf::Text::TextEditOptions> textEditOptions);
265  ASPOSE_PDF_SHARED_API TextFragmentAbsorber(System::String phrase, System::SharedPtr<Aspose::Pdf::Text::TextEditOptions> textEditOptions);
274  ASPOSE_PDF_SHARED_API TextFragmentAbsorber(System::SharedPtr<System::Text::RegularExpressions::Regex> regex, System::SharedPtr<Aspose::Pdf::Text::TextEditOptions> textEditOptions);
275 
282  ASPOSE_PDF_SHARED_API void Visit(System::SharedPtr<Page> page) override;
289  ASPOSE_PDF_SHARED_API void Visit(System::SharedPtr<Document> pdf) override;
294  ASPOSE_PDF_SHARED_API void ApplyForAllFragments(System::SharedPtr<Font> font);
299  ASPOSE_PDF_SHARED_API void ApplyForAllFragments(float fontSize);
305  ASPOSE_PDF_SHARED_API void ApplyForAllFragments(System::SharedPtr<Font> font, float fontSize);
309  ASPOSE_PDF_SHARED_API void Reset();
314  ASPOSE_PDF_SHARED_API void RemoveAllText(System::SharedPtr<Page> page);
320  ASPOSE_PDF_SHARED_API void RemoveAllText(System::SharedPtr<Page> page, System::SharedPtr<Rectangle> rect);
325  ASPOSE_PDF_SHARED_API void RemoveAllText(System::SharedPtr<Document> document);
330  ASPOSE_PDF_SHARED_API void Visit(System::SharedPtr<XForm> xForm) override;
331 
332 private:
333 
334  System::String phrase;
340  bool _isCollectionChangedFromLastGettingText;
341  bool _hasErrors;
345  System::SharedPtr<System::Collections::Generic::Dictionary<System::SharedPtr<System::Text::RegularExpressions::Regex>, System::SharedPtr<TextFragmentCollection>>> regexResults;
346 
353  static void RemoveEndLineMarkers(System::String& inLine);
354  void ApplyTextFragments();
359  void RegisterEventHandlerForSeveralOccurences();
363  void RegisterEventHandlerForAllSegmentsFound();
374  System::String GetShape(System::String input);
377 
378 };
379 
380 } // namespace Text
381 } // namespace Pdf
382 } // namespace Aspose
383 
384 
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
Represents an absorber object of a text. Performs text extraction and provides access to the result v...
Definition: TextAbsorber.h:72
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:64
Definition: Artifact.h:71
Represents an absorber object of text fragments. Performs text search and provides access to search r...
Definition: TextFragmentAbsorber.h:81
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: SideBySidePdfComparer.h:24
Represents a text type.
Definition: AFRelationship.h:4
The coordinates are in the page coordinate context.
Whole PDF file will be submitted.