//--------------------------------------------------------------------------------------- // Copyright (c) 2001-2012 by PDFTron Systems Inc. All Rights Reserved. // Consult legal.txt regarding legal and license information. //--------------------------------------------------------------------------------------- using System; using System.IO; using System.Collections; using pdftron; using pdftron.Common; using pdftron.SDF; using pdftron.PDF; //----------------------------------------------------------------------------------- // The sample illustrates how multiple pages can be combined/imposed // using PDFNet. Page imposition can be used to arrange/order pages // prior to printing or to assemble a 'master' page from several 'source' // pages. Using PDFNet API it is possible to write applications that can // re-order the pages such that they will display in the correct order // when the hard copy pages are compiled and folded correctly. //----------------------------------------------------------------------------------- namespace ImpositionTestCS { class Class1 { static void Main(string[] args) { PDFNet.Initialize(); // Relative path to the folder containing test files. string input_path = "../../../../TestFiles/"; string output_path = "../../../../TestFiles/Output/"; try { Console.WriteLine("_______________________________________________"); Console.WriteLine("Opening the input pdf..."); PDFDoc in_doc = new PDFDoc(input_path + "newsletter.pdf"); in_doc.InitSecurityHandler(); // Create a list of pages to import from one PDF document to another. ArrayList import_list = new ArrayList(); for (PageIterator itr = in_doc.GetPageIterator(); itr.HasNext(); itr.Next()) import_list.Add(itr.Current()); PDFDoc new_doc = new PDFDoc(); // Create a new document ArrayList imported_pages = new_doc.ImportPages(import_list); // Paper dimension for A3 format in points. Because one inch has // 72 points, 11.69 inch 72 = 841.69 points Rect media_box= new Rect(0, 0, 1190.88, 841.69); double mid_point = media_box.Width()/2; ElementBuilder builder = new ElementBuilder(); ElementWriter writer = new ElementWriter(); for (int i=0; i