| // 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_ |