// 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_SAVE_H_ #define PUBLIC_FPDF_SAVE_H_ // clang-format off // NOLINTNEXTLINE(build/include) #include "fpdfview.h" #ifdef __cplusplus extern "C" { #endif // Structure for custom file write typedef struct FPDF_FILEWRITE_ { // // Version number of the interface. Currently must be 1. // int version; // Method: WriteBlock // Output a block of data in your custom way. // Interface Version: // 1 // Implementation Required: // Yes // Comments: // Called by function FPDF_SaveDocument // Parameters: // pThis - Pointer to the structure itself // pData - Pointer to a buffer to output // size - The size of the buffer. // Return value: // Should be non-zero if successful, zero for error. int (*WriteBlock)(struct FPDF_FILEWRITE_* pThis, const void* pData, unsigned long size); } FPDF_FILEWRITE; // Flags for FPDF_SaveAsCopy() #define FPDF_INCREMENTAL 1 #define FPDF_NO_INCREMENTAL 2 #define FPDF_REMOVE_SECURITY 3 // Function: FPDF_SaveAsCopy // Saves the copy of specified document in custom way. // Parameters: // 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. // Return value: // TRUE for succeed, FALSE for failed. // FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_SaveAsCopy(FPDF_DOCUMENT document, FPDF_FILEWRITE* pFileWrite, FPDF_DWORD flags); // Function: FPDF_SaveWithVersion // Same as FPDF_SaveAsCopy(), except the file version of the // saved document can be specified by the caller. // Parameters: // document - Handle to document. // pFileWrite - A pointer to a custom file write structure. // flags - The creating flags. // fileVersion - The PDF file version. File version: 14 for 1.4, // 15 for 1.5, ... // Return value: // TRUE if succeed, FALSE if failed. // FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_SaveWithVersion(FPDF_DOCUMENT document, FPDF_FILEWRITE* pFileWrite, FPDF_DWORD flags, int fileVersion); #ifdef __cplusplus } #endif #endif // PUBLIC_FPDF_SAVE_H_