Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
cpdf_contentparser.h
Go to the documentation of this file.
1
// Copyright 2016 The PDFium Authors
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7
#
ifndef
CORE_FPDFAPI_PAGE_CPDF_CONTENTPARSER_H_
8
#
define
CORE_FPDFAPI_PAGE_CPDF_CONTENTPARSER_H_
9
10
#
include
<
stdint
.
h
>
11
12
#
include
<
memory
>
13
#
include
<
vector
>
14
15
#
include
"core/fpdfapi/page/cpdf_form.h"
16
#
include
"core/fpdfapi/page/cpdf_pageobjectholder.h"
17
#
include
"core/fpdfapi/page/cpdf_streamcontentparser.h"
18
#
include
"core/fxcrt/fixed_size_data_vector.h"
19
#
include
"core/fxcrt/raw_span.h"
20
#
include
"core/fxcrt/retain_ptr.h"
21
#
include
"core/fxcrt/unowned_ptr.h"
22
#
include
"third_party/abseil-cpp/absl/types/variant.h"
23
24
class
CPDF_AllStates
;
25
class
CPDF_Array
;
26
class
CPDF_Page;
27
class
CPDF_PageObjectHolder
;
28
class
CPDF_Stream;
29
class
CPDF_StreamAcc;
30
class
CPDF_Type3Char
;
31
class
PauseIndicatorIface
;
32
33
class
CPDF_ContentParser
{
34
public
:
35
explicit
CPDF_ContentParser
(CPDF_Page* pPage);
36
CPDF_ContentParser
(
RetainPtr
<
const
CPDF_Stream> pStream,
37
CPDF_PageObjectHolder
* pPageObjectHolder,
38
const
CPDF_AllStates
* pGraphicStates,
39
const
CFX_Matrix
* pParentMatrix,
40
CPDF_Type3Char
* pType3Char,
41
CPDF_Form::
RecursionState
* recursion_state);
42
~
CPDF_ContentParser
();
43
44
CPDF_PageObjectHolder
::
CTMMap
TakeAllCTMs
();
45
46
// Returns whether to continue or not.
47
bool
Continue
(
PauseIndicatorIface
* pPause);
48
49
private
:
50
enum
class
Stage : uint8_t {
51
kGetContent = 1,
52
kPrepareContent,
53
kParse,
54
kCheckClip,
55
kComplete,
56
};
57
58
Stage GetContent();
59
Stage PrepareContent();
60
Stage Parse();
61
Stage CheckClip();
62
63
void
HandlePageContentStream(
const
CPDF_Stream* pStream);
64
bool
HandlePageContentArray(
const
CPDF_Array
* pArray);
65
void
HandlePageContentFailure();
66
67
bool
is_owned()
const
{
68
return
absl::holds_alternative<FixedSizeDataVector<uint8_t>>(m_Data);
69
}
70
pdfium::span<
const
uint8_t> GetData()
const
;
71
72
Stage m_CurrentStage;
73
UnownedPtr
<
CPDF_PageObjectHolder
>
const
m_pPageObjectHolder;
74
UnownedPtr
<
CPDF_Type3Char
> m_pType3Char;
// Only used when parsing forms.
75
RetainPtr
<CPDF_StreamAcc> m_pSingleStream;
76
std::vector<RetainPtr<CPDF_StreamAcc>> m_StreamArray;
77
std::vector<uint32_t> m_StreamSegmentOffsets;
78
absl
::
variant
<
pdfium
::
raw_span
<
const
uint8_t
>,
FixedSizeDataVector
<
uint8_t
>>
79
m_Data
;
80
uint32_t m_nStreams = 0;
81
uint32_t m_CurrentOffset = 0;
82
// Only used when parsing pages.
83
CPDF_Form::
RecursionState
m_RecursionState;
84
85
// Must not outlive |m_RecursionState|.
86
std::unique_ptr<CPDF_StreamContentParser> m_pParser;
87
};
88
89
#
endif
// CORE_FPDFAPI_PAGE_CPDF_CONTENTPARSER_H_
DCHECK
#define DCHECK
Definition
check.h:33
DCHECK_EQ
#define DCHECK_EQ(x, y)
Definition
check_op.h:17
CFX_FloatRect
Definition
fx_coordinates.h:185
CFX_FloatRect::operator=
CFX_FloatRect & operator=(const CFX_FloatRect &that)=default
CFX_Matrix
Definition
fx_coordinates.h:440
CFX_Matrix::TransformRect
CFX_FloatRect TransformRect(const CFX_FloatRect &rect) const
Definition
fx_coordinates.cpp:475
CFX_Matrix::Concat
void Concat(const CFX_Matrix &right)
Definition
fx_coordinates.h:480
CPDF_AllStates
Definition
cpdf_allstates.h:17
CPDF_AllStates::current_transformation_matrix
const CFX_Matrix & current_transformation_matrix() const
Definition
cpdf_allstates.h:40
CPDF_Array::const_iterator
std::vector< RetainPtr< CPDF_Object > >::const_iterator const_iterator
Definition
cpdf_array.h:29
CPDF_ContentParser
Definition
cpdf_contentparser.h:33
CPDF_ContentParser::CPDF_ContentParser
CPDF_ContentParser(CPDF_Page *pPage)
Definition
cpdf_contentparser.cpp:30
CPDF_ContentParser::Continue
bool Continue(PauseIndicatorIface *pPause)
Definition
cpdf_contentparser.cpp:128
CPDF_ContentParser::TakeAllCTMs
CPDF_PageObjectHolder::CTMMap TakeAllCTMs()
Definition
cpdf_contentparser.cpp:121
CPDF_ContentParser::~CPDF_ContentParser
~CPDF_ContentParser()
CPDF_ContentParser::CPDF_ContentParser
CPDF_ContentParser(RetainPtr< const CPDF_Stream > pStream, CPDF_PageObjectHolder *pPageObjectHolder, const CPDF_AllStates *pGraphicStates, const CFX_Matrix *pParentMatrix, CPDF_Type3Char *pType3Char, CPDF_Form::RecursionState *recursion_state)
Definition
cpdf_contentparser.cpp:59
CPDF_Dictionary::DictMap
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
Definition
cpdf_dictionary.h:31
CPDF_GeneralState
Definition
cpdf_generalstate.h:24
CPDF_GeneralState::SetBlendType
void SetBlendType(BlendMode type)
Definition
cpdf_generalstate.cpp:125
CPDF_GeneralState::SetFillAlpha
void SetFillAlpha(float alpha)
Definition
cpdf_generalstate.cpp:136
CPDF_GeneralState::SetStrokeAlpha
void SetStrokeAlpha(float alpha)
Definition
cpdf_generalstate.cpp:147
CPDF_GeneralState::SetSoftMask
void SetSoftMask(RetainPtr< CPDF_Dictionary > pDict)
Definition
cpdf_generalstate.cpp:163
CPDF_Object
Definition
cpdf_object.h:50
CPDF_PageObjectHolder
Definition
cpdf_pageobjectholder.h:51
CPDF_Page::GetDocument
CPDF_Document * GetDocument() const override
Definition
cpdf_page.cpp:51
CPDF_Path
Definition
cpdf_path.h:15
CPDF_Path::HasRef
bool HasRef() const
Definition
cpdf_path.h:22
CPDF_Path::AppendFloatRect
void AppendFloatRect(const CFX_FloatRect &rect)
Definition
cpdf_path.cpp:49
CPDF_Path::Emplace
void Emplace()
Definition
cpdf_path.h:21
CPDF_Path::Transform
void Transform(const CFX_Matrix &matrix)
Definition
cpdf_path.cpp:41
CPDF_Type3Char
Definition
cpdf_type3char.h:21
PauseIndicatorIface
Definition
pauseindicator_iface.h:10
PauseIndicatorIface::NeedToPauseNow
virtual bool NeedToPauseNow()=0
fxcrt::RetainPtr
Definition
retain_ptr.h:28
fxcrt::UnownedPtr
Definition
unowned_ptr.h:76
BlendMode
BlendMode
Definition
fx_dib.h:119
BlendMode::kNormal
@ kNormal
Definition
fx_dib.h:120
FX_SAFE_UINT32
pdfium::CheckedNumeric< uint32_t > FX_SAFE_UINT32
Definition
fx_safe_types.h:14
fxcrt
Definition
stl_util.h:17
CPDF_Form::RecursionState
Definition
cpdf_form.h:27
qtwebengine
src
3rdparty
chromium
third_party
pdfium
core
fpdfapi
page
cpdf_contentparser.h
Generated on
for Qt by
1.18.0