Update pdfium binaries for Windows builds
Some checks failed
Build / Initialization (push) Has been cancelled
Build / Code Format Validation (push) Has been cancelled
Build / Linux (Qt5) (push) Has been cancelled
Build / Linux (Qt6) (push) Has been cancelled
Build / Linux (Qt6 + 7zip) (push) Has been cancelled
Build / macOS (Qt6 Universal) (push) Has been cancelled
Build / macOS (Qt5) (push) Has been cancelled
Build / Windows x64 (Qt5) (push) Has been cancelled
Build / Windows x64 (Qt6) (push) Has been cancelled
Build / Windows ARM64 (Qt6) (push) Has been cancelled
Build / Windows x86 (Qt5) (push) Has been cancelled
Build / Docker amd64 Image (push) Has been cancelled
Build / Docker arm64 Image (push) Has been cancelled
Build / Publish Dev Builds (push) Has been cancelled
Build / Publish Release (push) Has been cancelled

It fixes rendering problems with newer PDFs.
This commit is contained in:
luisangelsm
2025-12-02 16:30:10 +01:00
parent d80e82fe87
commit c7ff185a45
16 changed files with 259 additions and 87 deletions

View File

@ -27,6 +27,9 @@ Version counting is based on semantic versioning (Major.Feature.Patch)
### YACReaderLibraryServer
* Log libraries validation when the app starts.
### All apps
* PDF libraries have been updated for all Windows builds.
## 9.15.0
### YACReader

View File

@ -1,29 +1,3 @@
TODO: this file needs to be updated
144.0.7557.0 (2/12/2025)
YACReader for Windows uses a shared library version of pdfium.
pdfium branch used for building: chromium/6668
Build parameters used (gn args):
pdf_enable_v8 = false
pdf_enable_xfa = false
is_debug = false
symbol_level = 0
use_jumbo_build = true
For 32 bit builds:
target_cpu="x86"
For 64 bit builds:
target_cpu="x64"
Instructions on building pdfium can be found at https://pdfium.googlesource.com/pdfium
To build a shared library, the source code has to be patched. A patch file with the
necessary modifications can be found in this directory (pdfium_shared_library.patch).
It is recommended to always use the branch the current stable version of Chromium uses.
To get the pdfium branch corresponding to Chromium stable, look at
http://omahaproxy.appspot.com and search for the true_branch variable associated with
the current stable dev channel of Chromium.
Binaries are from: https://github.com/bblanchon/pdfium-binaries

Binary file not shown.

Binary file not shown.

View File

@ -5,15 +5,15 @@
#ifndef PUBLIC_CPP_FPDF_DELETERS_H_
#define PUBLIC_CPP_FPDF_DELETERS_H_
#include "public/fpdf_annot.h"
#include "public/fpdf_dataavail.h"
#include "public/fpdf_edit.h"
#include "public/fpdf_formfill.h"
#include "public/fpdf_javascript.h"
#include "public/fpdf_structtree.h"
#include "public/fpdf_text.h"
#include "public/fpdf_transformpage.h"
#include "public/fpdfview.h"
#include "../fpdf_annot.h"
#include "../fpdf_dataavail.h"
#include "../fpdf_edit.h"
#include "../fpdf_formfill.h"
#include "../fpdf_javascript.h"
#include "../fpdf_structtree.h"
#include "../fpdf_text.h"
#include "../fpdf_transformpage.h"
#include "../fpdfview.h"
// Custom deleters for using FPDF_* types with std::unique_ptr<>.

View File

@ -8,7 +8,7 @@
#include <memory>
#include <type_traits>
#include "public/cpp/fpdf_deleters.h"
#include "fpdf_deleters.h"
// Versions of FPDF types that clean up the object at scope exit.

View File

