| // Copyright 2014 PDFium Authors. All rights reserved. |
| // 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_ |
| |
| // 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; |
| |
| /** @brief Incremental. */ |
| #define FPDF_INCREMENTAL 1 |
| /** @brief No Incremental. */ |
| #define FPDF_NO_INCREMENTAL 2 |
| /** @brief Remove security. */ |
| #define FPDF_REMOVE_SECURITY 3 |
| |
| // Function: FPDF_SaveAsCopy |
| // Saves the copy of specified document in custom way. |
| // Parameters: |
| // document - Handle to document. Returned by |
| // FPDF_LoadDocument and 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 function ::FPDF_SaveAsCopy, except the file version of the |
| // saved document could be specified by user. |
| // 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_ |