diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a700da3..443ccacd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/dependencies/pdfium/win/VERSION b/dependencies/pdfium/win/VERSION index ce332316..6650d097 100644 --- a/dependencies/pdfium/win/VERSION +++ b/dependencies/pdfium/win/VERSION @@ -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. \ No newline at end of file +Binaries are from: https://github.com/bblanchon/pdfium-binaries diff --git a/dependencies/pdfium/win/arm64/pdfium.dll b/dependencies/pdfium/win/arm64/pdfium.dll index b2d8f9f5..9f1bbc4f 100644 Binary files a/dependencies/pdfium/win/arm64/pdfium.dll and b/dependencies/pdfium/win/arm64/pdfium.dll differ diff --git a/dependencies/pdfium/win/arm64/pdfium.lib b/dependencies/pdfium/win/arm64/pdfium.lib index 1f326be8..d941bf3b 100644 Binary files a/dependencies/pdfium/win/arm64/pdfium.lib and b/dependencies/pdfium/win/arm64/pdfium.lib differ diff --git a/dependencies/pdfium/win/public/cpp/fpdf_deleters.h b/dependencies/pdfium/win/public/cpp/fpdf_deleters.h index d58f8d59..55b85d9e 100644 --- a/dependencies/pdfium/win/public/cpp/fpdf_deleters.h +++ b/dependencies/pdfium/win/public/cpp/fpdf_deleters.h @@ -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<>. diff --git a/dependencies/pdfium/win/public/cpp/fpdf_scopers.h b/dependencies/pdfium/win/public/cpp/fpdf_scopers.h index fd9ce699..34cf9c46 100644 --- a/dependencies/pdfium/win/public/cpp/fpdf_scopers.h +++ b/dependencies/pdfium/win/public/cpp/fpdf_scopers.h @@ -8,7 +8,7 @@ #include #include -#include "public/cpp/fpdf_deleters.h" +#include "fpdf_deleters.h" // Versions of FPDF types that clean up the object at scope exit. diff --git a/dependencies/pdfium/win/public/fpdf_annot.h b/dependencies/pdfium/win/public/fpdf_annot.h index ef30d9a2..0aa9f688 100644 --- a/dependencies/pdfium/win/public/fpdf_annot.h +++ b/dependencies/pdfium/win/public/fpdf_annot.h @@ -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. // diff --git a/dependencies/pdfium/win/public/fpdf_attachment.h b/dependencies/pdfium/win/public/fpdf_attachment.h index d25bddab..a8a40b34 100644 --- a/dependencies/pdfium/win/public/fpdf_attachment.h +++ b/dependencies/pdfium/win/public/fpdf_attachment.h @@ -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 diff --git a/dependencies/pdfium/win/public/fpdf_edit.h b/dependencies/pdfium/win/public/fpdf_edit.h index f4e08c75..0f3c4c5e 100644 --- a/dependencies/pdfium/win/public/fpdf_edit.h +++ b/dependencies/pdfium/win/public/fpdf_edit.h @@ -9,7 +9,7 @@ #include -// 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 diff --git a/dependencies/pdfium/win/public/fpdf_save.h b/dependencies/pdfium/win/public/fpdf_save.h index 800d4e75..ca700903 100644 --- a/dependencies/pdfium/win/public/fpdf_save.h +++ b/dependencies/pdfium/win/public/fpdf_save.h @@ -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. // diff --git a/dependencies/pdfium/win/public/fpdf_sysfontinfo.h b/dependencies/pdfium/win/public/fpdf_sysfontinfo.h index 2dac855a..07bec0dd 100644 --- a/dependencies/pdfium/win/public/fpdf_sysfontinfo.h +++ b/dependencies/pdfium/win/public/fpdf_sysfontinfo.h @@ -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 } diff --git a/dependencies/pdfium/win/public/fpdfview.h b/dependencies/pdfium/win/public/fpdfview.h index dca36fdf..fb9b6998 100644 --- a/dependencies/pdfium/win/public/fpdfview.h +++ b/dependencies/pdfium/win/public/fpdfview.h @@ -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) diff --git a/dependencies/pdfium/win/x64/pdfium.dll b/dependencies/pdfium/win/x64/pdfium.dll index 3dec9d0d..d1c370aa 100644 Binary files a/dependencies/pdfium/win/x64/pdfium.dll and b/dependencies/pdfium/win/x64/pdfium.dll differ diff --git a/dependencies/pdfium/win/x64/pdfium.lib b/dependencies/pdfium/win/x64/pdfium.lib index 3b106850..30a33834 100644 Binary files a/dependencies/pdfium/win/x64/pdfium.lib and b/dependencies/pdfium/win/x64/pdfium.lib differ diff --git a/dependencies/pdfium/win/x86/pdfium.dll b/dependencies/pdfium/win/x86/pdfium.dll index 529a5738..23715a14 100644 Binary files a/dependencies/pdfium/win/x86/pdfium.dll and b/dependencies/pdfium/win/x86/pdfium.dll differ diff --git a/dependencies/pdfium/win/x86/pdfium.lib b/dependencies/pdfium/win/x86/pdfium.lib index 46cce038..f19178ae 100644 Binary files a/dependencies/pdfium/win/x86/pdfium.lib and b/dependencies/pdfium/win/x86/pdfium.lib differ