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.
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
7 #ifndef PUBLIC_FPDF_SAVE_H_
8 #define PUBLIC_FPDF_SAVE_H_
16 // Structure for custom file write
17 typedef struct FPDF_FILEWRITE_ {
19 // Version number of the interface. Currently must be 1.
25 // Output a block of data in your custom way.
28 // Implementation Required:
31 // Called by function FPDF_SaveDocument
33 // pThis - Pointer to the structure itself
34 // pData - Pointer to a buffer to output
35 // size - The size of the buffer.
37 // Should be non-zero if successful, zero for error.
39 int (*WriteBlock)(struct FPDF_FILEWRITE_* pThis,
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
52 // Function: FPDF_SaveAsCopy
53 // Saves the copy of specified document in custom way.
55 // document - Handle to document. Returned by
56 // FPDF_LoadDocument and FPDF_CreateNewDocument.
57 // pFileWrite - A pointer to a custom file write structure.
58 // flags - The creating flags.
60 // TRUE for succeed, FALSE for failed.
62 DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveAsCopy(FPDF_DOCUMENT document,
63 FPDF_FILEWRITE* pFileWrite,
66 // Function: FPDF_SaveWithVersion
67 // Same as function ::FPDF_SaveAsCopy, except the file version of the
68 // saved document could be specified by user.
70 // document - Handle to document.
71 // pFileWrite - A pointer to a custom file write structure.
72 // flags - The creating flags.
73 // fileVersion - The PDF file version. File version: 14 for 1.4,
76 // TRUE if succeed, FALSE if failed.
78 DLLEXPORT FPDF_BOOL STDCALL FPDF_SaveWithVersion(FPDF_DOCUMENT document,
79 FPDF_FILEWRITE* pFileWrite,
87 #endif // PUBLIC_FPDF_SAVE_H_