// 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_PPO_H_ #define PUBLIC_FPDF_PPO_H_ // NOLINTNEXTLINE(build/include) #include "fpdfview.h" #ifdef __cplusplus extern "C" { #endif // Experimental API. // Import pages to a FPDF_DOCUMENT. // // dest_doc - The destination document for the pages. // src_doc - The document to be imported. // page_indices - An array of page indices to be imported. The first page is // zero. If |page_indices| is NULL, all pages from |src_doc| // are imported. // length - The length of the |page_indices| array. // index - The page index at which to insert the first imported page // into |dest_doc|. The first page is zero. // // Returns TRUE on success. Returns FALSE if any pages in |page_indices| is // invalid. FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_ImportPagesByIndex(FPDF_DOCUMENT dest_doc, FPDF_DOCUMENT src_doc, const int* page_indices, unsigned long length, int index); // Import pages to a FPDF_DOCUMENT. // // dest_doc - The destination document for the pages. // src_doc - The document to be imported. // pagerange - A page range string, Such as "1,3,5-7". The first page is one. // If |pagerange| is NULL, all pages from |src_doc| are imported. // index - The page index at which to insert the first imported page into // |dest_doc|. The first page is zero. // // Returns TRUE on success. Returns FALSE if any pages in |pagerange| is // invalid or if |pagerange| cannot be read. FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_ImportPages(FPDF_DOCUMENT dest_doc, FPDF_DOCUMENT src_doc, FPDF_BYTESTRING pagerange, int index); // Experimental API. // Create a new document from |src_doc|. The pages of |src_doc| will be // combined to provide |num_pages_on_x_axis x num_pages_on_y_axis| pages per // |output_doc| page. // // src_doc - The document to be imported. // output_width - The output page width in PDF "user space" units. // output_height - The output page height in PDF "user space" units. // num_pages_on_x_axis - The number of pages on X Axis. // num_pages_on_y_axis - The number of pages on Y Axis. // // Return value: // A handle to the created document, or NULL on failure. // // Comments: // number of pages per page = num_pages_on_x_axis * num_pages_on_y_axis // FPDF_EXPORT FPDF_DOCUMENT FPDF_CALLCONV FPDF_ImportNPagesToOne(FPDF_DOCUMENT src_doc, float output_width, float output_height, size_t num_pages_on_x_axis, size_t num_pages_on_y_axis); // Experimental API. // Create a template to generate form xobjects from |src_doc|'s page at // |src_page_index|, for use in |dest_doc|. // // Returns a handle on success, or NULL on failure. Caller owns the newly // created object. FPDF_EXPORT FPDF_XOBJECT FPDF_CALLCONV FPDF_NewXObjectFromPage(FPDF_DOCUMENT dest_doc, FPDF_DOCUMENT src_doc, int src_page_index); // Experimental API. // Close an FPDF_XOBJECT handle created by FPDF_NewXObjectFromPage(). // FPDF_PAGEOBJECTs created from the FPDF_XOBJECT handle are not affected. FPDF_EXPORT void FPDF_CALLCONV FPDF_CloseXObject(FPDF_XOBJECT xobject); // Experimental API. // Create a new form object from an FPDF_XOBJECT object. // // Returns a new form object on success, or NULL on failure. Caller owns the // newly created object. FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDF_NewFormObjectFromXObject(FPDF_XOBJECT xobject); // Copy the viewer preferences from |src_doc| into |dest_doc|. // // dest_doc - Document to write the viewer preferences into. // src_doc - Document to read the viewer preferences from. // // Returns TRUE on success. FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDF_CopyViewerPreferences(FPDF_DOCUMENT dest_doc, FPDF_DOCUMENT src_doc); #ifdef __cplusplus } // extern "C" #endif // __cplusplus #endif // PUBLIC_FPDF_PPO_H_