Index: core/src/reflow/layoutprovider_taggedpdf.cpp |
diff --git a/core/src/reflow/layoutprovider_taggedpdf.cpp b/core/src/reflow/layoutprovider_taggedpdf.cpp |
index c40c1cdb64fb002ad31605b082a0d1cdb0351bad..d3768566ad85a06aec2e9851f57e7fbbd137150c 100644 |
--- a/core/src/reflow/layoutprovider_taggedpdf.cpp |
+++ b/core/src/reflow/layoutprovider_taggedpdf.cpp |
@@ -1,780 +1,761 @@ |
// Copyright 2014 PDFium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
- |
+ |
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
#include "layoutprovider_taggedpdf.h" |
-CPDF_LayoutElement::CPDF_LayoutElement() |
-{ |
- m_pTaggedElement = NULL; |
- m_pParentElement = NULL; |
+CPDF_LayoutElement::CPDF_LayoutElement() { |
+ m_pTaggedElement = NULL; |
+ m_pParentElement = NULL; |
} |
-CPDF_LayoutElement::~CPDF_LayoutElement() |
-{ |
- m_ObjArray.RemoveAll(); |
- int size = m_ChildArray.GetSize(); |
- for(int i = 0; i < size; i++) { |
- CPDF_LayoutElement* pChild = (CPDF_LayoutElement*)m_ChildArray.GetAt(i); |
- delete pChild; |
- pChild = NULL; |
- } |
- m_ChildArray.RemoveAll(); |
+CPDF_LayoutElement::~CPDF_LayoutElement() { |
+ m_ObjArray.RemoveAll(); |
+ int size = m_ChildArray.GetSize(); |
+ for (int i = 0; i < size; i++) { |
+ CPDF_LayoutElement* pChild = (CPDF_LayoutElement*)m_ChildArray.GetAt(i); |
+ delete pChild; |
+ pChild = NULL; |
+ } |
+ m_ChildArray.RemoveAll(); |
} |
-LayoutType CPDF_LayoutElement::ConvertLayoutType(FX_BSTR name) |
-{ |
- if(name == (const char*)("Document")) { |
- return LayoutDocument; |
- } else if(name == (const char*)("Part")) { |
- return LayoutPart; |
- } else if(name == (const char*)("Art")) { |
- return LayoutArt; |
- } else if(name == (const char*)("Sect")) { |
- return LayoutSect; |
- } else if(name == (const char*)("Div")) { |
- return LayoutDiv; |
- } else if(name == (const char*)("BlockQuote")) { |
- return LayoutBlockQuote; |
- } else if(name == (const char*)("Caption")) { |
- return LayoutCaption; |
- } else if(name == (const char*)("TOC")) { |
- return LayoutTOC; |
- } else if(name == (const char*)("TOCI")) { |
- return LayoutTOCI; |
- } else if(name == (const char*)("Index")) { |
- return LayoutIndex; |
- } else if(name == (const char*)("NonStruct")) { |
- return LayoutNonStruct; |
- } else if(name == (const char*)("Private")) { |
- return LayoutPrivate; |
- } else if(name == (const char*)("P")) { |
- return LayoutParagraph; |
- } else if(name == (const char*)("H")) { |
- return LayoutHeading; |
- } else if(name == (const char*)("H1")) { |
- return LayoutHeading1; |
- } else if(name == (const char*)("H2")) { |
- return LayoutHeading2; |
- } else if(name == (const char*)("H3")) { |
- return LayoutHeading3; |
- } else if(name == (const char*)("H4")) { |
- return LayoutHeading4; |
- } else if(name == (const char*)("H5")) { |
- return LayoutHeading5; |
- } else if(name == (const char*)("H6")) { |
- return LayoutHeading6; |
- } else if(name == (const char*)("L")) { |
- return LayoutList; |
- } else if(name == (const char*)("LI")) { |
- return LayoutListItem; |
- } else if(name == (const char*)("Lbl")) { |
- return LayoutListLabel; |
- } else if(name == (const char*)("LBody")) { |
- return LayoutListBody; |
- } else if(name == (const char*)("Table")) { |
- return LayoutTable; |
- } else if(name == (const char*)("TR")) { |
- return LayoutTableRow; |
- } else if(name == (const char*)("TH")) { |
- return LayoutTableHeaderCell; |
- } else if(name == (const char*)("TD")) { |
- return LayoutTableDataCell; |
- } else if(name == (const char*)("THead")) { |
- return LayoutTableHeaderGroup; |
- } else if(name == (const char*)("TBody")) { |
- return LayoutTableBodyGroup; |
- } else if(name == (const char*)("TFoot")) { |
- return LayoutTableFootGroup; |
- } else if(name == (const char*)("Span")) { |
- return LayoutSpan; |
- } else if(name == (const char*)("Quote")) { |
- return LayoutQuote; |
- } else if(name == (const char*)("Note")) { |
- return LayoutNote; |
- } else if(name == (const char*)("Reference")) { |
- return LayoutReference; |
- } else if(name == (const char*)("BibEntry")) { |
- return LayoutBibEntry; |
- } else if(name == (const char*)("Code")) { |
- return LayoutCode; |
- } else if(name == (const char*)("Link")) { |
- return LayoutLink; |
- } else if(name == (const char*)("Annot")) { |
- return LayoutAnnot; |
- } else if(name == (const char*)("Ruby")) { |
- return LayoutRuby; |
- } else if(name == (const char*)("RB")) { |
- return LayoutRubyBase; |
- } else if(name == (const char*)("RT")) { |
- return LayoutRubyAnnot; |
- } else if(name == (const char*)("RP")) { |
- return LayoutRubyPunc; |
- } else if(name == (const char*)("Warichu")) { |
- return LayoutWarichu; |
- } else if(name == (const char*)("WT")) { |
- return LayoutWarichuText; |
- } else if(name == (const char*)("WP")) { |
- return LayoutWarichuPunc; |
- } else if(name == (const char*)("Figure")) { |
- return LayoutFigure; |
- } else if(name == (const char*)("Formula")) { |
- return LayoutFormula; |
- } else if(name == (const char*)("Form")) { |
- return LayoutForm; |
- } else { |
- return LayoutUnknown; |
- } |
+LayoutType CPDF_LayoutElement::ConvertLayoutType(FX_BSTR name) { |
+ if (name == (const char*)("Document")) { |
+ return LayoutDocument; |
+ } else if (name == (const char*)("Part")) { |
+ return LayoutPart; |
+ } else if (name == (const char*)("Art")) { |
+ return LayoutArt; |
+ } else if (name == (const char*)("Sect")) { |
+ return LayoutSect; |
+ } else if (name == (const char*)("Div")) { |
+ return LayoutDiv; |
+ } else if (name == (const char*)("BlockQuote")) { |
+ return LayoutBlockQuote; |
+ } else if (name == (const char*)("Caption")) { |
+ return LayoutCaption; |
+ } else if (name == (const char*)("TOC")) { |
+ return LayoutTOC; |
+ } else if (name == (const char*)("TOCI")) { |
+ return LayoutTOCI; |
+ } else if (name == (const char*)("Index")) { |
+ return LayoutIndex; |
+ } else if (name == (const char*)("NonStruct")) { |
+ return LayoutNonStruct; |
+ } else if (name == (const char*)("Private")) { |
+ return LayoutPrivate; |
+ } else if (name == (const char*)("P")) { |
+ return LayoutParagraph; |
+ } else if (name == (const char*)("H")) { |
+ return LayoutHeading; |
+ } else if (name == (const char*)("H1")) { |
+ return LayoutHeading1; |
+ } else if (name == (const char*)("H2")) { |
+ return LayoutHeading2; |
+ } else if (name == (const char*)("H3")) { |
+ return LayoutHeading3; |
+ } else if (name == (const char*)("H4")) { |
+ return LayoutHeading4; |
+ } else if (name == (const char*)("H5")) { |
+ return LayoutHeading5; |
+ } else if (name == (const char*)("H6")) { |
+ return LayoutHeading6; |
+ } else if (name == (const char*)("L")) { |
+ return LayoutList; |
+ } else if (name == (const char*)("LI")) { |
+ return LayoutListItem; |
+ } else if (name == (const char*)("Lbl")) { |
+ return LayoutListLabel; |
+ } else if (name == (const char*)("LBody")) { |
+ return LayoutListBody; |
+ } else if (name == (const char*)("Table")) { |
+ return LayoutTable; |
+ } else if (name == (const char*)("TR")) { |
+ return LayoutTableRow; |
+ } else if (name == (const char*)("TH")) { |
+ return LayoutTableHeaderCell; |
+ } else if (name == (const char*)("TD")) { |
+ return LayoutTableDataCell; |
+ } else if (name == (const char*)("THead")) { |
+ return LayoutTableHeaderGroup; |
+ } else if (name == (const char*)("TBody")) { |
+ return LayoutTableBodyGroup; |
+ } else if (name == (const char*)("TFoot")) { |
+ return LayoutTableFootGroup; |
+ } else if (name == (const char*)("Span")) { |
+ return LayoutSpan; |
+ } else if (name == (const char*)("Quote")) { |
+ return LayoutQuote; |
+ } else if (name == (const char*)("Note")) { |
+ return LayoutNote; |
+ } else if (name == (const char*)("Reference")) { |
+ return LayoutReference; |
+ } else if (name == (const char*)("BibEntry")) { |
+ return LayoutBibEntry; |
+ } else if (name == (const char*)("Code")) { |
+ return LayoutCode; |
+ } else if (name == (const char*)("Link")) { |
+ return LayoutLink; |
+ } else if (name == (const char*)("Annot")) { |
+ return LayoutAnnot; |
+ } else if (name == (const char*)("Ruby")) { |
+ return LayoutRuby; |
+ } else if (name == (const char*)("RB")) { |
+ return LayoutRubyBase; |
+ } else if (name == (const char*)("RT")) { |
+ return LayoutRubyAnnot; |
+ } else if (name == (const char*)("RP")) { |
+ return LayoutRubyPunc; |
+ } else if (name == (const char*)("Warichu")) { |
+ return LayoutWarichu; |
+ } else if (name == (const char*)("WT")) { |
+ return LayoutWarichuText; |
+ } else if (name == (const char*)("WP")) { |
+ return LayoutWarichuPunc; |
+ } else if (name == (const char*)("Figure")) { |
+ return LayoutFigure; |
+ } else if (name == (const char*)("Formula")) { |
+ return LayoutFormula; |
+ } else if (name == (const char*)("Form")) { |
+ return LayoutForm; |
+ } else { |
+ return LayoutUnknown; |
+ } |
} |
-CFX_ByteStringC CPDF_LayoutElement::ConvertLayoutType(LayoutType type) |
-{ |
- FX_BSTR name = ""; |
- if(type == LayoutArifact) { |
- return "Arifact"; |
- } else if( type == LayoutDocument) { |
- return "Document"; |
- } else if( type == LayoutPart) { |
- return "Part"; |
- } else if( type == LayoutArt) { |
- return "Art"; |
- } else if( type == LayoutSect) { |
- return "Sect"; |
- } else if( type == LayoutDiv) { |
- return "Div"; |
- } else if( type == LayoutBlockQuote) { |
- return "BlockQuote"; |
- } else if( type == LayoutCaption) { |
- return "Caption"; |
- } else if( type == LayoutTOC) { |
- return "TOC"; |
- } else if( type == LayoutTOCI) { |
- return "TOCI"; |
- } else if( type == LayoutIndex) { |
- return "Index"; |
- } else if( type == LayoutNonStruct) { |
- return "NonStruct"; |
- } else if( type == LayoutPrivate) { |
- return "Private"; |
- } else if( type == LayoutParagraph) { |
- return "P"; |
- } else if( type == LayoutHeading) { |
- return "H"; |
- } else if( type == LayoutHeading1) { |
- return "H1"; |
- } else if( type == LayoutHeading2) { |
- return "H2"; |
- } else if( type == LayoutHeading3) { |
- return "H3"; |
- } else if( type == LayoutHeading4) { |
- return "H4"; |
- } else if( type == LayoutHeading5) { |
- return "H5"; |
- } else if( type == LayoutHeading6) { |
- return "H6"; |
- } else if( type == LayoutList) { |
- return "L"; |
- } else if( type == LayoutListItem) { |
- return "LI"; |
- } else if( type == LayoutListLabel) { |
- return "Lbl"; |
- } else if( type == LayoutListBody) { |
- return "LBody"; |
- } else if( type == LayoutTable) { |
- return "Table"; |
- } else if( type == LayoutTableRow) { |
- return "TR"; |
- } else if( type == LayoutTableHeaderCell) { |
- return "TH"; |
- } else if( type == LayoutTableDataCell) { |
- return "TD"; |
- } else if( type == LayoutTableHeaderGroup) { |
- return "THead"; |
- } else if( type == LayoutTableBodyGroup) { |
- return "TBody"; |
- } else if( type == LayoutTableFootGroup) { |
- return "TFoot"; |
- } else if( type == LayoutSpan) { |
- return "Span"; |
- } else if( type == LayoutQuote) { |
- return "Quote"; |
- } else if( type == LayoutNote) { |
- return "Note"; |
- } else if( type == LayoutReference) { |
- return "Reference"; |
- } else if( type == LayoutBibEntry) { |
- return "BibEntry"; |
- } else if( type == LayoutCode) { |
- return "Code"; |
- } else if( type == LayoutLink) { |
- return "Link"; |
- } else if( type == LayoutAnnot) { |
- return "Annot"; |
- } else if( type == LayoutRuby) { |
- return "Ruby"; |
- } else if( type == LayoutRubyBase) { |
- return "RB"; |
- } else if( type == LayoutRubyAnnot) { |
- return "RT"; |
- } else if( type == LayoutRubyPunc) { |
- return "RP"; |
- } else if( type == LayoutWarichu) { |
- return "Warichu"; |
- } else if( type == LayoutWarichuText) { |
- return "WT"; |
- } else if( type == LayoutWarichuPunc) { |
- return "WP"; |
- } else if( type == LayoutFigure) { |
- return "Figure"; |
- } else if( type == LayoutFormula) { |
- return "Formula"; |
- } else if( type == LayoutForm) { |
- return "Form"; |
- } |
- return name; |
+CFX_ByteStringC CPDF_LayoutElement::ConvertLayoutType(LayoutType type) { |
+ FX_BSTR name = ""; |
+ if (type == LayoutArifact) { |
+ return "Arifact"; |
+ } else if (type == LayoutDocument) { |
+ return "Document"; |
+ } else if (type == LayoutPart) { |
+ return "Part"; |
+ } else if (type == LayoutArt) { |
+ return "Art"; |
+ } else if (type == LayoutSect) { |
+ return "Sect"; |
+ } else if (type == LayoutDiv) { |
+ return "Div"; |
+ } else if (type == LayoutBlockQuote) { |
+ return "BlockQuote"; |
+ } else if (type == LayoutCaption) { |
+ return "Caption"; |
+ } else if (type == LayoutTOC) { |
+ return "TOC"; |
+ } else if (type == LayoutTOCI) { |
+ return "TOCI"; |
+ } else if (type == LayoutIndex) { |
+ return "Index"; |
+ } else if (type == LayoutNonStruct) { |
+ return "NonStruct"; |
+ } else if (type == LayoutPrivate) { |
+ return "Private"; |
+ } else if (type == LayoutParagraph) { |
+ return "P"; |
+ } else if (type == LayoutHeading) { |
+ return "H"; |
+ } else if (type == LayoutHeading1) { |
+ return "H1"; |
+ } else if (type == LayoutHeading2) { |
+ return "H2"; |
+ } else if (type == LayoutHeading3) { |
+ return "H3"; |
+ } else if (type == LayoutHeading4) { |
+ return "H4"; |
+ } else if (type == LayoutHeading5) { |
+ return "H5"; |
+ } else if (type == LayoutHeading6) { |
+ return "H6"; |
+ } else if (type == LayoutList) { |
+ return "L"; |
+ } else if (type == LayoutListItem) { |
+ return "LI"; |
+ } else if (type == LayoutListLabel) { |
+ return "Lbl"; |
+ } else if (type == LayoutListBody) { |
+ return "LBody"; |
+ } else if (type == LayoutTable) { |
+ return "Table"; |
+ } else if (type == LayoutTableRow) { |
+ return "TR"; |
+ } else if (type == LayoutTableHeaderCell) { |
+ return "TH"; |
+ } else if (type == LayoutTableDataCell) { |
+ return "TD"; |
+ } else if (type == LayoutTableHeaderGroup) { |
+ return "THead"; |
+ } else if (type == LayoutTableBodyGroup) { |
+ return "TBody"; |
+ } else if (type == LayoutTableFootGroup) { |
+ return "TFoot"; |
+ } else if (type == LayoutSpan) { |
+ return "Span"; |
+ } else if (type == LayoutQuote) { |
+ return "Quote"; |
+ } else if (type == LayoutNote) { |
+ return "Note"; |
+ } else if (type == LayoutReference) { |
+ return "Reference"; |
+ } else if (type == LayoutBibEntry) { |
+ return "BibEntry"; |
+ } else if (type == LayoutCode) { |
+ return "Code"; |
+ } else if (type == LayoutLink) { |
+ return "Link"; |
+ } else if (type == LayoutAnnot) { |
+ return "Annot"; |
+ } else if (type == LayoutRuby) { |
+ return "Ruby"; |
+ } else if (type == LayoutRubyBase) { |
+ return "RB"; |
+ } else if (type == LayoutRubyAnnot) { |
+ return "RT"; |
+ } else if (type == LayoutRubyPunc) { |
+ return "RP"; |
+ } else if (type == LayoutWarichu) { |
+ return "Warichu"; |
+ } else if (type == LayoutWarichuText) { |
+ return "WT"; |
+ } else if (type == LayoutWarichuPunc) { |
+ return "WP"; |
+ } else if (type == LayoutFigure) { |
+ return "Figure"; |
+ } else if (type == LayoutFormula) { |
+ return "Formula"; |
+ } else if (type == LayoutForm) { |
+ return "Form"; |
+ } |
+ return name; |
} |
-CFX_ByteStringC CPDF_LayoutElement::ConvertLayoutAttr(LayoutAttr attr) |
-{ |
- switch(attr) { |
- case LayoutArtifactType: |
- return "Type"; |
- case LayoutArtifactAttached: |
- return "Attached"; |
- case LayoutArtifactSubType: |
- return "Subtype"; |
- case LayoutPlacement: |
- return "Placement"; |
- case LayoutWritingMode: |
- return "WritingMode"; |
- case LayoutBackgroundColor: |
- return "BackgroundColor"; |
- case LayoutBorderColor: |
- return "BorderColor"; |
- case LayoutBorderStyle: |
- return "BorderStyle"; |
- case LayoutBorderThickness: |
- return "BorderThickness"; |
- case LayoutPadding: |
- return "Padding"; |
- case LayoutColor: |
- return "Color"; |
- case LayoutSpaceBefore: |
- return "SpaceBefore"; |
- case LayoutSpaceAfter: |
- return "SpaceAfter"; |
- case LayoutStartIndent: |
- return "StartIndent"; |
- case LayoutEndIndent: |
- return "EndIndent"; |
- case LayoutTextIndent: |
- return "TextIndent"; |
- case LayoutTextAlign: |
- return "TextAlign"; |
- case LayoutBBox: |
- return "BBox"; |
- case LayoutWidth: |
- return "Width"; |
- case LayoutHeight: |
- return "Height"; |
- case LayoutBlockAlign: |
- return "BlockAlign"; |
- case LayoutInlineAlign: |
- return "InlineAlign"; |
- case LayoutTBorderStyle: |
- return "TBorderStyle"; |
- case LayoutTPadding: |
- return "TPadding"; |
- case LayoutBaselineShift: |
- return "BaselineShift"; |
- case LayoutLineHeight: |
- return "LineHeight"; |
- case LayoutTextDecorationColor: |
- return "TextDecorationColor"; |
- case LayoutTextDecorationThickness: |
- return "TextDecorationThickness"; |
- case LayoutTextDecorationType: |
- return "TextDecorationType"; |
- case LayoutRubyAlign: |
- return "RubyAlign"; |
- case LayoutRubyPosition: |
- return "RubyPosition"; |
- case LayoutGlyphOrientationVertical: |
- return "GlyphOrientationVertical"; |
- case LayoutColumnCount: |
- return "ColumnCount"; |
- case LayoutColumnGap: |
- return "ColumnGap"; |
- case LayoutColumnWidths: |
- return "ColumnWidths"; |
- case LayoutListNumbering: |
- return "ListNumbering"; |
- case LayoutFieldRole: |
- return "Role"; |
- case LayoutFieldChecked: |
- return "checked"; |
- case LayoutFieldDesc: |
- return "Desc"; |
- case LayoutRowSpan: |
- return "RowSpan"; |
- case LayoutColSpan: |
- return "ColSpan"; |
- case LayoutTableHeaders: |
- return "Headers"; |
- case LayoutTableHeaderScope: |
- return "Scope"; |
- case LayoutTableSummary: |
- return "Summary"; |
- default: |
- return ""; |
- } |
+CFX_ByteStringC CPDF_LayoutElement::ConvertLayoutAttr(LayoutAttr attr) { |
+ switch (attr) { |
+ case LayoutArtifactType: |
+ return "Type"; |
+ case LayoutArtifactAttached: |
+ return "Attached"; |
+ case LayoutArtifactSubType: |
+ return "Subtype"; |
+ case LayoutPlacement: |
+ return "Placement"; |
+ case LayoutWritingMode: |
+ return "WritingMode"; |
+ case LayoutBackgroundColor: |
+ return "BackgroundColor"; |
+ case LayoutBorderColor: |
+ return "BorderColor"; |
+ case LayoutBorderStyle: |
+ return "BorderStyle"; |
+ case LayoutBorderThickness: |
+ return "BorderThickness"; |
+ case LayoutPadding: |
+ return "Padding"; |
+ case LayoutColor: |
+ return "Color"; |
+ case LayoutSpaceBefore: |
+ return "SpaceBefore"; |
+ case LayoutSpaceAfter: |
+ return "SpaceAfter"; |
+ case LayoutStartIndent: |
+ return "StartIndent"; |
+ case LayoutEndIndent: |
+ return "EndIndent"; |
+ case LayoutTextIndent: |
+ return "TextIndent"; |
+ case LayoutTextAlign: |
+ return "TextAlign"; |
+ case LayoutBBox: |
+ return "BBox"; |
+ case LayoutWidth: |
+ return "Width"; |
+ case LayoutHeight: |
+ return "Height"; |
+ case LayoutBlockAlign: |
+ return "BlockAlign"; |
+ case LayoutInlineAlign: |
+ return "InlineAlign"; |
+ case LayoutTBorderStyle: |
+ return "TBorderStyle"; |
+ case LayoutTPadding: |
+ return "TPadding"; |
+ case LayoutBaselineShift: |
+ return "BaselineShift"; |
+ case LayoutLineHeight: |
+ return "LineHeight"; |
+ case LayoutTextDecorationColor: |
+ return "TextDecorationColor"; |
+ case LayoutTextDecorationThickness: |
+ return "TextDecorationThickness"; |
+ case LayoutTextDecorationType: |
+ return "TextDecorationType"; |
+ case LayoutRubyAlign: |
+ return "RubyAlign"; |
+ case LayoutRubyPosition: |
+ return "RubyPosition"; |
+ case LayoutGlyphOrientationVertical: |
+ return "GlyphOrientationVertical"; |
+ case LayoutColumnCount: |
+ return "ColumnCount"; |
+ case LayoutColumnGap: |
+ return "ColumnGap"; |
+ case LayoutColumnWidths: |
+ return "ColumnWidths"; |
+ case LayoutListNumbering: |
+ return "ListNumbering"; |
+ case LayoutFieldRole: |
+ return "Role"; |
+ case LayoutFieldChecked: |
+ return "checked"; |
+ case LayoutFieldDesc: |
+ return "Desc"; |
+ case LayoutRowSpan: |
+ return "RowSpan"; |
+ case LayoutColSpan: |
+ return "ColSpan"; |
+ case LayoutTableHeaders: |
+ return "Headers"; |
+ case LayoutTableHeaderScope: |
+ return "Scope"; |
+ case LayoutTableSummary: |
+ return "Summary"; |
+ default: |
+ return ""; |
+ } |
} |
-LayoutEnum CPDF_LayoutElement::ConvertLayoutEnum(CFX_ByteStringC Enum) |
-{ |
- if(Enum == "Block") { |
- return LayoutBlock; |
- } else if (Enum == "Inline") { |
- return LayoutInline; |
- } else if (Enum == "Before") { |
- return LayoutBefore; |
- } else if (Enum == "Start") { |
- return LayoutStart; |
- } else if (Enum == "End") { |
- return LayoutEnd; |
- } else if (Enum == "LrTb") { |
- return LayoutLrTb; |
- } else if (Enum == "RlTb") { |
- return LayoutRlTb; |
- } else if (Enum == "TbRl") { |
- return LayoutTbRl; |
- } else if (Enum == "None") { |
- return LayoutNone; |
- } else if (Enum == "Hidden") { |
- return LayoutHidden; |
- } else if (Enum == "Dotted") { |
- return LayoutDotted; |
- } else if (Enum == "Dashed") { |
- return LayoutDashed; |
- } else if (Enum == "Solid") { |
- return LayoutSolid; |
- } else if (Enum == "Double") { |
- return LayoutDouble; |
- } else if (Enum == "Groove") { |
- return LayoutGroove; |
- } else if (Enum == "Ridge") { |
- return LayoutRidge; |
- } else if (Enum == "Inset") { |
- return LayoutInset; |
- } else if (Enum == "Outset") { |
- return LayoutOutset; |
- } else if (Enum == "Normal") { |
- return LayoutNormal; |
- } else if (Enum == "Auto") { |
- return LayoutAuto; |
- } else if (Enum == "Center") { |
- return LayoutCenter; |
- } else if (Enum == "Justify") { |
- return LayoutJustify; |
- } else if (Enum == "Middle") { |
- return LayoutMiddle; |
- } else if (Enum == "Underline") { |
- return LayoutUnderline; |
- } else if (Enum == "Overline") { |
- return LayoutOverline; |
- } else if (Enum == "LineThrough") { |
- return LayoutLineThrough; |
- } else if (Enum == "Distribute") { |
- return LayoutDistribute; |
- } else if (Enum == "Disc") { |
- return LayoutDisc; |
- } else if (Enum == "Circle") { |
- return LayoutCircle; |
- } else if (Enum == "Square") { |
- return LayoutSquare; |
- } else if (Enum == "Decimal") { |
- return LayoutDecimal; |
- } else if (Enum == "UpperRoman") { |
- return LayoutUpperRoman; |
- } else if (Enum == "LowerRoman") { |
- return LayoutLowerRoman; |
- } else if (Enum == "UpperAlpha") { |
- return LayoutUpperAlpha; |
- } else if (Enum == "LowerAlpha") { |
- return LayoutLowerAlpha; |
- } else if (Enum == "rb") { |
- return LayoutRB; |
- } else if (Enum == "cb") { |
- return LayoutCB; |
- } else if (Enum == "pb") { |
- return LayoutPB; |
- } else if (Enum == "tv") { |
- return LayoutTV; |
- } else if (Enum == "on") { |
- return LayoutOn; |
- } else if (Enum == "off") { |
- return LayoutOff; |
- } else if (Enum == "neutral") { |
- return LayoutNeutral; |
- } else if (Enum == "Row") { |
- return LayoutRow; |
- } else if (Enum == "Column") { |
- return LayoutColumn; |
- } else if (Enum == "Both") { |
- return LayoutBoth; |
- } else if (Enum == "Left") { |
- return LayoutLeft; |
- } else if (Enum == "Top") { |
- return LayoutTop; |
- } else if (Enum == "Bottom") { |
- return LayoutBottom; |
- } else if (Enum == "Right") { |
- return LayoutRight; |
- } else if (Enum == "Pagination") { |
- return LayoutPagination; |
- } else if (Enum == "Layout") { |
- return LayoutLayout; |
- } else if (Enum == "Page") { |
- return LayoutPage; |
- } else if (Enum == "Background") { |
- return LayoutBackground; |
- } else if (Enum == "Header") { |
- return LayoutHeader; |
- } else if (Enum == "Footer") { |
- return LayoutFooter; |
- } else if (Enum == "Watermark") { |
- return LayoutWatermark; |
- } else { |
- return LayoutInvalid; |
- } |
+LayoutEnum CPDF_LayoutElement::ConvertLayoutEnum(CFX_ByteStringC Enum) { |
+ if (Enum == "Block") { |
+ return LayoutBlock; |
+ } else if (Enum == "Inline") { |
+ return LayoutInline; |
+ } else if (Enum == "Before") { |
+ return LayoutBefore; |
+ } else if (Enum == "Start") { |
+ return LayoutStart; |
+ } else if (Enum == "End") { |
+ return LayoutEnd; |
+ } else if (Enum == "LrTb") { |
+ return LayoutLrTb; |
+ } else if (Enum == "RlTb") { |
+ return LayoutRlTb; |
+ } else if (Enum == "TbRl") { |
+ return LayoutTbRl; |
+ } else if (Enum == "None") { |
+ return LayoutNone; |
+ } else if (Enum == "Hidden") { |
+ return LayoutHidden; |
+ } else if (Enum == "Dotted") { |
+ return LayoutDotted; |
+ } else if (Enum == "Dashed") { |
+ return LayoutDashed; |
+ } else if (Enum == "Solid") { |
+ return LayoutSolid; |
+ } else if (Enum == "Double") { |
+ return LayoutDouble; |
+ } else if (Enum == "Groove") { |
+ return LayoutGroove; |
+ } else if (Enum == "Ridge") { |
+ return LayoutRidge; |
+ } else if (Enum == "Inset") { |
+ return LayoutInset; |
+ } else if (Enum == "Outset") { |
+ return LayoutOutset; |
+ } else if (Enum == "Normal") { |
+ return LayoutNormal; |
+ } else if (Enum == "Auto") { |
+ return LayoutAuto; |
+ } else if (Enum == "Center") { |
+ return LayoutCenter; |
+ } else if (Enum == "Justify") { |
+ return LayoutJustify; |
+ } else if (Enum == "Middle") { |
+ return LayoutMiddle; |
+ } else if (Enum == "Underline") { |
+ return LayoutUnderline; |
+ } else if (Enum == "Overline") { |
+ return LayoutOverline; |
+ } else if (Enum == "LineThrough") { |
+ return LayoutLineThrough; |
+ } else if (Enum == "Distribute") { |
+ return LayoutDistribute; |
+ } else if (Enum == "Disc") { |
+ return LayoutDisc; |
+ } else if (Enum == "Circle") { |
+ return LayoutCircle; |
+ } else if (Enum == "Square") { |
+ return LayoutSquare; |
+ } else if (Enum == "Decimal") { |
+ return LayoutDecimal; |
+ } else if (Enum == "UpperRoman") { |
+ return LayoutUpperRoman; |
+ } else if (Enum == "LowerRoman") { |
+ return LayoutLowerRoman; |
+ } else if (Enum == "UpperAlpha") { |
+ return LayoutUpperAlpha; |
+ } else if (Enum == "LowerAlpha") { |
+ return LayoutLowerAlpha; |
+ } else if (Enum == "rb") { |
+ return LayoutRB; |
+ } else if (Enum == "cb") { |
+ return LayoutCB; |
+ } else if (Enum == "pb") { |
+ return LayoutPB; |
+ } else if (Enum == "tv") { |
+ return LayoutTV; |
+ } else if (Enum == "on") { |
+ return LayoutOn; |
+ } else if (Enum == "off") { |
+ return LayoutOff; |
+ } else if (Enum == "neutral") { |
+ return LayoutNeutral; |
+ } else if (Enum == "Row") { |
+ return LayoutRow; |
+ } else if (Enum == "Column") { |
+ return LayoutColumn; |
+ } else if (Enum == "Both") { |
+ return LayoutBoth; |
+ } else if (Enum == "Left") { |
+ return LayoutLeft; |
+ } else if (Enum == "Top") { |
+ return LayoutTop; |
+ } else if (Enum == "Bottom") { |
+ return LayoutBottom; |
+ } else if (Enum == "Right") { |
+ return LayoutRight; |
+ } else if (Enum == "Pagination") { |
+ return LayoutPagination; |
+ } else if (Enum == "Layout") { |
+ return LayoutLayout; |
+ } else if (Enum == "Page") { |
+ return LayoutPage; |
+ } else if (Enum == "Background") { |
+ return LayoutBackground; |
+ } else if (Enum == "Header") { |
+ return LayoutHeader; |
+ } else if (Enum == "Footer") { |
+ return LayoutFooter; |
+ } else if (Enum == "Watermark") { |
+ return LayoutWatermark; |
+ } else { |
+ return LayoutInvalid; |
+ } |
} |
-LayoutType CPDF_LayoutElement::GetType() |
-{ |
- if(!m_pTaggedElement) { |
- return LayoutUnknown; |
- } |
- CFX_ByteString name = m_pTaggedElement->GetType(); |
- return this->ConvertLayoutType(name); |
+LayoutType CPDF_LayoutElement::GetType() { |
+ if (!m_pTaggedElement) { |
+ return LayoutUnknown; |
+ } |
+ CFX_ByteString name = m_pTaggedElement->GetType(); |
+ return this->ConvertLayoutType(name); |
} |
-int CPDF_LayoutElement::CountAttrValues(LayoutAttr attr_type) |
-{ |
- if(!m_pTaggedElement) { |
- return 0; |
- } |
- CPDF_Object* pObj = m_pTaggedElement->GetAttr(GetAttrOwner(attr_type), ConvertLayoutAttr(attr_type), IsInheritable(attr_type)); |
- if(pObj) { |
- return 1; |
- } else { |
- return 0; |
- } |
+int CPDF_LayoutElement::CountAttrValues(LayoutAttr attr_type) { |
+ if (!m_pTaggedElement) { |
+ return 0; |
+ } |
+ CPDF_Object* pObj = m_pTaggedElement->GetAttr(GetAttrOwner(attr_type), |
+ ConvertLayoutAttr(attr_type), |
+ IsInheritable(attr_type)); |
+ if (pObj) { |
+ return 1; |
+ } else { |
+ return 0; |
+ } |
} |
-LayoutEnum CPDF_LayoutElement::GetEnumAttr(LayoutAttr attr_type, int index) |
-{ |
- if(!m_pTaggedElement) { |
- return LayoutInvalid; |
- } |
- CFX_ByteStringC owner = GetAttrOwner(attr_type); |
- CFX_ByteStringC default_value = GetDefaultNameValue(attr_type); |
- CFX_ByteStringC AttrName = ConvertLayoutAttr(attr_type); |
- CFX_ByteString AttrValue = m_pTaggedElement->GetName(owner, AttrName, default_value, IsInheritable(attr_type), index); |
- return ConvertLayoutEnum(AttrValue); |
+LayoutEnum CPDF_LayoutElement::GetEnumAttr(LayoutAttr attr_type, int index) { |
+ if (!m_pTaggedElement) { |
+ return LayoutInvalid; |
+ } |
+ CFX_ByteStringC owner = GetAttrOwner(attr_type); |
+ CFX_ByteStringC default_value = GetDefaultNameValue(attr_type); |
+ CFX_ByteStringC AttrName = ConvertLayoutAttr(attr_type); |
+ CFX_ByteString AttrValue = m_pTaggedElement->GetName( |
+ owner, AttrName, default_value, IsInheritable(attr_type), index); |
+ return ConvertLayoutEnum(AttrValue); |
} |
-CFX_ByteStringC CPDF_LayoutElement::GetAttrOwner(LayoutAttr attr_type) |
-{ |
- switch(attr_type) { |
- case LayoutListNumbering: |
- return "List"; |
- case LayoutFieldRole: |
- case LayoutFieldChecked : |
- case LayoutFieldDesc: |
- return "PrintField"; |
- case LayoutRowSpan: |
- case LayoutColSpan: |
- case LayoutTableHeaders: |
- case LayoutTableHeaderScope: |
- case LayoutTableSummary: |
- return "Table"; |
- default: |
- return "Layout"; |
- } |
+CFX_ByteStringC CPDF_LayoutElement::GetAttrOwner(LayoutAttr attr_type) { |
+ switch (attr_type) { |
+ case LayoutListNumbering: |
+ return "List"; |
+ case LayoutFieldRole: |
+ case LayoutFieldChecked: |
+ case LayoutFieldDesc: |
+ return "PrintField"; |
+ case LayoutRowSpan: |
+ case LayoutColSpan: |
+ case LayoutTableHeaders: |
+ case LayoutTableHeaderScope: |
+ case LayoutTableSummary: |
+ return "Table"; |
+ default: |
+ return "Layout"; |
+ } |
} |
-FX_FLOAT CPDF_LayoutElement::GetNumberAttr(LayoutAttr attr_type, int index) |
-{ |
- if(!m_pTaggedElement) { |
- return 0; |
- } |
- CFX_ByteStringC owner = GetAttrOwner(attr_type); |
- FX_FLOAT default_value = GetDefaultFloatValue(attr_type); |
- CFX_ByteStringC AttrName = ConvertLayoutAttr(attr_type); |
- FX_FLOAT f = m_pTaggedElement->GetNumber(owner, AttrName, default_value, IsInheritable(attr_type), index); |
- if(attr_type == LayoutWidth && !f) { |
- f = m_pTaggedElement->GetNumber("Table", AttrName, default_value, IsInheritable(attr_type), index); |
- } |
- return f; |
+FX_FLOAT CPDF_LayoutElement::GetNumberAttr(LayoutAttr attr_type, int index) { |
+ if (!m_pTaggedElement) { |
+ return 0; |
+ } |
+ CFX_ByteStringC owner = GetAttrOwner(attr_type); |
+ FX_FLOAT default_value = GetDefaultFloatValue(attr_type); |
+ CFX_ByteStringC AttrName = ConvertLayoutAttr(attr_type); |
+ FX_FLOAT f = m_pTaggedElement->GetNumber( |
+ owner, AttrName, default_value, IsInheritable(attr_type), index); |
+ if (attr_type == LayoutWidth && !f) { |
+ f = m_pTaggedElement->GetNumber( |
+ "Table", AttrName, default_value, IsInheritable(attr_type), index); |
+ } |
+ return f; |
} |
-FX_COLORREF CPDF_LayoutElement::GetColorAttr(LayoutAttr attr_type, int index) |
-{ |
- if(!m_pTaggedElement) { |
- return 0; |
- } |
- CFX_ByteStringC owner = GetAttrOwner(attr_type); |
- FX_COLORREF default_value = GetDefaultColorValue(attr_type); |
- CFX_ByteStringC AttrName = ConvertLayoutAttr(attr_type); |
- FX_ARGB f = m_pTaggedElement->GetColor(owner, AttrName, default_value, IsInheritable(attr_type), index); |
- return f; |
+FX_COLORREF CPDF_LayoutElement::GetColorAttr(LayoutAttr attr_type, int index) { |
+ if (!m_pTaggedElement) { |
+ return 0; |
+ } |
+ CFX_ByteStringC owner = GetAttrOwner(attr_type); |
+ FX_COLORREF default_value = GetDefaultColorValue(attr_type); |
+ CFX_ByteStringC AttrName = ConvertLayoutAttr(attr_type); |
+ FX_ARGB f = m_pTaggedElement->GetColor( |
+ owner, AttrName, default_value, IsInheritable(attr_type), index); |
+ return f; |
} |
-FX_FLOAT CPDF_LayoutElement::GetDefaultFloatValue(LayoutAttr attr_type) |
-{ |
- switch(attr_type) { |
- case LayoutColumnCount: |
- return 1; |
- case LayoutRowSpan: |
- return 1; |
- case LayoutColSpan: |
- return 1; |
- default: |
- return 0; |
- } |
+FX_FLOAT CPDF_LayoutElement::GetDefaultFloatValue(LayoutAttr attr_type) { |
+ switch (attr_type) { |
+ case LayoutColumnCount: |
+ return 1; |
+ case LayoutRowSpan: |
+ return 1; |
+ case LayoutColSpan: |
+ return 1; |
+ default: |
+ return 0; |
+ } |
} |
-FX_COLORREF CPDF_LayoutElement::GetDefaultColorValue(LayoutAttr attr_type) |
-{ |
- return -1; |
+FX_COLORREF CPDF_LayoutElement::GetDefaultColorValue(LayoutAttr attr_type) { |
+ return -1; |
} |
-CFX_ByteStringC CPDF_LayoutElement::GetDefaultNameValue(LayoutAttr attr_type) |
-{ |
- switch(attr_type) { |
- case LayoutPlacement: |
- return "Inline"; |
- case LayoutWritingMode: |
- return "LrTb"; |
- case LayoutBorderStyle: |
- return "None"; |
- case LayoutTextAlign: |
- return "Start"; |
- case LayoutBlockAlign: |
- return "Before"; |
- case LayoutInlineAlign: |
- return "Start"; |
- case LayoutTBorderStyle: |
- return "None"; |
- case LayoutTextDecorationType: |
- return "None"; |
- case LayoutRubyAlign: |
- return "Distribute"; |
- case LayoutRubyPosition: |
- return "Before"; |
- case LayoutGlyphOrientationVertical: |
- return "Auto"; |
- case LayoutListNumbering: |
- return "None"; |
- case LayoutFieldRole: |
- return "None"; |
- default: |
- return ""; |
- } |
+CFX_ByteStringC CPDF_LayoutElement::GetDefaultNameValue(LayoutAttr attr_type) { |
+ switch (attr_type) { |
+ case LayoutPlacement: |
+ return "Inline"; |
+ case LayoutWritingMode: |
+ return "LrTb"; |
+ case LayoutBorderStyle: |
+ return "None"; |
+ case LayoutTextAlign: |
+ return "Start"; |
+ case LayoutBlockAlign: |
+ return "Before"; |
+ case LayoutInlineAlign: |
+ return "Start"; |
+ case LayoutTBorderStyle: |
+ return "None"; |
+ case LayoutTextDecorationType: |
+ return "None"; |
+ case LayoutRubyAlign: |
+ return "Distribute"; |
+ case LayoutRubyPosition: |
+ return "Before"; |
+ case LayoutGlyphOrientationVertical: |
+ return "Auto"; |
+ case LayoutListNumbering: |
+ return "None"; |
+ case LayoutFieldRole: |
+ return "None"; |
+ default: |
+ return ""; |
+ } |
} |
-FX_BOOL CPDF_LayoutElement::IsInheritable(LayoutAttr type) |
-{ |
- switch(type) { |
- case LayoutWritingMode: |
- case LayoutTextAlign: |
- case LayoutBlockAlign: |
- case LayoutInlineAlign: |
- case LayoutLineHeight: |
- case LayoutGlyphOrientationVertical: |
- case LayoutRubyAlign: |
- case LayoutRubyPosition: |
- case LayoutBorderThickness: |
- case LayoutStartIndent: |
- case LayoutEndIndent: |
- case LayoutTextIndent: |
- case LayoutTPadding: |
- case LayoutTextDecorationThickness: |
- case LayoutBorderColor: |
- case LayoutColor: |
- case LayoutTextDecorationColor: |
- return TRUE; |
- default: |
- return FALSE; |
- } |
+FX_BOOL CPDF_LayoutElement::IsInheritable(LayoutAttr type) { |
+ switch (type) { |
+ case LayoutWritingMode: |
+ case LayoutTextAlign: |
+ case LayoutBlockAlign: |
+ case LayoutInlineAlign: |
+ case LayoutLineHeight: |
+ case LayoutGlyphOrientationVertical: |
+ case LayoutRubyAlign: |
+ case LayoutRubyPosition: |
+ case LayoutBorderThickness: |
+ case LayoutStartIndent: |
+ case LayoutEndIndent: |
+ case LayoutTextIndent: |
+ case LayoutTPadding: |
+ case LayoutTextDecorationThickness: |
+ case LayoutBorderColor: |
+ case LayoutColor: |
+ case LayoutTextDecorationColor: |
+ return TRUE; |
+ default: |
+ return FALSE; |
+ } |
} |
-int CPDF_LayoutElement::CountChildren() |
-{ |
- return m_ChildArray.GetSize(); |
+int CPDF_LayoutElement::CountChildren() { |
+ return m_ChildArray.GetSize(); |
} |
-IPDF_LayoutElement* CPDF_LayoutElement::GetChild(int index) |
-{ |
- return (IPDF_LayoutElement*)m_ChildArray.GetAt(index); |
+IPDF_LayoutElement* CPDF_LayoutElement::GetChild(int index) { |
+ return (IPDF_LayoutElement*)m_ChildArray.GetAt(index); |
} |
-IPDF_LayoutElement* CPDF_LayoutElement::GetParent() |
-{ |
- return m_pParentElement; |
+IPDF_LayoutElement* CPDF_LayoutElement::GetParent() { |
+ return m_pParentElement; |
} |
-int CPDF_LayoutElement::CountObjects() |
-{ |
- if(m_pTaggedElement == NULL) { |
- return 0; |
- } |
- CFX_PtrArray* pObj = &m_ObjArray; |
- int size = pObj->GetSize(); |
- return size; |
+int CPDF_LayoutElement::CountObjects() { |
+ if (m_pTaggedElement == NULL) { |
+ return 0; |
+ } |
+ CFX_PtrArray* pObj = &m_ObjArray; |
+ int size = pObj->GetSize(); |
+ return size; |
} |
-CPDF_PageObject* CPDF_LayoutElement::GetObject(int index) |
-{ |
- if(m_pTaggedElement == NULL) { |
- return NULL; |
- } |
- CFX_PtrArray *pObj = &m_ObjArray; |
- int size = pObj->GetSize(); |
- if(index < size) { |
- return (CPDF_PageObject*)pObj->GetAt(index); |
- } |
+CPDF_PageObject* CPDF_LayoutElement::GetObject(int index) { |
+ if (m_pTaggedElement == NULL) { |
return NULL; |
+ } |
+ CFX_PtrArray* pObj = &m_ObjArray; |
+ int size = pObj->GetSize(); |
+ if (index < size) { |
+ return (CPDF_PageObject*)pObj->GetAt(index); |
+ } |
+ return NULL; |
} |
-FX_BOOL CPDF_LayoutElement::AddObject(CPDF_PageObject* pObj) |
-{ |
- return m_ObjArray.Add(pObj); |
+FX_BOOL CPDF_LayoutElement::AddObject(CPDF_PageObject* pObj) { |
+ return m_ObjArray.Add(pObj); |
} |
-IPDF_LayoutProvider* IPDF_LayoutProvider::Create_LayoutProvider_TaggedPDF(CPDF_PageObjects* pPage) |
-{ |
- if(pPage == NULL) { |
- return NULL; |
- } |
- CPDF_LayoutProvider_TaggedPDF* pProvider = FX_NEW CPDF_LayoutProvider_TaggedPDF; |
- if (!pProvider) { |
- return NULL; |
- } |
- pProvider->Init(pPage); |
- return pProvider; |
+IPDF_LayoutProvider* IPDF_LayoutProvider::Create_LayoutProvider_TaggedPDF( |
+ CPDF_PageObjects* pPage) { |
+ if (pPage == NULL) { |
+ return NULL; |
+ } |
+ CPDF_LayoutProvider_TaggedPDF* pProvider = |
+ FX_NEW CPDF_LayoutProvider_TaggedPDF; |
+ if (!pProvider) { |
+ return NULL; |
+ } |
+ pProvider->Init(pPage); |
+ return pProvider; |
} |
-CPDF_LayoutProvider_TaggedPDF::CPDF_LayoutProvider_TaggedPDF() |
-{ |
- m_pPause = NULL; |
- m_pRoot = NULL; |
- m_pPageTree = NULL; |
- m_pCurTaggedElement = NULL; |
+CPDF_LayoutProvider_TaggedPDF::CPDF_LayoutProvider_TaggedPDF() { |
+ m_pPause = NULL; |
+ m_pRoot = NULL; |
+ m_pPageTree = NULL; |
+ m_pCurTaggedElement = NULL; |
} |
-CPDF_LayoutProvider_TaggedPDF::~CPDF_LayoutProvider_TaggedPDF() |
-{ |
- m_pCurTaggedElement = NULL; |
- m_pPause = NULL; |
- if(m_pRoot) { |
- delete m_pRoot; |
- } |
- m_pRoot = NULL; |
- if(m_pPageTree) { |
- delete m_pPageTree; |
- } |
- m_pPageTree = NULL; |
+CPDF_LayoutProvider_TaggedPDF::~CPDF_LayoutProvider_TaggedPDF() { |
+ m_pCurTaggedElement = NULL; |
+ m_pPause = NULL; |
+ if (m_pRoot) { |
+ delete m_pRoot; |
+ } |
+ m_pRoot = NULL; |
+ if (m_pPageTree) { |
+ delete m_pPageTree; |
+ } |
+ m_pPageTree = NULL; |
} |
-void CPDF_LayoutProvider_TaggedPDF::ProcessElement(CPDF_LayoutElement*pParent, CPDF_StructElement* pTaggedElement) |
-{ |
- if(!pTaggedElement) { |
- return; |
- } |
- if(!pParent) { |
- m_Status = LayoutError; |
- return; |
- } |
- CPDF_LayoutElement* pElement = FX_NEW CPDF_LayoutElement; |
- if (!pElement) { |
- m_Status = LayoutError; |
- return; |
- } |
- pElement->m_pParentElement = pParent; |
- pElement->m_pTaggedElement = pTaggedElement; |
- pParent->m_ChildArray.Add(pElement); |
- int count = pTaggedElement->CountKids(); |
- for(int i = 0; i < count; i++) { |
- CPDF_StructKid Kid = pTaggedElement->GetKid(i); |
- switch(Kid.m_Type) { |
- case CPDF_StructKid::Element: { |
- ProcessElement(pElement, Kid.m_Element.m_pElement); |
- if(m_Status != LayoutReady) { |
- return ; |
- } |
- } |
- break; |
- case CPDF_StructKid::PageContent: { |
- int count = m_pPage->CountObjects(); |
- FX_POSITION pos = m_pPage->GetFirstObjectPosition(); |
- if(!pos) { |
- m_Status = LayoutError; |
- return ; |
- } |
- while (pos) { |
- CPDF_PageObject* pObj = m_pPage->GetNextObject(pos); |
- int pbjMCID = pObj->m_ContentMark.GetMCID(); |
- if((FX_DWORD)(pObj->m_ContentMark.GetMCID()) == Kid.m_PageContent.m_ContentId) { |
- pElement->AddObject(pObj); |
- } |
- } |
- } |
- break; |
- case CPDF_StructKid::StreamContent: |
- case CPDF_StructKid::Object: |
- default: |
- break; |
+void CPDF_LayoutProvider_TaggedPDF::ProcessElement( |
+ CPDF_LayoutElement* pParent, |
+ CPDF_StructElement* pTaggedElement) { |
+ if (!pTaggedElement) { |
+ return; |
+ } |
+ if (!pParent) { |
+ m_Status = LayoutError; |
+ return; |
+ } |
+ CPDF_LayoutElement* pElement = FX_NEW CPDF_LayoutElement; |
+ if (!pElement) { |
+ m_Status = LayoutError; |
+ return; |
+ } |
+ pElement->m_pParentElement = pParent; |
+ pElement->m_pTaggedElement = pTaggedElement; |
+ pParent->m_ChildArray.Add(pElement); |
+ int count = pTaggedElement->CountKids(); |
+ for (int i = 0; i < count; i++) { |
+ CPDF_StructKid Kid = pTaggedElement->GetKid(i); |
+ switch (Kid.m_Type) { |
+ case CPDF_StructKid::Element: { |
+ ProcessElement(pElement, Kid.m_Element.m_pElement); |
+ if (m_Status != LayoutReady) { |
+ return; |
} |
- } |
-} |
-LayoutStatus CPDF_LayoutProvider_TaggedPDF::StartLoad(IFX_Pause* pPause) |
-{ |
- m_pPause = pPause; |
- if(m_pPage->m_pDocument && m_pPage->m_pFormDict) { |
- m_pPageTree = CPDF_StructTree::LoadPage(m_pPage->m_pDocument, m_pPage->m_pFormDict); |
- } |
- if(!m_pPageTree) { |
- m_Status = LayoutError; |
- return LayoutError; |
- } |
- int count = m_pPageTree->CountTopElements(); |
- if(count == 0) { |
- m_Status = LayoutError; |
- return LayoutError; |
- } |
- m_pRoot = FX_NEW CPDF_LayoutElement; |
- if (!m_pRoot) { |
- m_Status = LayoutError; |
- return LayoutError; |
- } |
- for(int i = 0; i < count; i++) { |
- CPDF_StructElement* pElement = m_pPageTree->GetTopElement(i); |
- if(pElement) { |
- ProcessElement(m_pRoot, pElement); |
- if(m_Status != LayoutReady) { |
- return m_Status; |
- } |
+ } break; |
+ case CPDF_StructKid::PageContent: { |
+ int count = m_pPage->CountObjects(); |
+ FX_POSITION pos = m_pPage->GetFirstObjectPosition(); |
+ if (!pos) { |
+ m_Status = LayoutError; |
+ return; |
} |
- } |
- m_pCurTaggedElement = NULL; |
- m_Status = LayoutFinished; |
- return LayoutFinished; |
-} |
-LayoutStatus CPDF_LayoutProvider_TaggedPDF::Continue() |
-{ |
- if(!m_pCurTaggedElement) { |
- return LayoutError; |
- } |
- if(m_Status != LayoutToBeContinued) { |
- return LayoutError; |
- } |
- m_Status = LayoutReady; |
- int count = m_pPageTree->CountTopElements(); |
- for(int i = 0; i < count; i++) { |
- CPDF_StructElement* pElement = m_pPageTree->GetTopElement(i); |
- if(pElement) { |
- ProcessElement(m_pRoot, pElement); |
- if(m_Status != LayoutReady) { |
- return m_Status; |
- } |
+ while (pos) { |
+ CPDF_PageObject* pObj = m_pPage->GetNextObject(pos); |
+ int pbjMCID = pObj->m_ContentMark.GetMCID(); |
+ if ((FX_DWORD)(pObj->m_ContentMark.GetMCID()) == |
+ Kid.m_PageContent.m_ContentId) { |
+ pElement->AddObject(pObj); |
+ } |
} |
+ } break; |
+ case CPDF_StructKid::StreamContent: |
+ case CPDF_StructKid::Object: |
+ default: |
+ break; |
} |
- m_pCurTaggedElement = NULL; |
- m_Status = LayoutFinished; |
- return LayoutFinished; |
+ } |
} |
-int CPDF_LayoutProvider_TaggedPDF::GetPosition() |
-{ |
- if(m_TopElementIndex == 0) { |
- return 0; |
- } |
- int count = m_pPageTree->CountTopElements(); |
- return m_TopElementIndex / count * 100; |
+LayoutStatus CPDF_LayoutProvider_TaggedPDF::StartLoad(IFX_Pause* pPause) { |
+ m_pPause = pPause; |
+ if (m_pPage->m_pDocument && m_pPage->m_pFormDict) { |
+ m_pPageTree = |
+ CPDF_StructTree::LoadPage(m_pPage->m_pDocument, m_pPage->m_pFormDict); |
+ } |
+ if (!m_pPageTree) { |
+ m_Status = LayoutError; |
+ return LayoutError; |
+ } |
+ int count = m_pPageTree->CountTopElements(); |
+ if (count == 0) { |
+ m_Status = LayoutError; |
+ return LayoutError; |
+ } |
+ m_pRoot = FX_NEW CPDF_LayoutElement; |
+ if (!m_pRoot) { |
+ m_Status = LayoutError; |
+ return LayoutError; |
+ } |
+ for (int i = 0; i < count; i++) { |
+ CPDF_StructElement* pElement = m_pPageTree->GetTopElement(i); |
+ if (pElement) { |
+ ProcessElement(m_pRoot, pElement); |
+ if (m_Status != LayoutReady) { |
+ return m_Status; |
+ } |
+ } |
+ } |
+ m_pCurTaggedElement = NULL; |
+ m_Status = LayoutFinished; |
+ return LayoutFinished; |
+} |
+LayoutStatus CPDF_LayoutProvider_TaggedPDF::Continue() { |
+ if (!m_pCurTaggedElement) { |
+ return LayoutError; |
+ } |
+ if (m_Status != LayoutToBeContinued) { |
+ return LayoutError; |
+ } |
+ m_Status = LayoutReady; |
+ int count = m_pPageTree->CountTopElements(); |
+ for (int i = 0; i < count; i++) { |
+ CPDF_StructElement* pElement = m_pPageTree->GetTopElement(i); |
+ if (pElement) { |
+ ProcessElement(m_pRoot, pElement); |
+ if (m_Status != LayoutReady) { |
+ return m_Status; |
+ } |
+ } |
+ } |
+ m_pCurTaggedElement = NULL; |
+ m_Status = LayoutFinished; |
+ return LayoutFinished; |
+} |
+int CPDF_LayoutProvider_TaggedPDF::GetPosition() { |
+ if (m_TopElementIndex == 0) { |
+ return 0; |
+ } |
+ int count = m_pPageTree->CountTopElements(); |
+ return m_TopElementIndex / count * 100; |
} |