BLSTableElement.h
1 #pragma once
2 // Copyright (c) 2001-2024 Aspose Pty Ltd. All Rights Reserved.
3 
4 #include <system/string.h>
5 
6 #include "Aspose.PDF.Cpp/Tagged/LogicalStructure/StructureElement.h"
7 #include "Aspose.PDF.Cpp/Tagged/LogicalStructure/ITextElement.h"
8 #include "Aspose.PDF.Cpp/Tagged/LogicalStructure/BLSElement.h"
9 #include "Aspose.PDF.Cpp/aspose_pdf_api_defs.h"
10 
11 namespace Aspose
12 {
13 namespace Pdf
14 {
15 enum class BorderCornerStyle;
16 class BorderInfo;
17 class Cell;
18 class Color;
19 enum class ColumnAdjustment;
20 namespace Engine
21 {
22 namespace Data
23 {
24 class IPdfPrimitive;
25 } // namespace Data
26 } // namespace Engine
27 enum class HorizontalAlignment;
28 namespace LogicalStructure
29 {
30 class MCRElement;
31 class StructureTextState;
32 class StructureTypeStandard;
33 class TableCellElement;
34 class TableRowCollectionElement;
35 class TableTBodyElement;
36 class TableTDElement;
37 class TableTFootElement;
38 class TableTHeadElement;
39 class TableTHElement;
40 class TableTRElement;
41 } // namespace LogicalStructure
42 class MarginInfo;
43 class Row;
44 class Table;
45 enum class TableBroken;
46 namespace Tagged
47 {
48 class TaggedContent;
49 class TaggedContext;
50 } // namespace Tagged
51 namespace Text
52 {
53 class TextFragment;
54 class TextState;
55 } // namespace Text
56 enum class VerticalAlignment;
57 } // namespace Pdf
58 } // namespace Aspose
59 
60 namespace Aspose {
61 
62 namespace Pdf {
63 
64 namespace LogicalStructure {
65 
69 class ASPOSE_PDF_SHARED_CLASS TableElement final : public Aspose::Pdf::LogicalStructure::BLSElement
70 {
71  typedef TableElement ThisType;
73 
74  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
75  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
76 
78  friend class Aspose::Pdf::Tagged::TaggedContent;
79  friend class Aspose::Pdf::Tagged::TaggedContext;
80 
81 public:
82 
86  ASPOSE_PDF_SHARED_API System::SharedPtr<Color> get_BackgroundColor() const;
90  ASPOSE_PDF_SHARED_API void set_BackgroundColor(System::SharedPtr<Color> value);
94  ASPOSE_PDF_SHARED_API System::SharedPtr<BorderInfo> get_Border() const;
98  ASPOSE_PDF_SHARED_API void set_Border(System::SharedPtr<BorderInfo> value);
102  ASPOSE_PDF_SHARED_API HorizontalAlignment get_Alignment() const;
106  ASPOSE_PDF_SHARED_API void set_Alignment(HorizontalAlignment value);
110  ASPOSE_PDF_SHARED_API BorderCornerStyle get_CornerStyle() const;
114  ASPOSE_PDF_SHARED_API void set_CornerStyle(BorderCornerStyle value);
118  ASPOSE_PDF_SHARED_API TableBroken get_Broken() const;
122  ASPOSE_PDF_SHARED_API void set_Broken(TableBroken value);
126  ASPOSE_PDF_SHARED_API Aspose::Pdf::ColumnAdjustment get_ColumnAdjustment() const;
130  ASPOSE_PDF_SHARED_API void set_ColumnAdjustment(Aspose::Pdf::ColumnAdjustment value);
134  ASPOSE_PDF_SHARED_API System::String get_ColumnWidths() const;
138  ASPOSE_PDF_SHARED_API void set_ColumnWidths(System::String value);
142  ASPOSE_PDF_SHARED_API System::SharedPtr<BorderInfo> get_DefaultCellBorder() const;
146  ASPOSE_PDF_SHARED_API void set_DefaultCellBorder(System::SharedPtr<BorderInfo> value);
150  ASPOSE_PDF_SHARED_API System::SharedPtr<MarginInfo> get_DefaultCellPadding() const;
154  ASPOSE_PDF_SHARED_API void set_DefaultCellPadding(System::SharedPtr<MarginInfo> value);
158  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Text::TextState> get_DefaultCellTextState();
162  ASPOSE_PDF_SHARED_API void set_DefaultCellTextState(System::SharedPtr<Aspose::Pdf::Text::TextState> value);
166  ASPOSE_PDF_SHARED_API System::String get_DefaultColumnWidth() const;
170  ASPOSE_PDF_SHARED_API void set_DefaultColumnWidth(System::String value);
174  ASPOSE_PDF_SHARED_API bool get_IsBroken() const;
178  ASPOSE_PDF_SHARED_API void set_IsBroken(bool value);
182  ASPOSE_PDF_SHARED_API bool get_IsBordersIncluded() const;
186  ASPOSE_PDF_SHARED_API void set_IsBordersIncluded(bool value);
190  ASPOSE_PDF_SHARED_API float get_Left() const;
194  ASPOSE_PDF_SHARED_API void set_Left(float value);
198  ASPOSE_PDF_SHARED_API float get_Top() const;
202  ASPOSE_PDF_SHARED_API void set_Top(float value);
206  ASPOSE_PDF_SHARED_API int32_t get_RepeatingColumnsCount() const;
210  ASPOSE_PDF_SHARED_API void set_RepeatingColumnsCount(int32_t value);
214  ASPOSE_PDF_SHARED_API int32_t get_RepeatingRowsCount() const;
218  ASPOSE_PDF_SHARED_API void set_RepeatingRowsCount(int32_t value);
222  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Text::TextState> get_RepeatingRowsStyle() const;
226  ASPOSE_PDF_SHARED_API void set_RepeatingRowsStyle(System::SharedPtr<Aspose::Pdf::Text::TextState> value);
227 
232  ASPOSE_PDF_SHARED_API System::SharedPtr<TableTHeadElement> CreateTHead();
237  ASPOSE_PDF_SHARED_API System::SharedPtr<TableTBodyElement> CreateTBody();
242  ASPOSE_PDF_SHARED_API System::SharedPtr<TableTFootElement> CreateTFoot();
243 
244 protected:
245 
246  System::SharedPtr<Aspose::Pdf::Table> get_Table() const;
247 
249 
250  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(TableElement, CODEPORTING_ARGS(System::SharedPtr<Aspose::Pdf::Tagged::TaggedContext> taggedContext, System::SharedPtr<Aspose::Pdf::Engine::Data::IPdfPrimitive> pdfEngineEntity));
251  ASPOSE_PDF_SHARED_API void PreSave() override;
252  ASPOSE_PDF_SHARED_API void Save() override;
253 
254  virtual ASPOSE_PDF_SHARED_API ~TableElement();
255 
256 private:
257 
259  System::SharedPtr<Color> _backgroundColor;
261  HorizontalAlignment _alignment;
262  BorderCornerStyle _cornerStyle;
263  TableBroken _broken;
264  Aspose::Pdf::ColumnAdjustment _columnAdjustment;
265  System::String _columnWidthString;
266  System::SharedPtr<BorderInfo> _defaultCellBorder;
267  System::SharedPtr<MarginInfo> _defaultCellPadding;
269  System::String _defaultColumnWidth;
270  bool _isBroken;
271  bool _isBordersIncluded;
272  float _left;
273  float _top;
274  int32_t _repeatingColumnsCount;
275  int32_t _repeatingRowsCount;
277 
278 };
279 
280 // Table child Elements
285 {
286  typedef TableChildElement ThisType;
288 
289  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
290  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
291 
295 
296 protected:
297 
299 
300 };
301 
306 {
307  typedef TableRowCollectionElement ThisType;
309 
310  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
311  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
312 
316 
317 public:
318 
323  virtual ASPOSE_PDF_SHARED_API System::SharedPtr<TableTRElement> CreateTR();
324 
325 protected:
326 
328 
329 };
330 
335 {
336  typedef TableTHeadElement ThisType;
338 
339  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
340  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
341 
342  friend class Aspose::Pdf::Tagged::TaggedContent;
343 
344 protected:
345 
347 
348  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(TableTHeadElement, CODEPORTING_ARGS(System::SharedPtr<Aspose::Pdf::Tagged::TaggedContext> taggedContext, System::SharedPtr<Aspose::Pdf::Engine::Data::IPdfPrimitive> pdfEngineEntity));
349 
350 };
351 
356 {
357  typedef TableTBodyElement ThisType;
359 
360  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
361  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
362 
363  friend class Aspose::Pdf::Tagged::TaggedContent;
364 
365 protected:
366 
368 
369  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(TableTBodyElement, CODEPORTING_ARGS(System::SharedPtr<Aspose::Pdf::Tagged::TaggedContext> taggedContext, System::SharedPtr<Aspose::Pdf::Engine::Data::IPdfPrimitive> pdfEngineEntity));
370 
371 };
372 
377 {
378  typedef TableTFootElement ThisType;
380 
381  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
382  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
383 
384  friend class Aspose::Pdf::Tagged::TaggedContent;
385 
386 protected:
387 
389 
390  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(TableTFootElement, CODEPORTING_ARGS(System::SharedPtr<Aspose::Pdf::Tagged::TaggedContext> taggedContext, System::SharedPtr<Aspose::Pdf::Engine::Data::IPdfPrimitive> pdfEngineEntity));
391 
392 };
393 
397 class ASPOSE_PDF_SHARED_CLASS TableTRElement final : public Aspose::Pdf::LogicalStructure::TableChildElement
398 {
399  typedef TableTRElement ThisType;
401 
402  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
403  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
404 
406  friend class Aspose::Pdf::Tagged::TaggedContent;
407 
408 public:
409 
413  ASPOSE_PDF_SHARED_API System::SharedPtr<Color> get_BackgroundColor() const;
417  ASPOSE_PDF_SHARED_API void set_BackgroundColor(System::SharedPtr<Color> value);
421  ASPOSE_PDF_SHARED_API System::SharedPtr<BorderInfo> get_Border() const;
425  ASPOSE_PDF_SHARED_API void set_Border(System::SharedPtr<BorderInfo> value);
429  ASPOSE_PDF_SHARED_API System::SharedPtr<BorderInfo> get_DefaultCellBorder() const;
433  ASPOSE_PDF_SHARED_API void set_DefaultCellBorder(System::SharedPtr<BorderInfo> value);
437  ASPOSE_PDF_SHARED_API double get_MinRowHeight() const;
441  ASPOSE_PDF_SHARED_API void set_MinRowHeight(double value);
445  ASPOSE_PDF_SHARED_API double get_FixedRowHeight() const;
449  ASPOSE_PDF_SHARED_API void set_FixedRowHeight(double value);
453  ASPOSE_PDF_SHARED_API bool get_IsInNewPage() const;
457  ASPOSE_PDF_SHARED_API void set_IsInNewPage(bool value);
461  ASPOSE_PDF_SHARED_API bool get_IsRowBroken() const;
465  ASPOSE_PDF_SHARED_API void set_IsRowBroken(bool value);
469  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Text::TextState> get_DefaultCellTextState();
473  ASPOSE_PDF_SHARED_API void set_DefaultCellTextState(System::SharedPtr<Aspose::Pdf::Text::TextState> value);
477  ASPOSE_PDF_SHARED_API System::SharedPtr<MarginInfo> get_DefaultCellPadding() const;
481  ASPOSE_PDF_SHARED_API void set_DefaultCellPadding(System::SharedPtr<MarginInfo> value);
485  ASPOSE_PDF_SHARED_API Aspose::Pdf::VerticalAlignment get_VerticalAlignment() const;
489  ASPOSE_PDF_SHARED_API void set_VerticalAlignment(Aspose::Pdf::VerticalAlignment value);
490 
495  ASPOSE_PDF_SHARED_API System::SharedPtr<TableTHElement> CreateTH();
500  ASPOSE_PDF_SHARED_API System::SharedPtr<TableTDElement> CreateTD();
501 
502 protected:
503 
504  System::SharedPtr<Aspose::Pdf::Row> get_Row() const;
505 
507 
508  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(TableTRElement, CODEPORTING_ARGS(System::SharedPtr<Aspose::Pdf::Tagged::TaggedContext> taggedContext, System::SharedPtr<Aspose::Pdf::Engine::Data::IPdfPrimitive> pdfEngineEntity));
509  ASPOSE_PDF_SHARED_API void PreSave() override;
510  ASPOSE_PDF_SHARED_API void Save() override;
511 
512  virtual ASPOSE_PDF_SHARED_API ~TableTRElement();
513 
514 private:
515 
517  System::SharedPtr<Color> _backgroundColor;
519  System::SharedPtr<BorderInfo> _defaultCellBorder;
520  double _minRowHeight;
521  double _fixedRowHeight;
522  bool _isInNewPage;
523  bool _isRowBroken;
525  System::SharedPtr<MarginInfo> _defaultCellPadding;
526  Aspose::Pdf::VerticalAlignment _verticalAlignment;
527 
528 };
529 
534 {
535  typedef TableCellElement ThisType;
538 
539  typedef ::System::BaseTypesInfo<BaseType, BaseType1> ThisTypeBaseTypesInfo;
540  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
541 
545 
546 public:
547 
551  ASPOSE_PDF_SHARED_API System::SharedPtr<Color> get_BackgroundColor() const;
555  ASPOSE_PDF_SHARED_API void set_BackgroundColor(System::SharedPtr<Color> value);
559  ASPOSE_PDF_SHARED_API System::SharedPtr<BorderInfo> get_Border() const;
563  ASPOSE_PDF_SHARED_API void set_Border(System::SharedPtr<BorderInfo> value);
567  ASPOSE_PDF_SHARED_API bool get_IsNoBorder() const;
571  ASPOSE_PDF_SHARED_API void set_IsNoBorder(bool value);
575  ASPOSE_PDF_SHARED_API System::SharedPtr<MarginInfo> get_Margin() const;
579  ASPOSE_PDF_SHARED_API void set_Margin(System::SharedPtr<MarginInfo> value);
583  ASPOSE_PDF_SHARED_API HorizontalAlignment get_Alignment() const;
587  ASPOSE_PDF_SHARED_API void set_Alignment(HorizontalAlignment value);
591  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::Text::TextState> get_DefaultCellTextState();
595  ASPOSE_PDF_SHARED_API void set_DefaultCellTextState(System::SharedPtr<Aspose::Pdf::Text::TextState> value);
599  ASPOSE_PDF_SHARED_API bool get_IsWordWrapped() const;
603  ASPOSE_PDF_SHARED_API void set_IsWordWrapped(bool value);
607  ASPOSE_PDF_SHARED_API Aspose::Pdf::VerticalAlignment get_VerticalAlignment() const;
611  ASPOSE_PDF_SHARED_API void set_VerticalAlignment(Aspose::Pdf::VerticalAlignment value);
615  ASPOSE_PDF_SHARED_API int32_t get_ColSpan() const;
619  ASPOSE_PDF_SHARED_API void set_ColSpan(int32_t value);
623  ASPOSE_PDF_SHARED_API int32_t get_RowSpan() const;
627  ASPOSE_PDF_SHARED_API void set_RowSpan(int32_t value);
632  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::LogicalStructure::StructureTextState> get_StructureTextState() override;
633 
638  ASPOSE_PDF_SHARED_API void SetText(System::String text) override;
639 
640 protected:
641 
642  System::SharedPtr<Aspose::Pdf::Cell> get_Cell() const;
644 
646 
647  ASPOSE_PDF_SHARED_API void PreSave() override;
648  ASPOSE_PDF_SHARED_API void Save() override;
649 
650  virtual ASPOSE_PDF_SHARED_API ~TableCellElement();
651 
652 private:
653 
655  System::SharedPtr<Color> _backgroundColor;
657  bool _isNoBorder;
659  HorizontalAlignment _alignment;
661  bool _isWordWrapped;
662  Aspose::Pdf::VerticalAlignment _verticalAlignment;
663  int32_t _colSpan;
664  int32_t _rowSpan;
667 
668 };
669 
673 class ASPOSE_PDF_SHARED_CLASS TableTHElement final : public Aspose::Pdf::LogicalStructure::TableCellElement
674 {
675  typedef TableTHElement ThisType;
677 
678  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
679  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
680 
681  friend class Aspose::Pdf::Tagged::TaggedContent;
682 
683 protected:
684 
686 
687  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(TableTHElement, CODEPORTING_ARGS(System::SharedPtr<Aspose::Pdf::Tagged::TaggedContext> taggedContext, System::SharedPtr<Aspose::Pdf::Engine::Data::IPdfPrimitive> pdfEngineEntity));
688 
689 };
690 
694 class ASPOSE_PDF_SHARED_CLASS TableTDElement final : public Aspose::Pdf::LogicalStructure::TableCellElement
695 {
696  typedef TableTDElement ThisType;
698 
699  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
700  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
701 
702  friend class Aspose::Pdf::Tagged::TaggedContent;
703 
704 protected:
705 
707 
708  MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION(TableTDElement, CODEPORTING_ARGS(System::SharedPtr<Aspose::Pdf::Tagged::TaggedContext> taggedContext, System::SharedPtr<Aspose::Pdf::Engine::Data::IPdfPrimitive> pdfEngineEntity));
709 
710 };
711 
712 } // namespace LogicalStructure
713 } // namespace Pdf
714 } // namespace Aspose
715 
716 
Represents a base class for children elements of the Table in logical structure.
Definition: BLSTableElement.h:284
Represents a base class for children elements of the Table Head, Body and Foot in logical structure...
Definition: BLSTableElement.h:305
Represents Table structure element in logical structure.
Definition: BLSTableElement.h:69
VerticalAlignment
Enumeration of possible vertical alignment values.
Definition: VerticalAlignment.h:16
String class used across the library. Is a substitute for C# System.String when translating code...
Definition: string.h:121
virtual ASPOSE_PDF_SHARED_API System::SharedPtr< TableTRElement > CreateTR()
Creates Aspose::Pdf::LogicalStructure::TableTRElement and added it to current table.
ASPOSE_PDF_SHARED_API void Save() override
Represents a base class for structure elements in logical structure.
Definition: StructureElement.h:71
TableRowCollectionElement(System::SharedPtr< Aspose::Pdf::Tagged::TaggedContext > taggedContext, System::SharedPtr< StructureTypeStandard > structureTypeStandard, System::SharedPtr< Aspose::Pdf::Engine::Data::IPdfPrimitive > pdfEngineEntity)
HorizontalAlignment
Describes horizontal alignment.
Definition: HorizontalAlignment.h:16
Represents a base class for table cell elements (TH and TD) in logical structure. ...
Definition: BLSTableElement.h:533
Represents TR structure element in logical structure of the table.
Definition: BLSTableElement.h:397
ASPOSE_PDF_SHARED_API void PreSave() override
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: fwd.h:22
Represents a text type.
System::SharedPtr< Aspose::Pdf::Text::TextFragment > get_TextFragment()
Represents TD structure element in logical structure of the table.
Definition: BLSTableElement.h:694
Represents TH structure element in logical structure of the table.
Definition: BLSTableElement.h:673
Represents marked-content reference object in logical structure.
Definition: MCRElement.h:63
Definition: AFRelationship.h:4
ColumnAdjustment
Enumerates column adjustment types.
Definition: ColumnAdjustment.h:16
Represents a base class for block-level structure elements in logical structure.
Definition: BLSElement.h:63
Represents THead structure element in logical structure of the table.
Definition: BLSTableElement.h:334
BorderCornerStyle
Enumerates the border corner styles for border.
Definition: BorderCornerStyle.h:11
Represents TFoot structure element in logical structure of the table.
Definition: BLSTableElement.h:376
Interface for presenting text structure elements.
Definition: ITextElement.h:32
TableBroken
Enumerates the table broken.
Definition: VerticalBroken.h:11
TableChildElement(System::SharedPtr< Aspose::Pdf::Tagged::TaggedContext > taggedContext, System::SharedPtr< StructureTypeStandard > structureType, System::SharedPtr< Aspose::Pdf::Engine::Data::IPdfPrimitive > pdfEngineEntity)
Whole PDF file will be submitted.
Represents TBody structure element in logical structure of the table.
Definition: BLSTableElement.h:355