@ -289,7 +289,7 @@ FPDFAnnot_RemoveObject(FPDF_ANNOTATION annot, int index);
// Experimental API.
// Set the color of an annotation. Fails when called on annotations with
// appearance streams already defined; instead use
// FPDFPath_Set{Stroke|Fill}Color().
// FPDFPageObj_Set{Stroke|Fill}Color().
//
// annot - handle to an annotation.
// type - type of the color to be set.
@ -308,7 +308,7 @@ FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFAnnot_SetColor(FPDF_ANNOTATION annot,
// Get the color of an annotation. If no color is specified, default to yellow
// for highlight annotation, black for all else. Fails when called on
// annotations with appearance streams already defined; instead use
// FPDFPath_Get{Stroke|Fill}Color().
// FPDFPageObj_Get{Stroke|Fill}Color().
//
// annot - handle to an annotation.
// type - type of the color requested.
@ -685,6 +685,20 @@ FPDF_EXPORT int FPDF_CALLCONV
FPDFAnnot_GetFormFieldFlags(FPDF_FORMHANDLE handle,
FPDF_ANNOTATION annot);
// Experimental API.
// Sets the form field flags for an interactive form annotation.
//
// handle - the handle to the form fill module, returned by
// FPDFDOC_InitFormFillEnvironment().
// annot - handle to an interactive form annotation.
// flags - the form field flags to be set.
//
// Returns true if successful.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFAnnot_SetFormFieldFlags(FPDF_FORMHANDLE handle,
FPDF_ANNOTATION annot,
int flags);
// Experimental API.
// Retrieves an interactive form annotation whose rectangle contains a given
// point on a page. Must call FPDFPage_CloseAnnot() when the annotation returned
@ -845,6 +859,27 @@ FPDFAnnot_GetFontSize(FPDF_FORMHANDLE hHandle,
FPDF_ANNOTATION annot,
float* value);
// Experimental API.
// Set the text color of an annotation.
//
// handle - handle to the form fill module, returned by
// FPDFDOC_InitFormFillEnvironment.
// annot - handle to an annotation.
// R - the red component for the text color.
// G - the green component for the text color.
// B - the blue component for the text color.
//
// Returns true if successful.
//
// Currently supported subtypes: freetext.
// The range for the color components is 0 to 255.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFAnnot_SetFontColor(FPDF_FORMHANDLE handle,
FPDF_ANNOTATION annot,
unsigned int R,
unsigned int G,
unsigned int B);
// Experimental API.
// Get the RGB value of the font color for an |annot| with variable text.
//

View File

@ -172,6 +172,23 @@ FPDFAttachment_GetFile(FPDF_ATTACHMENT attachment,
unsigned long buflen,
unsigned long* out_buflen);
// Experimental API.
// Get the MIME type (Subtype) of the embedded file |attachment|. |buffer| is
// only modified if |buflen| is longer than the length of the MIME type string.
// If the Subtype is not found or if there is no file stream, an empty string
// would be copied to |buffer| and the return value would be 2. On other errors,
// nothing would be added to |buffer| and the return value would be 0.
//
// attachment - handle to an attachment.
// buffer - buffer for holding the MIME type string encoded in UTF-16LE.
// buflen - length of the buffer in bytes.
//
// Returns the length of the MIME type string in bytes.
FPDF_EXPORT unsigned long FPDF_CALLCONV
FPDFAttachment_GetSubtype(FPDF_ATTACHMENT attachment,
FPDF_WCHAR* buffer,
unsigned long buflen);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus

View File

