// 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 _FPDFPPO_H_
#define _FPDFPPO_H_

#include "fpdfview.h"

// Function: FPDF_ImportPages
//			Import some pages to a PDF document.
// Parameters:	
//			dest_doc	-	The destination document which add the pages.
//			src_doc		-	A document to be imported.
//			pagerange	-	A page range string, Such as "1,3,5-7". 
//							If this parameter is NULL, it would import all pages in src_doc.
//			index		-	The page index wanted to insert from.	
// Return value:
//			TRUE for succeed, FALSE for Failed.	
DLLEXPORT FPDF_BOOL STDCALL FPDF_ImportPages(FPDF_DOCUMENT dest_doc,FPDF_DOCUMENT src_doc, FPDF_BYTESTRING pagerange, int index);


// Function: FPDF_CopyViewerPreferences
//			Copy the viewer preferences from one PDF document to another.#endif
// Parameters:	
//			dest_doc	-	Handle to document to write the viewer preferences to.
//			src_doc		-	Handle to document with the viewer preferences.
// Return value:
//			TRUE for success, FALSE for failure.
DLLEXPORT FPDF_BOOL STDCALL FPDF_CopyViewerPreferences(FPDF_DOCUMENT dest_doc, FPDF_DOCUMENT src_doc);
#endif

