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