@ -9,7 +9,7 @@
#include <stdint.h>
// NOLINTNEXTLINE(build/include)
// NOLINTNEXTLINE(build/include_directory)
#include "fpdfview.h"
#define FPDF_ARGB(a, r, g, b) \
@ -187,6 +187,24 @@ FPDF_EXPORT void FPDF_CALLCONV FPDFPage_SetRotation(FPDF_PAGE page, int rotate);
FPDF_EXPORT void FPDF_CALLCONV
FPDFPage_InsertObject(FPDF_PAGE page, FPDF_PAGEOBJECT page_object);
// Insert |page_object| into |page| at the specified |index|.
//
// page - handle to a page
// page_object - handle to a page object as previously obtained by
// FPDFPageObj_CreateNew{Path|Rect}() or
// FPDFPageObj_New{Text|Image}Obj(). Ownership of the object
// is transferred back to PDFium.
// index - the index position to insert the object at. If index equals
// the current object count, the object will be appended to the
// end. If index is greater than the object count, the function
// will fail and return false.
//
// Returns true if successful.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFPage_InsertObjectAtIndex(FPDF_PAGE page,
FPDF_PAGEOBJECT page_object,
size_t index);
// Experimental API.
// Remove |page_object| from |page|.
//
@ -260,6 +278,38 @@ FPDFPageObj_HasTransparency(FPDF_PAGEOBJECT page_object);
// error.
FPDF_EXPORT int FPDF_CALLCONV FPDFPageObj_GetType(FPDF_PAGEOBJECT page_object);
// Experimental API.
// Gets active state for |page_object| within page.
//
// page_object - handle to a page object.
// active - pointer to variable that will receive if the page object is
// active. This is a required parameter. Not filled if FALSE
// is returned.
//
// For page objects where |active| is filled with FALSE, the |page_object| is
// treated as if it wasn't in the document even though it is still held
// internally.
//
// Returns TRUE if the operation succeeded, FALSE if it failed.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFPageObj_GetIsActive(FPDF_PAGEOBJECT page_object, FPDF_BOOL* active);
// Experimental API.
// Sets if |page_object| is active within page.
//
// page_object - handle to a page object.
// active - a boolean specifying if the object is active.
//
// Returns TRUE on success.
//
// Page objects all start in the active state by default, and remain in that
// state unless this function is called.
//
// When |active| is false, this makes the |page_object| be treated as if it
// wasn't in the document even though it is still held internally.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFPageObj_SetIsActive(FPDF_PAGEOBJECT page_object, FPDF_BOOL active);
// Transform |page_object| by the given matrix.
//
// page_object - handle to a page object.
@ -424,17 +474,18 @@ FPDFPageObj_RemoveMark(FPDF_PAGEOBJECT page_object, FPDF_PAGEOBJECTMARK mark);
//
// mark - handle to a content mark.
// buffer - buffer for holding the returned name in UTF-16LE. This is only
// modified if |buflen| is longer than the length of the name.
// modified if |buflen| is large enough to store the name.
// Optional, pass null to just retrieve the size of the buffer
// needed.
// buflen - length of the buffer.
// buflen - length of the buffer in bytes.
// out_buflen - pointer to variable that will receive the minimum buffer size
// to contain the name. Not filled if FALSE is returned.
// in bytes to contain the name. This is a required parameter.
// Not filled if FALSE is returned.
//
// Returns TRUE if the operation succeeded, FALSE if it failed.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFPageObjMark_GetName(FPDF_PAGEOBJECTMARK mark,
void* buffer,
FPDF_WCHAR* buffer,
unsigned long buflen,
unsigned long* out_buflen);
@ -454,18 +505,19 @@ FPDFPageObjMark_CountParams(FPDF_PAGEOBJECTMARK mark);
// mark - handle to a content mark.
// index - index of the property.
// buffer - buffer for holding the returned key in UTF-16LE. This is only
// modified if |buflen| is longer than the length of the key.
// modified if |buflen| is large enough to store the key.
// Optional, pass null to just retrieve the size of the buffer
// needed.
// buflen - length of the buffer.
// buflen - length of the buffer in bytes.
// out_buflen - pointer to variable that will receive the minimum buffer size
// to contain the key. Not filled if FALSE is returned.
// in bytes to contain the name. This is a required parameter.
// Not filled if FALSE is returned.
//
// Returns TRUE if the operation was successful, FALSE otherwise.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFPageObjMark_GetParamKey(FPDF_PAGEOBJECTMARK mark,
unsigned long index,
void* buffer,
FPDF_WCHAR* buffer,
unsigned long buflen,
unsigned long* out_buflen);
@ -496,25 +548,41 @@ FPDFPageObjMark_GetParamIntValue(FPDF_PAGEOBJECTMARK mark,
FPDF_BYTESTRING key,
int* out_value);
// Experimental API.
// Get the value of a number property in a content mark by key as float.
// FPDFPageObjMark_GetParamValueType() should have returned FPDF_OBJECT_NUMBER
// for this property.
//
// mark - handle to a content mark.
// key - string key of the property.
// out_value - pointer to variable that will receive the value. Not filled if
// false is returned.
//
// Returns TRUE if the key maps to a number value, FALSE otherwise.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFPageObjMark_GetParamFloatValue(FPDF_PAGEOBJECTMARK mark,
FPDF_BYTESTRING key,
float* out_value);
// Experimental API.
// Get the value of a string property in a content mark by key.
//
// mark - handle to a content mark.
// key - string key of the property.
// buffer - buffer for holding the returned value in UTF-16LE. This is
// only modified if |buflen| is longer than the length of the
// value.
// only modified if |buflen| is large enough to store the value.
// Optional, pass null to just retrieve the size of the buffer
// needed.
// buflen - length of the buffer.
// buflen - length of the buffer in bytes.
// out_buflen - pointer to variable that will receive the minimum buffer size
// to contain the value. Not filled if FALSE is returned.
// in bytes to contain the name. This is a required parameter.
// Not filled if FALSE is returned.
//
// Returns TRUE if the key maps to a string/blob value, FALSE otherwise.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFPageObjMark_GetParamStringValue(FPDF_PAGEOBJECTMARK mark,
FPDF_BYTESTRING key,
void* buffer,
FPDF_WCHAR* buffer,
unsigned long buflen,
unsigned long* out_buflen);
@ -524,18 +592,19 @@ FPDFPageObjMark_GetParamStringValue(FPDF_PAGEOBJECTMARK mark,
// mark - handle to a content mark.
// key - string key of the property.
// buffer - buffer for holding the returned value. This is only modified
// if |buflen| is at least as long as the length of the value.
// if |buflen| is large enough to store the value.
// Optional, pass null to just retrieve the size of the buffer
// needed.
// buflen - length of the buffer.
// buflen - length of the buffer in bytes.
// out_buflen - pointer to variable that will receive the minimum buffer size
// to contain the value. Not filled if FALSE is returned.
// in bytes to contain the name. This is a required parameter.
// Not filled if FALSE is returned.
//
// Returns TRUE if the key maps to a string/blob value, FALSE otherwise.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFPageObjMark_GetParamBlobValue(FPDF_PAGEOBJECTMARK mark,
FPDF_BYTESTRING key,
void* buffer,
unsigned char* buffer,
unsigned long buflen,
unsigned long* out_buflen);
@ -558,6 +627,25 @@ FPDFPageObjMark_SetIntParam(FPDF_DOCUMENT document,
FPDF_BYTESTRING key,
int value);
// Experimental API.
// Set the value of a float property in a content mark by key. If a parameter
// with key |key| exists, its value is set to |value|. Otherwise, it is added as
// a new parameter.
//
// document - handle to the document.
// page_object - handle to the page object with the mark.
// mark - handle to a content mark.
// key - string key of the property.
// value - float value to set.
//
// Returns TRUE if the operation succeeded, FALSE otherwise.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFPageObjMark_SetFloatParam(FPDF_DOCUMENT document,
FPDF_PAGEOBJECT page_object,
FPDF_PAGEOBJECTMARK mark,
FPDF_BYTESTRING key,
float value);
// Experimental API.
// Set the value of a string property in a content mark by key. If a parameter
// with key |key| exists, its value is set to |value|. Otherwise, it is added as
@ -595,7 +683,7 @@ FPDFPageObjMark_SetBlobParam(FPDF_DOCUMENT document,
FPDF_PAGEOBJECT page_object,
FPDF_PAGEOBJECTMARK mark,
FPDF_BYTESTRING key,
void* value,
const unsigned char* value,
unsigned long value_len);
// Experimental API.
@ -807,6 +895,31 @@ FPDFImageObj_GetImagePixelSize(FPDF_PAGEOBJECT image_object,
unsigned int* width,
unsigned int* height);
// Experimental API.
// Get ICC profile decoded data of |image_object|. If the |image_object| is not
// an image object or if it does not have an image, then the return value will
// be false. It also returns false if the |image_object| has no ICC profile.
// |buffer| is only modified if ICC profile exists and |buflen| is longer than
// the length of the ICC profile decoded data.
//
// image_object - handle to an image object; must not be NULL.
// page - handle to the page containing |image_object|; must not be
// NULL. Required for retrieving the image's colorspace.
// buffer - Buffer to receive ICC profile data; may be NULL if querying
// required size via |out_buflen|.
// buflen - Length of the buffer in bytes. Ignored if |buffer| is NULL.
// out_buflen - Pointer to receive the ICC profile data size in bytes; must
// not be NULL. Will be set if this API returns true.
//
// Returns true if |out_buflen| is not null and an ICC profile exists for the
// given |image_object|.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFImageObj_GetIccProfileDataDecoded(FPDF_PAGEOBJECT image_object,
FPDF_PAGE page,
uint8_t* buffer,
size_t buflen,
size_t* out_buflen);
// Create a new path object at an initial position.
//
// x - initial horizontal position.
@ -1557,6 +1670,21 @@ FPDFFormObj_CountObjects(FPDF_PAGEOBJECT form_object);
FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV
FPDFFormObj_GetObject(FPDF_PAGEOBJECT form_object, unsigned long index);
// Experimental API.
//
// Remove |page_object| from |form_object|.
//
// form_object - handle to a form object.
// page_object - handle to a page object to be removed from the form.
//
// Returns TRUE on success.
//
// Ownership of the removed |page_object| is transferred to the caller.
// Call FPDFPageObj_Destroy() on the removed page_object to free it.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
FPDFFormObj_RemoveObject(FPDF_PAGEOBJECT form_object,
FPDF_PAGEOBJECT page_object);
#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus

