mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
156 lines
7.2 KiB
C
156 lines
7.2 KiB
C
// Copyright 2014 The PDFium Authors
|
|
// 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 PUBLIC_FPDF_PROGRESSIVE_H_
|
|
#define PUBLIC_FPDF_PROGRESSIVE_H_
|
|
|
|
// clang-format off
|
|
// NOLINTNEXTLINE(build/include)
|
|
#include "fpdfview.h"
|
|
|
|
// Flags for progressive process status.
|
|
#define FPDF_RENDER_READY 0
|
|
#define FPDF_RENDER_TOBECONTINUED 1
|
|
#define FPDF_RENDER_DONE 2
|
|
#define FPDF_RENDER_FAILED 3
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// IFPDF_RENDERINFO interface.
|
|
typedef struct _IFSDK_PAUSE {
|
|
// Version number of the interface. Currently must be 1.
|
|
int version;
|
|
|
|
// Method: NeedToPauseNow
|
|
// Check if we need to pause a progressive process now.
|
|
// Interface Version:
|
|
// 1
|
|
// Implementation Required:
|
|
// yes
|
|
// Parameters:
|
|
// pThis - Pointer to the interface structure itself
|
|
// Return Value:
|
|
// Non-zero for pause now, 0 for continue.
|
|
FPDF_BOOL (*NeedToPauseNow)(struct _IFSDK_PAUSE* pThis);
|
|
|
|
// A user defined data pointer, used by user's application. Can be NULL.
|
|
void* user;
|
|
} IFSDK_PAUSE;
|
|
|
|
// Experimental API.
|
|
// Function: FPDF_RenderPageBitmapWithColorScheme_Start
|
|
// Start to render page contents to a device independent bitmap
|
|
// progressively with a specified color scheme for the content.
|
|
// Parameters:
|
|
// bitmap - Handle to the device independent bitmap (as the
|
|
// output buffer). Bitmap handle can be created by
|
|
// FPDFBitmap_Create function.
|
|
// page - Handle to the page as returned by FPDF_LoadPage
|
|
// function.
|
|
// start_x - Left pixel position of the display area in the
|
|
// bitmap coordinate.
|
|
// start_y - Top pixel position of the display area in the
|
|
// bitmap coordinate.
|
|
// size_x - Horizontal size (in pixels) for displaying the
|
|
// page.
|
|
// size_y - Vertical size (in pixels) for displaying the page.
|
|
// rotate - Page orientation: 0 (normal), 1 (rotated 90
|
|
// degrees clockwise), 2 (rotated 180 degrees),
|
|
// 3 (rotated 90 degrees counter-clockwise).
|
|
// flags - 0 for normal display, or combination of flags
|
|
// defined in fpdfview.h. With FPDF_ANNOT flag, it
|
|
// renders all annotations that does not require
|
|
// user-interaction, which are all annotations except
|
|
// widget and popup annotations.
|
|
// color_scheme - Color scheme to be used in rendering the |page|.
|
|
// If null, this function will work similar to
|
|
// FPDF_RenderPageBitmap_Start().
|
|
// pause - The IFSDK_PAUSE interface. A callback mechanism
|
|
// allowing the page rendering process.
|
|
// Return value:
|
|
// Rendering Status. See flags for progressive process status for the
|
|
// details.
|
|
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);
|
|
|
|
// Function: FPDF_RenderPageBitmap_Start
|
|
// Start to render page contents to a device independent bitmap
|
|
// progressively.
|
|
// Parameters:
|
|
// bitmap - Handle to the device independent bitmap (as the
|
|
// output buffer). Bitmap handle can be created by
|
|
// FPDFBitmap_Create().
|
|
// page - Handle to the page, as returned by FPDF_LoadPage().
|
|
// start_x - Left pixel position of the display area in the
|
|
// bitmap coordinates.
|
|
// start_y - Top pixel position of the display area in the bitmap
|
|
// coordinates.
|
|
// size_x - Horizontal size (in pixels) for displaying the page.
|
|
// size_y - Vertical size (in pixels) for displaying the page.
|
|
// rotate - Page orientation: 0 (normal), 1 (rotated 90 degrees
|
|
// clockwise), 2 (rotated 180 degrees), 3 (rotated 90
|
|
// degrees counter-clockwise).
|
|
// flags - 0 for normal display, or combination of flags
|
|
// defined in fpdfview.h. With FPDF_ANNOT flag, it
|
|
// renders all annotations that does not require
|
|
// user-interaction, which are all annotations except
|
|
// widget and popup annotations.
|
|
// pause - The IFSDK_PAUSE interface.A callback mechanism
|
|
// allowing the page rendering process
|
|
// Return value:
|
|
// Rendering Status. See flags for progressive process status for the
|
|
// details.
|
|
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);
|
|
|
|
// Function: FPDF_RenderPage_Continue
|
|
// Continue rendering a PDF page.
|
|
// Parameters:
|
|
// page - Handle to the page, as returned by FPDF_LoadPage().
|
|
// pause - The IFSDK_PAUSE interface (a callback mechanism
|
|
// allowing the page rendering process to be paused
|
|
// before it's finished). This can be NULL if you
|
|
// don't want to pause.
|
|
// Return value:
|
|
// The rendering status. See flags for progressive process status for
|
|
// the details.
|
|
FPDF_EXPORT int FPDF_CALLCONV FPDF_RenderPage_Continue(FPDF_PAGE page,
|
|
IFSDK_PAUSE* pause);
|
|
|
|
// Function: FPDF_RenderPage_Close
|
|
// Release the resource allocate during page rendering. Need to be
|
|
// called after finishing rendering or
|
|
// cancel the rendering.
|
|
// Parameters:
|
|
// page - Handle to the page, as returned by FPDF_LoadPage().
|
|
// Return value:
|
|
// None.
|
|
FPDF_EXPORT void FPDF_CALLCONV FPDF_RenderPage_Close(FPDF_PAGE page);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // PUBLIC_FPDF_PROGRESSIVE_H_
|