All, To be honest this is a test piece of code because it started out just 
re-writing a pdf out so the output is exactly the same to see what happens and 
even then the filesize jumps up.As far as practices go it makes sense but 
ultimately not my main issue or priority at the minute. Has anybody else 
experienced the same issue? I am using version 5.2.1 (the latest as far as i 
can tell).
 Date: Wed, 20 Jun 2012 09:32:37 -0400
From: [email protected]
To: [email protected]; [email protected]
Subject: Re: [iText-questions] PDF merge - filesize after

I’m a java guy, but I’m curious about this method signature: static bool 
RewritePdfFiles(string pdfFile, string outputFile) if you are trying to merge 
PDFs, shouldn’t you be doing this: static bool MergePdfs(// an array of PDFs, 
string mergedPdfFile); or maybe even static [bytes or a stream] MergePdfs(// an 
array of PDFs); and let the caller deal with the output?  From: Nick Bannister 
[mailto:[email protected]] 
Sent: Wednesday, June 20, 2012 3:59 AM
To: [email protected]; [email protected]
Subject: Re: [iText-questions] PDF merge - filesize after OK attached are my 
example PDFs.
 
My code is below:
 
public


static bool RewritePdfFiles(string pdfFile, string outputFile)

{



bool bOK = true;

iTextSharp.text.pdf.

PdfSmartCopy pdfWriter = null;

iTextSharp.text.pdf.

PdfReader pdfReader = null;



//no input file found



if (pdfFile == null || pdfFile == "")

{



throw new System.Exception("There is no input pdf files to merge!");

}



//string[] fileList = pdfFiles;



//init



int pageOffset = 0;



//ArrayList master = new ArrayList();

 



IList<Dictionary<string, object>> master = new List<Dictionary<string, 
object>>();

iTextSharp.text.

Document pdfDocument = null;



int totalProcessedPages = 0;



try

{



FileStream tmpFile = System.IO.File.Create(outputFile);



//foreach (KeyValuePair<string, string> kvp in pdfFiles)



//{



//Key - Filepath



//Value - Bookmark



int currentDocumentPages = 0;

pdfReader = 

new iTextSharp.text.pdf.PdfReader(pdfFile);

pdfReader.RemoveUnusedObjects();

pdfReader.ConsolidateNamedDestinations();



int pdfNumberOfPages = pdfReader.NumberOfPages;



//String boundsString = "";



IList<Dictionary<string, object>> bookmarks = new List<Dictionary<string, 
object>>();



// IList<Dictionary<String, Object>> bookmarks = new ArrayList<HashMap<String, 
Object>>();



int relativeOffset = pdfNumberOfPages;

currentDocumentPages += relativeOffset;

pageOffset += relativeOffset;



Console.WriteLine(pdfFile + ": " + currentDocumentPages + " pages to be 
added.");



if (pdfWriter == null)

{



// step 1: creation of a document-object

pdfDocument = 

new iTextSharp.text.Document(pdfReader.GetPageSizeWithRotation(1));



// step 2: we create a writer that listens to the document



//pdfWriter = new iTextSharp.text.pdf.PdfCopy(pdfDocument, tmpFile);

pdfWriter = 

new iTextSharp.text.pdf.PdfSmartCopy(pdfDocument, tmpFile);

pdfWriter.CompressionLevel = 

PdfStream.BEST_COMPRESSION;

pdfWriter.SetFullCompression();



// step 3: we open the document

iTextSharp.text.pdf.

PdfName version = new iTextSharp.text.pdf.PdfName("8");

pdfWriter.SetPdfVersion(version);

pdfDocument.AddCreator(

"Cad-Capture");

pdfDocument.Open();



//}

}



// step 4: we add content



if (pdfReader != null)

{



int numPages = pdfReader.NumberOfPages;



for (int count = 1; count <= numPages; count++)

{

pdfWriter.AddPage(pdfWriter.GetImportedPage(pdfReader, count));

}

}



else

{



throw new System.Exception("Reader is null");

}

pdfWriter.FreeReader(pdfReader);

pdfReader.Close();

totalProcessedPages += currentDocumentPages;



Console.WriteLine(currentDocumentPages + " pages processed correctly.");



//}



Console.WriteLine("Total processed pages: " + totalProcessedPages + ".");



if (pdfDocument != null)

{

pdfDocument.Close();

}



Console.WriteLine("File " + outputFile + " created.");

}



catch (Exception e)

{

bOK = 

false;



return bOK;



throw e;

}



finally

{

}



return bOK;

}
This is a transmission from Purdue Federal Credit Union (Purdue Federal) and is 
intended solely for its authorized recipient(s), and may contain information 
that is confidential and or legally privileged. If you are not an addressee, or 
the employee or agent responsible for delivering it to an addressee, you are 
hereby notified that any use, dissemination, distribution, publication or 
copying of the information contained in this email is strictly prohibited. If 
you have received this transmission in error, please notify us by telephoning 
(765)497-3328 or returning the email. You are then instructed to delete the 
information from your computer. Thank you for your cooperation.

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php                                       
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions

iText(R) is a registered trademark of 1T3XT BVBA.
Many questions posted to this list can (and will) be answered with a reference 
to the iText book: http://www.itextpdf.com/book/
Please check the keywords list before you ask for examples: 
http://itextpdf.com/themes/keywords.php

Reply via email to