View File

@ -52,7 +52,8 @@ typedef struct FPDF_FILEWRITE_ {
// document - Handle to document, as returned by
// FPDF_LoadDocument() or FPDF_CreateNewDocument().
// pFileWrite - A pointer to a custom file write structure.
// flags - The creating flags.
// flags - Flags above that affect how the PDF gets saved.
// Pass in 0 when there are no flags.
// Return value:
// TRUE for succeed, FALSE for failed.
//

View File

@ -46,14 +46,17 @@ extern "C" {
// Interface: FPDF_SYSFONTINFO
// Interface for getting system font information and font mapping
typedef struct _FPDF_SYSFONTINFO {
// Version number of the interface. Currently must be 1.
// Version number of the interface. Currently must be 1 or 2.
// Version 1: Traditional behavior - calls EnumFonts during initialization.
// Version 2: Per-request behavior - skips EnumFonts, relies on MapFont.
// Experimental: Subject to change based on feedback.
int version;
// Method: Release
// Give implementation a chance to release any data after the
// interface is no longer used.
// Interface Version:
// 1
// 1 and 2
// Implementation Required:
// No
// Parameters:
@ -80,13 +83,15 @@ typedef struct _FPDF_SYSFONTINFO {
// Implementations should call FPDF_AddInstalledFont() function for
// each font found. Only TrueType/OpenType and Type1 fonts are
// accepted by PDFium.
// NOTE: This method will not be called when version is set to 2.
// Version 2 relies entirely on MapFont() for per-request matching.
void (*EnumFonts)(struct _FPDF_SYSFONTINFO* pThis, void* pMapper);
// Method: MapFont
// Use the system font mapper to get a font handle from requested
// parameters.
// Interface Version:
// 1
// 1 and 2
// Implementation Required:
// Required if GetFont method is not implemented.
// Parameters:
@ -122,7 +127,7 @@ typedef struct _FPDF_SYSFONTINFO {
// Method: GetFont
// Get a handle to a particular font by its internal ID
// Interface Version:
// 1
// 1 and 2
// Implementation Required:
// Required if MapFont method is not implemented.
// Return Value:
@ -138,7 +143,7 @@ typedef struct _FPDF_SYSFONTINFO {
// Method: GetFontData
// Get font data from a font
// Interface Version:
// 1
// 1 and 2
// Implementation Required:
// Yes
// Parameters:
@ -164,7 +169,7 @@ typedef struct _FPDF_SYSFONTINFO {
// Method: GetFaceName
// Get face name from a font handle
// Interface Version:
// 1
// 1 and 2
// Implementation Required:
// No
// Parameters:
@ -184,7 +189,7 @@ typedef struct _FPDF_SYSFONTINFO {
// Method: GetFontCharset
// Get character set information for a font handle
// Interface Version:
// 1
// 1 and 2
// Implementation Required:
// No
// Parameters:
@ -197,7 +202,7 @@ typedef struct _FPDF_SYSFONTINFO {
// Method: DeleteFont
// Delete a font handle
// Interface Version:
// 1
// 1 and 2
// Implementation Required:
// Yes
// Parameters:
@ -270,7 +275,7 @@ FPDF_EXPORT void FPDF_CALLCONV FPDF_AddInstalledFont(void* mapper,
// Function: FPDF_SetSystemFontInfo
// Set the system font info interface into PDFium
// Parameters:
// pFontInfo - Pointer to a FPDF_SYSFONTINFO structure
// font_info - Pointer to a FPDF_SYSFONTINFO structure
// Return Value:
// None
// Comments:
@ -281,7 +286,7 @@ FPDF_EXPORT void FPDF_CALLCONV FPDF_AddInstalledFont(void* mapper,
// Call this with NULL to tell PDFium to stop using a previously set
// |FPDF_SYSFONTINFO|.
FPDF_EXPORT void FPDF_CALLCONV
FPDF_SetSystemFontInfo(FPDF_SYSFONTINFO* pFontInfo);
FPDF_SetSystemFontInfo(FPDF_SYSFONTINFO* font_info);
// Function: FPDF_GetDefaultSystemFontInfo
// Get default system font info interface for current platform
@ -301,14 +306,14 @@ FPDF_EXPORT FPDF_SYSFONTINFO* FPDF_CALLCONV FPDF_GetDefaultSystemFontInfo();
// Function: FPDF_FreeDefaultSystemFontInfo
// Free a default system font info interface
// Parameters:
// pFontInfo - Pointer to a FPDF_SYSFONTINFO structure
// font_info - Pointer to a FPDF_SYSFONTINFO structure
// Return Value:
// None
// Comments:
// This function should be called on the output from
// FPDF_GetDefaultSystemFontInfo() once it is no longer needed.
FPDF_EXPORT void FPDF_CALLCONV
FPDF_FreeDefaultSystemFontInfo(FPDF_SYSFONTINFO* pFontInfo);
FPDF_FreeDefaultSystemFontInfo(FPDF_SYSFONTINFO* font_info);
#ifdef __cplusplus
}

View File

@ -203,9 +203,6 @@ typedef int FPDF_ANNOT_APPEARANCEMODE;
// Dictionary value types.
typedef int FPDF_OBJECT_TYPE;
// #if defined(COMPONENT_BUILD)
// FPDF_EXPORT should be consistent with |export| in the pdfium_fuzzer
// template in testing/fuzzers/BUILD.gn.
#if defined(WIN32)
#if defined(FPDF_IMPLEMENTATION)
#define FPDF_EXPORT __declspec(dllexport)
@ -219,9 +216,6 @@ typedef int FPDF_OBJECT_TYPE;
#define FPDF_EXPORT
#endif // defined(FPDF_IMPLEMENTATION)
#endif // defined(WIN32)
// #else
// #define FPDF_EXPORT
// #endif // defined(COMPONENT_BUILD)
#if defined(WIN32) && defined(FPDFSDK_EXPORTS)
#define FPDF_CALLCONV __stdcall
@ -701,6 +695,8 @@ FPDF_EXPORT FPDF_PAGE FPDF_CALLCONV FPDF_LoadPage(FPDF_DOCUMENT document,
// Return value:
// Page width (excluding non-displayable area) measured in points.
// One point is 1/72 inch (around 0.3528 mm).
// Comments:
// Changing the rotation of |page| affects the return value.
FPDF_EXPORT float FPDF_CALLCONV FPDF_GetPageWidthF(FPDF_PAGE page);
// Function: FPDF_GetPageWidth
@ -713,6 +709,8 @@ FPDF_EXPORT float FPDF_CALLCONV FPDF_GetPageWidthF(FPDF_PAGE page);
// Note:
// Prefer FPDF_GetPageWidthF() above. This will be deprecated in the
// future.
// Comments:
// Changing the rotation of |page| affects the return value.
FPDF_EXPORT double FPDF_CALLCONV FPDF_GetPageWidth(FPDF_PAGE page);
// Experimental API
@ -723,6 +721,8 @@ FPDF_EXPORT double FPDF_CALLCONV FPDF_GetPageWidth(FPDF_PAGE page);
// Return value:
// Page height (excluding non-displayable area) measured in points.
// One point is 1/72 inch (around 0.3528 mm)
// Comments:
// Changing the rotation of |page| affects the return value.
FPDF_EXPORT float FPDF_CALLCONV FPDF_GetPageHeightF(FPDF_PAGE page);
// Function: FPDF_GetPageHeight
@ -735,6 +735,8 @@ FPDF_EXPORT float FPDF_CALLCONV FPDF_GetPageHeightF(FPDF_PAGE page);
// Note:
// Prefer FPDF_GetPageHeightF() above. This will be deprecated in the
// future.
// Comments:
// Changing the rotation of |page| affects the return value.
FPDF_EXPORT double FPDF_CALLCONV FPDF_GetPageHeight(FPDF_PAGE page);
// Experimental API.
@ -850,15 +852,16 @@ typedef struct FPDF_COLORSCHEME_ {
// flags - 0 for normal display, or combination of flags
// defined above.
// Return value:
// None.
FPDF_EXPORT void FPDF_CALLCONV FPDF_RenderPage(HDC dc,
FPDF_PAGE page,
int start_x,
int start_y,
int size_x,
int size_y,
int rotate,
int flags);
// Returns true if the page is rendered successfully, false otherwise.
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_RenderPage(HDC dc,
FPDF_PAGE page,
int start_x,
int start_y,
int size_x,
int size_y,
int rotate,
int flags);
#endif
// Function: FPDF_RenderPageBitmap
@ -1087,7 +1090,13 @@ FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV FPDFBitmap_Create(int width,
// 4 bytes per pixel, byte order: blue, green, red, unused.
#define FPDFBitmap_BGRx 3
// 4 bytes per pixel, byte order: blue, green, red, alpha.
// Pixel components are independent of alpha.
#define FPDFBitmap_BGRA 4
// 4 bytes per pixel, byte order: blue, green, red, alpha.
// Pixel components are premultiplied by alpha.
// Note that this is experimental and only supported when rendering with
// |FPDF_RENDERER_TYPE| is set to |FPDF_RENDERERTYPE_SKIA|.
#define FPDFBitmap_BGRA_Premul 5
// Function: FPDFBitmap_CreateEx
// Create a device independent bitmap (FXDIB)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.