1// Copyright 2014 PDFium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7#ifndef PUBLIC_FPDF_SAVE_H_ 8#define PUBLIC_FPDF_SAVE_H_ 9 10#include "fpdfview.h" 11 12#ifdef __cplusplus 13extern "C" { 14#endif 15 16 17// Structure for custom file write 18typedef struct FPDF_FILEWRITE_ { 19 20 // 21 //Version number of the interface. Currently must be 1. 22 // 23 int version; 24 25 // 26 // Method: WriteBlock 27 // Output a block of data in your custom way. 28 // Interface Version: 29 // 1 30 // Implementation Required: 31 // Yes 32 // Comments: 33 // Called by function FPDF_SaveDocument 34 // Parameters: 35 // pThis - Pointer to the structure itself 36 // pData - Pointer to a buffer to output 37 // size - The size of the buffer. 38 // Return value: 39 // Should be non-zero if successful, zero for error. 40 // 41 int (*WriteBlock)(struct FPDF_FILEWRITE_* pThis, const void* pData, unsigned long size); 42 43} FPDF_FILEWRITE; 44 45/** @brief Incremental. */ 46#define FPDF_INCREMENTAL 1 47/** @brief No Incremental. */ 48#define FPDF_NO_INCREMENTAL 2 49/** @brief Remove security. */ 50#define FPDF_REMOVE_SECURITY 3 51 52// Function: FPDF_SaveAsCopy 53// Saves the copy of specified document in custom way. 54// Parameters: 55// document - Handle to document. Returned by FPDF_LoadDocument and FPDF_CreateNewDocument. 56// pFileWrite - A pointer to a custom file write structure. 57// flags - The creating flags. 58// Return value: 59// TRUE for succeed, FALSE for failed. 60// 61DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy( FPDF_DOCUMENT document,FPDF_FILEWRITE * pFileWrite, 62 FPDF_DWORD flags ); 63 64// Function: FPDF_SaveWithVersion 65// Same as function ::FPDF_SaveAsCopy, except the file version of the saved document could be specified by user. 66// Parameters: 67// document - Handle to document. 68// pFileWrite - A pointer to a custom file write structure. 69// flags - The creating flags. 70// fileVersion - The PDF file version. File version: 14 for 1.4, 15 for 1.5, ... 71// Return value: 72// TRUE if succeed, FALSE if failed. 73// 74DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion(FPDF_DOCUMENT document,FPDF_FILEWRITE * pFileWrite, 75 FPDF_DWORD flags, int fileVersion); 76 77#ifdef __cplusplus 78} 79#endif 80 81#endif // PUBLIC_FPDF_SAVE_H_ 82