| Index: core/include/reflow/fpdf_layout.h
|
| diff --git a/core/include/reflow/fpdf_layout.h b/core/include/reflow/fpdf_layout.h
|
| index fc01ba30c88ad6f0a14f9fac911ae35ea48fee97..63b52f501b1cf2866d6a86db27919f76a60925eb 100644
|
| --- a/core/include/reflow/fpdf_layout.h
|
| +++ b/core/include/reflow/fpdf_layout.h
|
| @@ -1,7 +1,7 @@
|
| // 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
|
|
|
| #ifndef _FPDFAPI_LAYOUT_H_
|
| @@ -10,271 +10,266 @@ class IPDF_LayoutElement;
|
| class IPDF_LayoutProcessor;
|
| class IPDF_LayoutProvider;
|
| typedef enum {
|
| - LayoutUnknown,
|
| - LayoutArifact,
|
| - LayoutDocument,
|
| - LayoutPart,
|
| - LayoutArt,
|
| - LayoutSect,
|
| - LayoutDiv,
|
| - LayoutBlockQuote,
|
| - LayoutCaption,
|
| - LayoutTOC,
|
| - LayoutTOCI,
|
| - LayoutIndex,
|
| - LayoutNonStruct,
|
| - LayoutPrivate,
|
| - LayoutParagraph,
|
| - LayoutHeading,
|
| - LayoutHeading1,
|
| - LayoutHeading2,
|
| - LayoutHeading3,
|
| - LayoutHeading4,
|
| - LayoutHeading5,
|
| - LayoutHeading6,
|
| - LayoutList,
|
| - LayoutListItem,
|
| - LayoutListLabel,
|
| - LayoutListBody,
|
| - LayoutTable,
|
| - LayoutTableRow,
|
| - LayoutTableHeaderCell,
|
| - LayoutTableDataCell,
|
| - LayoutTableHeaderGroup,
|
| - LayoutTableBodyGroup,
|
| - LayoutTableFootGroup,
|
| - LayoutSpan,
|
| - LayoutQuote,
|
| - LayoutNote,
|
| - LayoutReference,
|
| - LayoutBibEntry,
|
| - LayoutCode,
|
| - LayoutLink,
|
| - LayoutAnnot,
|
| - LayoutRuby,
|
| - LayoutRubyBase,
|
| - LayoutRubyAnnot,
|
| - LayoutRubyPunc,
|
| - LayoutWarichu,
|
| - LayoutWarichuText,
|
| - LayoutWarichuPunc,
|
| - LayoutFigure,
|
| - LayoutFormula,
|
| - LayoutForm,
|
| + LayoutUnknown,
|
| + LayoutArifact,
|
| + LayoutDocument,
|
| + LayoutPart,
|
| + LayoutArt,
|
| + LayoutSect,
|
| + LayoutDiv,
|
| + LayoutBlockQuote,
|
| + LayoutCaption,
|
| + LayoutTOC,
|
| + LayoutTOCI,
|
| + LayoutIndex,
|
| + LayoutNonStruct,
|
| + LayoutPrivate,
|
| + LayoutParagraph,
|
| + LayoutHeading,
|
| + LayoutHeading1,
|
| + LayoutHeading2,
|
| + LayoutHeading3,
|
| + LayoutHeading4,
|
| + LayoutHeading5,
|
| + LayoutHeading6,
|
| + LayoutList,
|
| + LayoutListItem,
|
| + LayoutListLabel,
|
| + LayoutListBody,
|
| + LayoutTable,
|
| + LayoutTableRow,
|
| + LayoutTableHeaderCell,
|
| + LayoutTableDataCell,
|
| + LayoutTableHeaderGroup,
|
| + LayoutTableBodyGroup,
|
| + LayoutTableFootGroup,
|
| + LayoutSpan,
|
| + LayoutQuote,
|
| + LayoutNote,
|
| + LayoutReference,
|
| + LayoutBibEntry,
|
| + LayoutCode,
|
| + LayoutLink,
|
| + LayoutAnnot,
|
| + LayoutRuby,
|
| + LayoutRubyBase,
|
| + LayoutRubyAnnot,
|
| + LayoutRubyPunc,
|
| + LayoutWarichu,
|
| + LayoutWarichuText,
|
| + LayoutWarichuPunc,
|
| + LayoutFigure,
|
| + LayoutFormula,
|
| + LayoutForm,
|
| } LayoutType;
|
| typedef enum {
|
| - LayoutArtifactType,
|
| - LayoutArtifactAttached,
|
| - LayoutArtifactSubType,
|
| - LayoutPlacement,
|
| - LayoutWritingMode,
|
| - LayoutBackgroundColor,
|
| - LayoutBorderColor,
|
| - LayoutBorderStyle,
|
| - LayoutBorderThickness,
|
| - LayoutPadding,
|
| - LayoutColor,
|
| - LayoutSpaceBefore,
|
| - LayoutSpaceAfter,
|
| - LayoutStartIndent,
|
| - LayoutEndIndent,
|
| - LayoutTextIndent,
|
| - LayoutTextAlign,
|
| - LayoutBBox,
|
| - LayoutWidth,
|
| - LayoutHeight,
|
| - LayoutBlockAlign,
|
| - LayoutInlineAlign,
|
| - LayoutTBorderStyle,
|
| - LayoutTPadding,
|
| - LayoutBaselineShift,
|
| - LayoutLineHeight,
|
| - LayoutTextDecorationColor,
|
| - LayoutTextDecorationThickness,
|
| - LayoutTextDecorationType,
|
| - LayoutRubyAlign,
|
| - LayoutRubyPosition,
|
| - LayoutGlyphOrientationVertical,
|
| - LayoutColumnCount,
|
| - LayoutColumnGap,
|
| - LayoutColumnWidths,
|
| - LayoutListNumbering,
|
| - LayoutFieldRole,
|
| - LayoutFieldChecked,
|
| - LayoutFieldDesc,
|
| - LayoutRowSpan,
|
| - LayoutColSpan,
|
| - LayoutTableHeaders,
|
| - LayoutTableHeaderScope,
|
| - LayoutTableSummary,
|
| + LayoutArtifactType,
|
| + LayoutArtifactAttached,
|
| + LayoutArtifactSubType,
|
| + LayoutPlacement,
|
| + LayoutWritingMode,
|
| + LayoutBackgroundColor,
|
| + LayoutBorderColor,
|
| + LayoutBorderStyle,
|
| + LayoutBorderThickness,
|
| + LayoutPadding,
|
| + LayoutColor,
|
| + LayoutSpaceBefore,
|
| + LayoutSpaceAfter,
|
| + LayoutStartIndent,
|
| + LayoutEndIndent,
|
| + LayoutTextIndent,
|
| + LayoutTextAlign,
|
| + LayoutBBox,
|
| + LayoutWidth,
|
| + LayoutHeight,
|
| + LayoutBlockAlign,
|
| + LayoutInlineAlign,
|
| + LayoutTBorderStyle,
|
| + LayoutTPadding,
|
| + LayoutBaselineShift,
|
| + LayoutLineHeight,
|
| + LayoutTextDecorationColor,
|
| + LayoutTextDecorationThickness,
|
| + LayoutTextDecorationType,
|
| + LayoutRubyAlign,
|
| + LayoutRubyPosition,
|
| + LayoutGlyphOrientationVertical,
|
| + LayoutColumnCount,
|
| + LayoutColumnGap,
|
| + LayoutColumnWidths,
|
| + LayoutListNumbering,
|
| + LayoutFieldRole,
|
| + LayoutFieldChecked,
|
| + LayoutFieldDesc,
|
| + LayoutRowSpan,
|
| + LayoutColSpan,
|
| + LayoutTableHeaders,
|
| + LayoutTableHeaderScope,
|
| + LayoutTableSummary,
|
| } LayoutAttr;
|
| typedef enum {
|
| - LayoutInvalid = 0,
|
| - LayoutBlock,
|
| - LayoutInline,
|
| - LayoutBefore,
|
| - LayoutAfter,
|
| - LayoutStart,
|
| - LayoutEnd,
|
| - LayoutLrTb,
|
| - LayoutRlTb,
|
| - LayoutTbRl,
|
| - LayoutNone,
|
| - LayoutHidden,
|
| - LayoutDotted,
|
| - LayoutDashed,
|
| - LayoutSolid,
|
| - LayoutDouble,
|
| - LayoutGroove,
|
| - LayoutRidge,
|
| - LayoutInset,
|
| - LayoutOutset,
|
| - LayoutNormal,
|
| - LayoutAuto,
|
| - LayoutCenter,
|
| - LayoutJustify,
|
| - LayoutMiddle,
|
| - LayoutUnderline,
|
| - LayoutOverline,
|
| - LayoutLineThrough,
|
| - LayoutDistribute,
|
| - LayoutMinus90Degree,
|
| - LayoutZeroDegree,
|
| - Layout90Degree,
|
| - Layout180Degree,
|
| - Layout270Degree,
|
| - LayoutDisc,
|
| - LayoutCircle,
|
| - LayoutSquare,
|
| - LayoutDecimal,
|
| - LayoutUpperRoman,
|
| - LayoutLowerRoman,
|
| - LayoutUpperAlpha,
|
| - LayoutLowerAlpha,
|
| - LayoutRB,
|
| - LayoutCB,
|
| - LayoutPB,
|
| - LayoutTV,
|
| - LayoutOn,
|
| - LayoutOff,
|
| - LayoutNeutral,
|
| - LayoutRow,
|
| - LayoutColumn,
|
| - LayoutBoth,
|
| - LayoutLeft,
|
| - LayoutTop,
|
| - LayoutBottom,
|
| - LayoutRight,
|
| - LayoutPagination,
|
| - LayoutLayout,
|
| - LayoutPage,
|
| - LayoutBackground,
|
| - LayoutHeader,
|
| - LayoutFooter,
|
| - LayoutWatermark,
|
| + LayoutInvalid = 0,
|
| + LayoutBlock,
|
| + LayoutInline,
|
| + LayoutBefore,
|
| + LayoutAfter,
|
| + LayoutStart,
|
| + LayoutEnd,
|
| + LayoutLrTb,
|
| + LayoutRlTb,
|
| + LayoutTbRl,
|
| + LayoutNone,
|
| + LayoutHidden,
|
| + LayoutDotted,
|
| + LayoutDashed,
|
| + LayoutSolid,
|
| + LayoutDouble,
|
| + LayoutGroove,
|
| + LayoutRidge,
|
| + LayoutInset,
|
| + LayoutOutset,
|
| + LayoutNormal,
|
| + LayoutAuto,
|
| + LayoutCenter,
|
| + LayoutJustify,
|
| + LayoutMiddle,
|
| + LayoutUnderline,
|
| + LayoutOverline,
|
| + LayoutLineThrough,
|
| + LayoutDistribute,
|
| + LayoutMinus90Degree,
|
| + LayoutZeroDegree,
|
| + Layout90Degree,
|
| + Layout180Degree,
|
| + Layout270Degree,
|
| + LayoutDisc,
|
| + LayoutCircle,
|
| + LayoutSquare,
|
| + LayoutDecimal,
|
| + LayoutUpperRoman,
|
| + LayoutLowerRoman,
|
| + LayoutUpperAlpha,
|
| + LayoutLowerAlpha,
|
| + LayoutRB,
|
| + LayoutCB,
|
| + LayoutPB,
|
| + LayoutTV,
|
| + LayoutOn,
|
| + LayoutOff,
|
| + LayoutNeutral,
|
| + LayoutRow,
|
| + LayoutColumn,
|
| + LayoutBoth,
|
| + LayoutLeft,
|
| + LayoutTop,
|
| + LayoutBottom,
|
| + LayoutRight,
|
| + LayoutPagination,
|
| + LayoutLayout,
|
| + LayoutPage,
|
| + LayoutBackground,
|
| + LayoutHeader,
|
| + LayoutFooter,
|
| + LayoutWatermark,
|
| } LayoutEnum;
|
| -class IPDF_LayoutElement
|
| -{
|
| -public:
|
| -
|
| - virtual ~IPDF_LayoutElement() {};
|
| -
|
| -
|
| - virtual LayoutType GetType() = 0;
|
| -
|
| - virtual int CountAttrValues(LayoutAttr attr_type) = 0;
|
| +class IPDF_LayoutElement {
|
| + public:
|
| + virtual ~IPDF_LayoutElement(){};
|
|
|
| + virtual LayoutType GetType() = 0;
|
|
|
| - virtual LayoutEnum GetEnumAttr(LayoutAttr attr_type, int index = 0) = 0;
|
| + virtual int CountAttrValues(LayoutAttr attr_type) = 0;
|
|
|
| - virtual FX_FLOAT GetNumberAttr(LayoutAttr attr_type, int index = 0) = 0;
|
| + virtual LayoutEnum GetEnumAttr(LayoutAttr attr_type, int index = 0) = 0;
|
|
|
| - virtual FX_COLORREF GetColorAttr(LayoutAttr attr_type, int index = 0) = 0;
|
| + virtual FX_FLOAT GetNumberAttr(LayoutAttr attr_type, int index = 0) = 0;
|
|
|
| + virtual FX_COLORREF GetColorAttr(LayoutAttr attr_type, int index = 0) = 0;
|
|
|
| - virtual int CountChildren() = 0;
|
| + virtual int CountChildren() = 0;
|
|
|
| + virtual IPDF_LayoutElement* GetChild(int index) = 0;
|
|
|
| - virtual IPDF_LayoutElement* GetChild(int index) = 0;
|
| + virtual IPDF_LayoutElement* GetParent() = 0;
|
|
|
| + virtual int CountObjects() = 0;
|
|
|
| - virtual IPDF_LayoutElement* GetParent() = 0;
|
| -
|
| -
|
| - virtual int CountObjects() = 0;
|
| -
|
| - virtual CPDF_PageObject* GetObject(int index) = 0;
|
| + virtual CPDF_PageObject* GetObject(int index) = 0;
|
| };
|
| typedef enum {
|
| - LayoutReady,
|
| - LayoutFinished,
|
| - LayoutToBeContinued,
|
| - LayoutError
|
| + LayoutReady,
|
| + LayoutFinished,
|
| + LayoutToBeContinued,
|
| + LayoutError
|
| } LayoutStatus;
|
| -#define RF_PARSER_IMAGE 0x1
|
| -#define RF_PARSER_DEBUGINFO 0x2
|
| -#define RF_PARSER_PAGEMODE 0x4
|
| -#define RF_PARSER_READERORDER 0x8
|
| -class IPDF_LayoutProcessor
|
| -{
|
| -public:
|
| -
|
| - virtual ~IPDF_LayoutProcessor() {};
|
| -
|
| - static IPDF_LayoutProcessor* Create_LayoutProcessor_Reflow(FX_FLOAT TopIndent, FX_FLOAT fWidth, FX_FLOAT fHeight, void* pReflowedPage, int flags, FX_FLOAT lineSpace = 0);
|
| -
|
| - static IPDF_LayoutProcessor* Create_LayoutProcessor_2HTML(FX_LPCSTR fileName);
|
| -
|
| - virtual LayoutStatus StartProcess(IPDF_LayoutElement* pElement, IFX_Pause* pPause, const CFX_AffineMatrix* pPDFMatrix = NULL) = 0;
|
| -
|
| - virtual LayoutStatus Continue() = 0;
|
| - virtual int GetPosition() = 0;
|
| +#define RF_PARSER_IMAGE 0x1
|
| +#define RF_PARSER_DEBUGINFO 0x2
|
| +#define RF_PARSER_PAGEMODE 0x4
|
| +#define RF_PARSER_READERORDER 0x8
|
| +class IPDF_LayoutProcessor {
|
| + public:
|
| + virtual ~IPDF_LayoutProcessor(){};
|
| +
|
| + static IPDF_LayoutProcessor* Create_LayoutProcessor_Reflow(
|
| + FX_FLOAT TopIndent,
|
| + FX_FLOAT fWidth,
|
| + FX_FLOAT fHeight,
|
| + void* pReflowedPage,
|
| + int flags,
|
| + FX_FLOAT lineSpace = 0);
|
| +
|
| + static IPDF_LayoutProcessor* Create_LayoutProcessor_2HTML(FX_LPCSTR fileName);
|
| +
|
| + virtual LayoutStatus StartProcess(
|
| + IPDF_LayoutElement* pElement,
|
| + IFX_Pause* pPause,
|
| + const CFX_AffineMatrix* pPDFMatrix = NULL) = 0;
|
| +
|
| + virtual LayoutStatus Continue() = 0;
|
| + virtual int GetPosition() = 0;
|
| };
|
| -#define LP_Lang_Unknow 0x0
|
| -#define LP_Lang_English 0x1
|
| -#define LP_Lang_French 0x2
|
| -#define LP_Lang_Italian 0x4
|
| -#define LP_Lang_German 0x8
|
| -#define LP_Lang_Spanish 0x10
|
| -#define LP_Lang_Polish 0x20
|
| -#define LP_Lang_Russian 0x40
|
| -#define LP_Lang_ChinesePRC 0x80
|
| -#define LP_Lang_ChineseTaiwan 0x100
|
| -#define LP_Lang_Japanese 0x200
|
| -#define LP_Lang_Korean 0x400
|
| -#define LP_Lang_Portuguese 0x800
|
| -#define LP_Lang_Turkish 0x1000
|
| -#define LP_Lang_Dutch 0x2000
|
| +#define LP_Lang_Unknow 0x0
|
| +#define LP_Lang_English 0x1
|
| +#define LP_Lang_French 0x2
|
| +#define LP_Lang_Italian 0x4
|
| +#define LP_Lang_German 0x8
|
| +#define LP_Lang_Spanish 0x10
|
| +#define LP_Lang_Polish 0x20
|
| +#define LP_Lang_Russian 0x40
|
| +#define LP_Lang_ChinesePRC 0x80
|
| +#define LP_Lang_ChineseTaiwan 0x100
|
| +#define LP_Lang_Japanese 0x200
|
| +#define LP_Lang_Korean 0x400
|
| +#define LP_Lang_Portuguese 0x800
|
| +#define LP_Lang_Turkish 0x1000
|
| +#define LP_Lang_Dutch 0x2000
|
| typedef struct _LayoutProviderStyle {
|
| - _LayoutProviderStyle()
|
| - {
|
| - m_Language = LP_Lang_Unknow;
|
| - m_bIgnoreInvisibleText = TRUE;
|
| - }
|
| - FX_INT32 m_Language;
|
| - FX_BOOL m_bIgnoreInvisibleText;
|
| + _LayoutProviderStyle() {
|
| + m_Language = LP_Lang_Unknow;
|
| + m_bIgnoreInvisibleText = TRUE;
|
| + }
|
| + FX_INT32 m_Language;
|
| + FX_BOOL m_bIgnoreInvisibleText;
|
| } LAYOUTPROVIDER_STYLE;
|
| -class IPDF_LayoutProvider
|
| -{
|
| -public:
|
| -
|
| - virtual ~IPDF_LayoutProvider() {};
|
| -
|
| - static IPDF_LayoutProvider* Create_LayoutProvider_TaggedPDF(CPDF_PageObjects* pPageObjs);
|
| -
|
| - static IPDF_LayoutProvider* Create_LayoutProvider_AutoReflow(CPDF_PageObjects* pPageObjs, FX_BOOL bReadOrder);
|
| -
|
| - virtual void SetLayoutProviderStyle(LAYOUTPROVIDER_STYLE Style) = 0;
|
| -
|
| +class IPDF_LayoutProvider {
|
| + public:
|
| + virtual ~IPDF_LayoutProvider(){};
|
|
|
| + static IPDF_LayoutProvider* Create_LayoutProvider_TaggedPDF(
|
| + CPDF_PageObjects* pPageObjs);
|
|
|
| + static IPDF_LayoutProvider* Create_LayoutProvider_AutoReflow(
|
| + CPDF_PageObjects* pPageObjs,
|
| + FX_BOOL bReadOrder);
|
|
|
| - virtual LayoutStatus StartLoad(IFX_Pause* pPause = NULL) = 0;
|
| + virtual void SetLayoutProviderStyle(LAYOUTPROVIDER_STYLE Style) = 0;
|
|
|
| - virtual LayoutStatus Continue() = 0;
|
| - virtual int GetPosition() = 0;
|
| + virtual LayoutStatus StartLoad(IFX_Pause* pPause = NULL) = 0;
|
|
|
| + virtual LayoutStatus Continue() = 0;
|
| + virtual int GetPosition() = 0;
|
|
|
| - virtual IPDF_LayoutElement* GetRoot() = 0;
|
| + virtual IPDF_LayoutElement* GetRoot() = 0;
|
| };
|
| #endif
|
|
|