Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cpdfsdk_helpers.h
Go to the documentation of this file.
1// Copyright 2014 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 FPDFSDK_CPDFSDK_HELPERS_H_
8#define FPDFSDK_CPDFSDK_HELPERS_H_
9
10#include <vector>
11
12#include "build/build_config.h"
13#include "core/fpdfapi/page/cpdf_page.h"
14#include "core/fpdfapi/parser/cpdf_parser.h"
15#include "core/fxcrt/compiler_specific.h"
16#include "core/fxcrt/numerics/safe_conversions.h"
17#include "core/fxcrt/retain_ptr.h"
18#include "core/fxcrt/span.h"
19#include "core/fxge/cfx_path.h"
20#include "core/fxge/dib/fx_dib.h"
21#include "public/fpdf_doc.h"
22#include "public/fpdf_ext.h"
23#include "public/fpdfview.h"
24
25#ifdef PDF_ENABLE_XFA
26#include "core/fxcrt/fx_stream.h"
27#endif // PDF_ENABLE_XFA
28
29class CFX_DIBitmap;
30class CPDF_Annot;
32class CPDF_ClipPath;
33class CPDF_ContentMarkItem;
34class CPDF_Object;
35class CPDF_Font;
37class CPDF_PageObject;
39class CPDF_Stream;
40class CPDF_StructElement;
41class CPDF_StructTree;
42class CPDF_TextPage;
44class CPDFSDK_FormFillEnvironment;
45class CPDFSDK_InteractiveForm;
46struct CPDF_JavaScript;
47struct XObjectContext;
48
49#if defined(PDF_USE_SKIA)
50class SkCanvas;
51#endif
52
53// Conversions to/from underlying types.
54IPDF_Page* IPDFPageFromFPDFPage(FPDF_PAGE page);
55FPDF_PAGE FPDFPageFromIPDFPage(IPDF_Page* page);
56CPDF_Page* CPDFPageFromFPDFPage(FPDF_PAGE page);
59
60// Conversions to/from incomplete FPDF_ API types.
61inline FPDF_ACTION FPDFActionFromCPDFDictionary(const CPDF_Dictionary* action) {
62 return reinterpret_cast<FPDF_ACTION>(const_cast<CPDF_Dictionary*>(action));
63}
64inline CPDF_Dictionary* CPDFDictionaryFromFPDFAction(FPDF_ACTION action) {
65 return reinterpret_cast<CPDF_Dictionary*>(action);
66}
67
69 CPDF_AnnotContext* annot) {
70 return reinterpret_cast<FPDF_ANNOTATION>(annot);
71}
73 FPDF_ANNOTATION annot) {
74 return reinterpret_cast<CPDF_AnnotContext*>(annot);
75}
76
77inline FPDF_ATTACHMENT FPDFAttachmentFromCPDFObject(CPDF_Object* attachment) {
78 return reinterpret_cast<FPDF_ATTACHMENT>(attachment);
79}
80inline CPDF_Object* CPDFObjectFromFPDFAttachment(FPDF_ATTACHMENT attachment) {
81 return reinterpret_cast<CPDF_Object*>(attachment);
82}
83
84inline FPDF_BITMAP FPDFBitmapFromCFXDIBitmap(CFX_DIBitmap* bitmap) {
85 return reinterpret_cast<FPDF_BITMAP>(bitmap);
86}
87inline CFX_DIBitmap* CFXDIBitmapFromFPDFBitmap(FPDF_BITMAP bitmap) {
88 return reinterpret_cast<CFX_DIBitmap*>(bitmap);
89}
90
91#if defined(PDF_USE_SKIA)
92inline FPDF_SKIA_CANVAS FPDFSkiaCanvasFromSkCanvas(SkCanvas* canvas) {
93 return reinterpret_cast<FPDF_SKIA_CANVAS>(canvas);
94}
95inline SkCanvas* SkCanvasFromFPDFSkiaCanvas(FPDF_SKIA_CANVAS canvas) {
96 return reinterpret_cast<SkCanvas*>(canvas);
97}
98#endif
99
101 const CPDF_Dictionary* bookmark) {
102 return reinterpret_cast<FPDF_BOOKMARK>(
103 const_cast<CPDF_Dictionary*>(bookmark));
104}
105inline CPDF_Dictionary* CPDFDictionaryFromFPDFBookmark(FPDF_BOOKMARK bookmark) {
106 return reinterpret_cast<CPDF_Dictionary*>(bookmark);
107}
108
109inline FPDF_CLIPPATH FPDFClipPathFromCPDFClipPath(CPDF_ClipPath* path) {
110 return reinterpret_cast<FPDF_CLIPPATH>(path);
111}
112inline CPDF_ClipPath* CPDFClipPathFromFPDFClipPath(FPDF_CLIPPATH path) {
113 return reinterpret_cast<CPDF_ClipPath*>(path);
114}
115
116inline FPDF_DEST FPDFDestFromCPDFArray(const CPDF_Array* dest) {
117 return reinterpret_cast<FPDF_DEST>(const_cast<CPDF_Array*>(dest));
118}
119inline CPDF_Array* CPDFArrayFromFPDFDest(FPDF_DEST dest) {
120 return reinterpret_cast<CPDF_Array*>(dest);
121}
122
123inline FPDF_FONT FPDFFontFromCPDFFont(CPDF_Font* font) {
124 return reinterpret_cast<FPDF_FONT>(font);
125}
126inline CPDF_Font* CPDFFontFromFPDFFont(FPDF_FONT font) {
127 return reinterpret_cast<CPDF_Font*>(font);
128}
129
131 CPDF_JavaScript* javascript) {
132 return reinterpret_cast<FPDF_JAVASCRIPT_ACTION>(javascript);
133}
135 FPDF_JAVASCRIPT_ACTION javascript) {
136 return reinterpret_cast<CPDF_JavaScript*>(javascript);
137}
138
140 return reinterpret_cast<FPDF_LINK>(link);
141}
143 return reinterpret_cast<CPDF_Dictionary*>(link);
144}
145
147 return reinterpret_cast<FPDF_PAGELINK>(link);
148}
150 return reinterpret_cast<CPDF_LinkExtract*>(link);
151}
152
153inline FPDF_PAGEOBJECT FPDFPageObjectFromCPDFPageObject(
154 CPDF_PageObject* page_object) {
155 return reinterpret_cast<FPDF_PAGEOBJECT>(page_object);
156}
158 FPDF_PAGEOBJECT page_object) {
159 return reinterpret_cast<CPDF_PageObject*>(page_object);
160}
161
163 CPDF_ContentMarkItem* mark) {
164 return reinterpret_cast<FPDF_PAGEOBJECTMARK>(mark);
165}
166inline CPDF_ContentMarkItem* CPDFContentMarkItemFromFPDFPageObjectMark(
167 FPDF_PAGEOBJECTMARK mark) {
168 return reinterpret_cast<CPDF_ContentMarkItem*>(mark);
169}
170
171inline FPDF_PAGERANGE FPDFPageRangeFromCPDFArray(const CPDF_Array* range) {
172 return reinterpret_cast<FPDF_PAGERANGE>(range);
173}
174inline const CPDF_Array* CPDFArrayFromFPDFPageRange(FPDF_PAGERANGE range) {
175 return reinterpret_cast<const CPDF_Array*>(range);
176}
177
178inline FPDF_PATHSEGMENT FPDFPathSegmentFromFXPathPoint(
179 const CFX_Path::Point* segment) {
180 return reinterpret_cast<FPDF_PATHSEGMENT>(segment);
181}
183 FPDF_PATHSEGMENT segment) {
184 return reinterpret_cast<const CFX_Path::Point*>(segment);
185}
186
187inline FPDF_STRUCTTREE FPDFStructTreeFromCPDFStructTree(
188 CPDF_StructTree* struct_tree) {
189 return reinterpret_cast<FPDF_STRUCTTREE>(struct_tree);
190}
192 FPDF_STRUCTTREE struct_tree) {
193 return reinterpret_cast<CPDF_StructTree*>(struct_tree);
194}
195
197 CPDF_StructElement* struct_element) {
198 return reinterpret_cast<FPDF_STRUCTELEMENT>(struct_element);
199}
200inline CPDF_StructElement* CPDFStructElementFromFPDFStructElement(
201 FPDF_STRUCTELEMENT struct_element) {
202 return reinterpret_cast<CPDF_StructElement*>(struct_element);
203}
204
205inline FPDF_STRUCTELEMENT_ATTR FPDFStructElementAttrFromCPDFDictionary(
206 const CPDF_Dictionary* dictionary) {
207 return reinterpret_cast<FPDF_STRUCTELEMENT_ATTR>(dictionary);
208}
210 FPDF_STRUCTELEMENT_ATTR struct_element_attr) {
211 return reinterpret_cast<const CPDF_Dictionary*>(struct_element_attr);
212}
213
214inline FPDF_STRUCTELEMENT_ATTR_VALUE FPDFStructElementAttrValueFromCPDFObject(
215 const CPDF_Object* object) {
216 return reinterpret_cast<FPDF_STRUCTELEMENT_ATTR_VALUE>(object);
217}
219 FPDF_STRUCTELEMENT_ATTR_VALUE struct_element_attr_value) {
220 return reinterpret_cast<const CPDF_Object*>(struct_element_attr_value);
221}
222
223inline FPDF_TEXTPAGE FPDFTextPageFromCPDFTextPage(CPDF_TextPage* page) {
224 return reinterpret_cast<FPDF_TEXTPAGE>(page);
225}
226inline CPDF_TextPage* CPDFTextPageFromFPDFTextPage(FPDF_TEXTPAGE page) {
227 return reinterpret_cast<CPDF_TextPage*>(page);
228}
229
231 CPDF_TextPageFind* handle) {
232 return reinterpret_cast<FPDF_SCHHANDLE>(handle);
233}
235 FPDF_SCHHANDLE handle) {
236 return reinterpret_cast<CPDF_TextPageFind*>(handle);
237}
238
240 CPDFSDK_FormFillEnvironment* handle) {
241 return reinterpret_cast<FPDF_FORMHANDLE>(handle);
242}
243inline CPDFSDK_FormFillEnvironment*
245 return reinterpret_cast<CPDFSDK_FormFillEnvironment*>(handle);
246}
247
249 const CPDF_Dictionary* dictionary) {
250 return reinterpret_cast<FPDF_SIGNATURE>(dictionary);
251}
253 FPDF_SIGNATURE signature) {
254 return reinterpret_cast<const CPDF_Dictionary*>(signature);
255}
256
257inline FPDF_XOBJECT FPDFXObjectFromXObjectContext(XObjectContext* xobject) {
258 return reinterpret_cast<FPDF_XOBJECT>(xobject);
259}
260
261inline XObjectContext* XObjectContextFromFPDFXObject(FPDF_XOBJECT xobject) {
262 return reinterpret_cast<XObjectContext*>(xobject);
263}
264
266
267CPDFSDK_InteractiveForm* FormHandleToInteractiveForm(FPDF_FORMHANDLE hHandle);
268
270ByteStringFromFPDFWideString(FPDF_WIDESTRING wide_string);
271
273WideStringFromFPDFWideString(FPDF_WIDESTRING wide_string);
274
275// Public APIs are not consistent w.r.t. the type used to represent buffer
276// length, while internal code generally expects size_t. Use StrictNumeric here
277// to make sure the length types fit in a size_t.
279 void* buffer,
280 pdfium::StrictNumeric<size_t> buflen);
281
282#ifdef PDF_ENABLE_XFA
283// Layering prevents fxcrt from knowing about FPDF_FILEHANDLER, so this can't
284// be a static method of IFX_SeekableStream.
285RetainPtr<IFX_SeekableStream> MakeSeekableStream(
286 FPDF_FILEHANDLER* pFileHandler);
287#endif // PDF_ENABLE_XFA
288
290 const CPDF_Dictionary* dict);
292 CPDF_Dictionary* dict);
294bool IsValidQuadPointsIndex(const CPDF_Array* array, size_t index);
296 size_t quad_index,
297 FS_QUADPOINTSF* quad_points);
298
299CFX_PointF CFXPointFFromFSPointF(const FS_POINTF& point);
300
301CFX_FloatRect CFXFloatRectFromFSRectF(const FS_RECTF& rect);
302FS_RECTF FSRectFFromCFXFloatRect(const CFX_FloatRect& rect);
303
304CFX_Matrix CFXMatrixFromFSMatrix(const FS_MATRIX& matrix);
305FS_MATRIX FSMatrixFromCFXMatrix(const CFX_Matrix& matrix);
306
308 const ByteString& text,
309 pdfium::span<char> result_span);
310
312 const WideString& text,
313 pdfium::span<char> result_span);
314
315// Returns the length of the raw stream data from |stream|. The raw data is the
316// stream's data as stored in the PDF without applying any filters. If |buffer|
317// is non-empty and its length is large enough to contain the raw data, then
318// the raw data is copied into |buffer|.
320 RetainPtr<const CPDF_Stream> stream,
321 pdfium::span<uint8_t> buffer);
322
323// Return the length of the decoded stream data of |stream|. The decoded data is
324// the uncompressed stream data, i.e. the raw stream data after having all
325// filters applied. If |buffer| is non-empty and its length is large enough to
326// contain the decoded data, then the decoded data is copied into |buffer|.
328 RetainPtr<const CPDF_Stream> stream,
329 pdfium::span<uint8_t> buffer);
330
331void SetPDFSandboxPolicy(FPDF_DWORD policy, FPDF_BOOL enable);
332FPDF_BOOL IsPDFSandboxPolicyEnabled(FPDF_DWORD policy);
333
334void SetPDFUnsupportInfo(UNSUPPORT_INFO* unsp_info);
336void ReportUnsupportedXFA(const CPDF_Document* pDoc);
337void CheckForUnsupportedAnnot(const CPDF_Annot* pAnnot);
339void SetColorFromScheme(const FPDF_COLORSCHEME* pColorScheme,
340 CPDF_RenderOptions* pRenderOptions);
341
342// Returns a vector of page indices given a page range string.
344 uint32_t nCount);
345
346#endif // FPDFSDK_CPDFSDK_HELPERS_H_
fxcrt::ByteString ByteString
Definition bytestring.h:180
void LoadSubst(const ByteString &face_name, bool bTrueType, uint32_t flags, int weight, int italic_angle, FX_CodePage code_page, bool bVertical)
Definition cfx_font.cpp:233
void Translate(int32_t x, int32_t y)
constexpr CFX_Matrix(float a1, float b1, float c1, float d1, float e1, float f1)
void AppendRect(float left, float bottom, float right, float top)
Definition cfx_path.cpp:310
void SaveState() override
bool SetClip_PathFill(const CFX_Path &path, const CFX_Matrix *pObject2Device, const CFX_FillRenderOptions &fill_options) override
bool DrawPath(const CFX_Path &path, const CFX_Matrix *pObject2Device, const CFX_GraphStateData *pGraphState, uint32_t fill_color, uint32_t stroke_color, const CFX_FillRenderOptions &fill_options) override
void RestoreState(bool bKeepSaved) override
std::vector< RetainPtr< CPDF_Object > >::const_iterator const_iterator
Definition cpdf_array.h:29
std::map< ByteString, RetainPtr< CPDF_Object >, std::less<> > DictMap
RenderContextClearer(CPDF_Page *pPage)
uint32_t m_GlyphIndex
#define UNSAFE_BUFFER_USAGE
const CPDF_Array * CPDFArrayFromFPDFPageRange(FPDF_PAGERANGE range)
UNSAFE_BUFFER_USAGE WideString WideStringFromFPDFWideString(FPDF_WIDESTRING wide_string)
bool IsValidQuadPointsIndex(const CPDF_Array *array, size_t index)
FPDF_STRUCTTREE FPDFStructTreeFromCPDFStructTree(CPDF_StructTree *struct_tree)
std::vector< uint32_t > ParsePageRangeString(const ByteString &bsPageRange, uint32_t nCount)
FPDF_STRUCTELEMENT_ATTR FPDFStructElementAttrFromCPDFDictionary(const CPDF_Dictionary *dictionary)
UNSAFE_BUFFER_USAGE ByteString ByteStringFromFPDFWideString(FPDF_WIDESTRING wide_string)
FPDF_XOBJECT FPDFXObjectFromXObjectContext(XObjectContext *xobject)
FPDF_STRUCTELEMENT_ATTR_VALUE FPDFStructElementAttrValueFromCPDFObject(const CPDF_Object *object)
CPDF_StructElement * CPDFStructElementFromFPDFStructElement(FPDF_STRUCTELEMENT struct_element)
FPDF_PAGELINK FPDFPageLinkFromCPDFLinkExtract(CPDF_LinkExtract *link)
FPDF_DEST FPDFDestFromCPDFArray(const CPDF_Array *dest)
IPDF_Page * IPDFPageFromFPDFPage(FPDF_PAGE page)
const CFX_Path::Point * FXPathPointFromFPDFPathSegment(FPDF_PATHSEGMENT segment)
CPDF_TextPageFind * CPDFTextPageFindFromFPDFSchHandle(FPDF_SCHHANDLE handle)
FPDF_JAVASCRIPT_ACTION FPDFJavaScriptActionFromCPDFJavaScriptAction(CPDF_JavaScript *javascript)
FPDF_DOCUMENT FPDFDocumentFromCPDFDocument(CPDF_Document *doc)
void ProcessParseError(CPDF_Parser::Error err)
XObjectContext * XObjectContextFromFPDFXObject(FPDF_XOBJECT xobject)
RetainPtr< CPDF_Array > AddQuadPointsArrayToDictionary(CPDF_Dictionary *dict)
CPDF_Array * CPDFArrayFromFPDFDest(FPDF_DEST dest)
FPDF_SCHHANDLE FPDFSchHandleFromCPDFTextPageFind(CPDF_TextPageFind *handle)
FPDF_BITMAP FPDFBitmapFromCFXDIBitmap(CFX_DIBitmap *bitmap)
CFX_DIBitmap * CFXDIBitmapFromFPDFBitmap(FPDF_BITMAP bitmap)
FXDIB_Format FXDIBFormatFromFPDFFormat(int format)
FPDF_BOOL IsPDFSandboxPolicyEnabled(FPDF_DWORD policy)
CPDFSDK_FormFillEnvironment * CPDFSDKFormFillEnvironmentFromFPDFFormHandle(FPDF_FORMHANDLE handle)
unsigned long NulTerminateMaybeCopyAndReturnLength(const ByteString &text, pdfium::span< char > result_span)
FPDF_ANNOTATION FPDFAnnotationFromCPDFAnnotContext(CPDF_AnnotContext *annot)
FPDF_ACTION FPDFActionFromCPDFDictionary(const CPDF_Dictionary *action)
void SetPDFSandboxPolicy(FPDF_DWORD policy, FPDF_BOOL enable)
CPDF_Dictionary * CPDFDictionaryFromFPDFBookmark(FPDF_BOOKMARK bookmark)
UNSAFE_BUFFER_USAGE pdfium::span< char > SpanFromFPDFApiArgs(void *buffer, pdfium::StrictNumeric< size_t > buflen)
CPDF_ContentMarkItem * CPDFContentMarkItemFromFPDFPageObjectMark(FPDF_PAGEOBJECTMARK mark)
CPDF_Object * CPDFObjectFromFPDFAttachment(FPDF_ATTACHMENT attachment)
RetainPtr< const CPDF_Array > GetQuadPointsArrayFromDictionary(const CPDF_Dictionary *dict)
FPDF_LINK FPDFLinkFromCPDFDictionary(CPDF_Dictionary *link)
const CPDF_Dictionary * CPDFDictionaryFromFPDFSignature(FPDF_SIGNATURE signature)
CPDF_AnnotContext * CPDFAnnotContextFromFPDFAnnotation(FPDF_ANNOTATION annot)
FPDF_PAGEOBJECT FPDFPageObjectFromCPDFPageObject(CPDF_PageObject *page_object)
bool GetQuadPointsAtIndex(RetainPtr< const CPDF_Array > array, size_t quad_index, FS_QUADPOINTSF *quad_points)
FPDF_PAGEOBJECTMARK FPDFPageObjectMarkFromCPDFContentMarkItem(CPDF_ContentMarkItem *mark)
FPDF_STRUCTELEMENT FPDFStructElementFromCPDFStructElement(CPDF_StructElement *struct_element)
CPDF_TextPage * CPDFTextPageFromFPDFTextPage(FPDF_TEXTPAGE page)
void ReportUnsupportedXFA(const CPDF_Document *pDoc)
FPDF_FONT FPDFFontFromCPDFFont(CPDF_Font *font)
CPDF_Font * CPDFFontFromFPDFFont(FPDF_FONT font)
FS_RECTF FSRectFFromCFXFloatRect(const CFX_FloatRect &rect)
RetainPtr< CPDF_Array > GetMutableQuadPointsArrayFromDictionary(CPDF_Dictionary *dict)
CPDF_Dictionary * CPDFDictionaryFromFPDFLink(FPDF_LINK link)
unsigned long Utf16EncodeMaybeCopyAndReturnLength(const WideString &text, pdfium::span< char > result_span)
void CheckForUnsupportedAnnot(const CPDF_Annot *pAnnot)
void ReportUnsupportedFeatures(const CPDF_Document *pDoc)
CPDF_ClipPath * CPDFClipPathFromFPDFClipPath(FPDF_CLIPPATH path)
FS_MATRIX FSMatrixFromCFXMatrix(const CFX_Matrix &matrix)
FPDF_PATHSEGMENT FPDFPathSegmentFromFXPathPoint(const CFX_Path::Point *segment)
void SetColorFromScheme(const FPDF_COLORSCHEME *pColorScheme, CPDF_RenderOptions *pRenderOptions)
CFX_FloatRect CFXFloatRectFromFSRectF(const FS_RECTF &rect)
FPDF_PAGE FPDFPageFromIPDFPage(IPDF_Page *page)
unsigned long GetRawStreamMaybeCopyAndReturnLength(RetainPtr< const CPDF_Stream > stream, pdfium::span< uint8_t > buffer)
CPDF_JavaScript * CPDFJavaScriptActionFromFPDFJavaScriptAction(FPDF_JAVASCRIPT_ACTION javascript)
FPDF_CLIPPATH FPDFClipPathFromCPDFClipPath(CPDF_ClipPath *path)
const CPDF_Object * CPDFObjectFromFPDFStructElementAttrValue(FPDF_STRUCTELEMENT_ATTR_VALUE struct_element_attr_value)
CFX_PointF CFXPointFFromFSPointF(const FS_POINTF &point)
CPDF_Page * CPDFPageFromFPDFPage(FPDF_PAGE page)
CPDF_Document * CPDFDocumentFromFPDFDocument(FPDF_DOCUMENT doc)
FPDF_BOOKMARK FPDFBookmarkFromCPDFDictionary(const CPDF_Dictionary *bookmark)
FPDF_SIGNATURE FPDFSignatureFromCPDFDictionary(const CPDF_Dictionary *dictionary)
CPDF_StructTree * CPDFStructTreeFromFPDFStructTree(FPDF_STRUCTTREE struct_tree)
unsigned long DecodeStreamMaybeCopyAndReturnLength(RetainPtr< const CPDF_Stream > stream, pdfium::span< uint8_t > buffer)
FPDF_TEXTPAGE FPDFTextPageFromCPDFTextPage(CPDF_TextPage *page)
FPDF_PAGERANGE FPDFPageRangeFromCPDFArray(const CPDF_Array *range)
const CPDF_Dictionary * CPDFDictionaryFromFPDFStructElementAttr(FPDF_STRUCTELEMENT_ATTR struct_element_attr)
void SetPDFUnsupportInfo(UNSUPPORT_INFO *unsp_info)
CPDF_PageObject * CPDFPageObjectFromFPDFPageObject(FPDF_PAGEOBJECT page_object)
CPDF_Dictionary * CPDFDictionaryFromFPDFAction(FPDF_ACTION action)
FPDF_FORMHANDLE FPDFFormHandleFromCPDFSDKFormFillEnvironment(CPDFSDK_FormFillEnvironment *handle)
CFX_Matrix CFXMatrixFromFSMatrix(const FS_MATRIX &matrix)
CPDFSDK_InteractiveForm * FormHandleToInteractiveForm(FPDF_FORMHANDLE hHandle)
CPDF_LinkExtract * CPDFLinkExtractFromFPDFPageLink(FPDF_PAGELINK link)
FPDF_ATTACHMENT FPDFAttachmentFromCPDFObject(CPDF_Object *attachment)
void CPDFSDK_RenderPageWithContext(CPDF_PageRenderContext *pContext, CPDF_Page *pPage, int start_x, int start_y, int size_x, int size_y, int rotate, int flags, const FPDF_COLORSCHEME *color_scheme, bool need_to_restore, CPDFSDK_PauseAdapter *pause)
TEST_F(FPDFParserDecodeEmbedderTest, Bug552046)
FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV FPDFBitmap_Create(int width, int height, int alpha)
FX_CodePage
Definition fx_codepage.h:19
CFX_PTemplate< float > CFX_PointF
TEST(FXCRYPT, CryptToBase16)
FXDIB_Format
Definition fx_dib.h:21
#define CHECK(cvref)
static constexpr CFX_FillRenderOptions WindingOptions()
constexpr CFX_TextRenderOptions(AliasingType type)
fxcrt::WideString WideString
Definition widestring.h:207