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
fpdf_progressive.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 PUBLIC_FPDF_PROGRESSIVE_H_
8#define PUBLIC_FPDF_PROGRESSIVE_H_
9
10// clang-format off
11// NOLINTNEXTLINE(build/include)
12#include "fpdfview.h"
13
14// Flags for progressive process status.
15#define FPDF_RENDER_READY 0
16#define FPDF_RENDER_TOBECONTINUED 1
17#define FPDF_RENDER_DONE 2
18#define FPDF_RENDER_FAILED 3
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24// IFPDF_RENDERINFO interface.
25typedef struct _IFSDK_PAUSE {
26 // Version number of the interface. Currently must be 1.
28
29 // Method: NeedToPauseNow
30 // Check if we need to pause a progressive process now.
31 // Interface Version:
32 // 1
33 // Implementation Required:
34 // yes
35 // Parameters:
36 // pThis - Pointer to the interface structure itself
37 // Return Value:
38 // Non-zero for pause now, 0 for continue.
39 FPDF_BOOL (*NeedToPauseNow)(struct _IFSDK_PAUSE* pThis);
40
41 // A user defined data pointer, used by user's application. Can be NULL.
42 void* user;
43} IFSDK_PAUSE;
44
45// Experimental API.
46// Function: FPDF_RenderPageBitmapWithColorScheme_Start
47// Start to render page contents to a device independent bitmap
48// progressively with a specified color scheme for the content.
49// Parameters:
50// bitmap - Handle to the device independent bitmap (as the
51// output buffer). Bitmap handle can be created by
52// FPDFBitmap_Create function.
53// page - Handle to the page as returned by FPDF_LoadPage
54// function.
55// start_x - Left pixel position of the display area in the
56// bitmap coordinate.
57// start_y - Top pixel position of the display area in the
58// bitmap coordinate.
59// size_x - Horizontal size (in pixels) for displaying the
60// page.
61// size_y - Vertical size (in pixels) for displaying the page.
62// rotate - Page orientation: 0 (normal), 1 (rotated 90
63// degrees clockwise), 2 (rotated 180 degrees),
64// 3 (rotated 90 degrees counter-clockwise).
65// flags - 0 for normal display, or combination of flags
66// defined in fpdfview.h. With FPDF_ANNOT flag, it
67// renders all annotations that does not require
68// user-interaction, which are all annotations except
69// widget and popup annotations.
70// color_scheme - Color scheme to be used in rendering the |page|.
71// If null, this function will work similar to
72// FPDF_RenderPageBitmap_Start().
73// pause - The IFSDK_PAUSE interface. A callback mechanism
74// allowing the page rendering process.
75// Return value:
76// Rendering Status. See flags for progressive process status for the
77// details.
80 FPDF_PAGE page,
81 int start_x,
82 int start_y,
83 int size_x,
84 int size_y,
85 int rotate,
86 int flags,
87 const FPDF_COLORSCHEME* color_scheme,
88 IFSDK_PAUSE* pause);
89
90// Function: FPDF_RenderPageBitmap_Start
91// Start to render page contents to a device independent bitmap
92// progressively.
93// Parameters:
94// bitmap - Handle to the device independent bitmap (as the
95// output buffer). Bitmap handle can be created by
96// FPDFBitmap_Create().
97// page - Handle to the page, as returned by FPDF_LoadPage().
98// start_x - Left pixel position of the display area in the
99// bitmap coordinates.
100// start_y - Top pixel position of the display area in the bitmap
101// coordinates.
102// size_x - Horizontal size (in pixels) for displaying the page.
103// size_y - Vertical size (in pixels) for displaying the page.
104// rotate - Page orientation: 0 (normal), 1 (rotated 90 degrees
105// clockwise), 2 (rotated 180 degrees), 3 (rotated 90
106// degrees counter-clockwise).
107// flags - 0 for normal display, or combination of flags
108// defined in fpdfview.h. With FPDF_ANNOT flag, it
109// renders all annotations that does not require
110// user-interaction, which are all annotations except
111// widget and popup annotations.
112// pause - The IFSDK_PAUSE interface.A callback mechanism
113// allowing the page rendering process
114// Return value:
115// Rendering Status. See flags for progressive process status for the
116// details.
118 FPDF_PAGE page,
119 int start_x,
120 int start_y,
121 int size_x,
122 int size_y,
123 int rotate,
124 int flags,
125 IFSDK_PAUSE* pause);
126
127// Function: FPDF_RenderPage_Continue
128// Continue rendering a PDF page.
129// Parameters:
130// page - Handle to the page, as returned by FPDF_LoadPage().
131// pause - The IFSDK_PAUSE interface (a callback mechanism
132// allowing the page rendering process to be paused
133// before it's finished). This can be NULL if you
134// don't want to pause.
135// Return value:
136// The rendering status. See flags for progressive process status for
137// the details.
139 IFSDK_PAUSE* pause);
140
141// Function: FPDF_RenderPage_Close
142// Release the resource allocate during page rendering. Need to be
143// called after finishing rendering or
144// cancel the rendering.
145// Parameters:
146// page - Handle to the page, as returned by FPDF_LoadPage().
147// Return value:
148// None.
150
151#ifdef __cplusplus
152}
153#endif
154
155#endif // PUBLIC_FPDF_PROGRESSIVE_H_
#define DCHECK
Definition check.h:33
FPDF_PAGE LoadPage(int page_index)
static void CompareBitmap(FPDF_BITMAP bitmap, int expected_width, int expected_height, const char *expected_md5sum)
void UnloadPage(FPDF_PAGE page)
FPDF_DOCUMENT document() const
bool StartRenderPage(FPDF_PAGE page, IFSDK_PAUSE *pause)
bool ContinueRenderPage(FPDF_PAGE page, IFSDK_PAUSE *pause)
ScopedFPDFBitmap FinishRenderPageWithForms(FPDF_PAGE page, FPDF_FORMHANDLE handle)
ScopedFPDFBitmap RenderPageWithForcedColorScheme(FPDF_PAGE page, FPDF_FORMHANDLE handle, int flags, const FPDF_COLORSCHEME *color_scheme, FX_ARGB background_color)
bool StartRenderPageWithFlags(FPDF_PAGE page, IFSDK_PAUSE *pause, int flags)
bool StartRenderPageWithColorSchemeAndBackground(FPDF_PAGE page, IFSDK_PAUSE *pause, int flags, const FPDF_COLORSCHEME *color_scheme, uint32_t background_color)
void VerifyRenderingWithColorScheme(int page_num, int flags, const FPDF_COLORSCHEME *color_scheme, FX_ARGB background_color, int bitmap_width, int bitmap_height, const char *md5)
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPage_HasTransparency(FPDF_PAGE page)
#define FPDF_RENDER_TOBECONTINUED
FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPageBitmapWithColorScheme_Start(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y, int rotate, int flags, const FPDF_COLORSCHEME *color_scheme, IFSDK_PAUSE *pause)
FPDF_EXPORT void FPDF_CALLCONV FPDF_RenderPage_Close(FPDF_PAGE page)
FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPageBitmap_Start(FPDF_BITMAP bitmap, FPDF_PAGE page, int start_x, int start_y, int size_x, int size_y, int rotate, int flags, IFSDK_PAUSE *pause)
FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPage_Continue(FPDF_PAGE page, IFSDK_PAUSE *pause)
TEST_F(FPDFProgressiveRenderEmbedderTest, RenderWithoutPause)
FPDF_EXPORT double FPDF_CALLCONV FPDF_GetPageWidth(FPDF_PAGE page)
FPDF_EXPORT double FPDF_CALLCONV FPDF_GetPageHeight(FPDF_PAGE page)
#define FPDF_CONVERT_FILL_TO_STROKE
Definition fpdfview.h:821
#define FPDF_CALLCONV
Definition fpdfview.h:229
#define FPDF_EXPORT
Definition fpdfview.h:223
#define FPDF_ANNOT
Definition fpdfview.h:790
uint32_t FX_ARGB
Definition fx_dib.h:36
const char * AnnotationStampWithApChecksum()
const char * TextFormChecksum()