Hello,

I've encountered a strange problem with iTextSharp and concatenating PDFs. I
have used iTextSharp 3.1.8 before to merge several (almost) identical files
into a single PDF to be sent to printing companies, but as the number of
documents increase so does the filesize, much due to images and fonts being
embedded over and over. I was happy to see that 5.0.2 had a way to lessen
this problem by using PdfSmartCopy.

Trying it out was a disaster. The 3.1.8-version would, as an example, turn 3
PDF files of 80k (55k fonts) each into a combined PDF of 156k, where 120k
was fonts. The solution back then was to use PdfContentByte.AddTemplate for
every page in every document.
I was hoping for a real improvement with the new library, but sadly the
files did not shrink, they grew! Concatenating the same PDFs with the new
version (using the old technique) resulted in a 242k big PDF, with 167k of
fonts. No optimization at all, it was more or less the sizes added.
Using PdfSmartCopy was even worse. My three files now resulted in a PDF of
staggering 363k! Fonts was 'only' using 114k, which was better than
AddTemplate and somewhat better than the old version, but the new file has
what Adobe calls 'Document Overhead' of 222k!
I tried send in only one of the files into the document, and I had hoped to
end up with a file of around 80k. AddTemplate worked just fine here, but
PdfSmartCopy almost doubled the filesize into 152k. 75k of these were the
mystic 'Overhead' that has appeared from nowhere.

My question is what this overhead is (if anyone knows), and how to get rid
of it. Why is the same code producing smaller files in the earlier versions
of iTextSharp?
In pseudocode my algorithm for PdfSmartCopy is this:

*create PdfReader
create Document
create new filestream
create PdfSmartCopy using Document and filestream

for each file
    for each page in file
        use GetImportedPage to get page from the reader
        use AddPage to insert page into the smartcopy object
    endfor

    free and close reader
    open new reader with next file
endfor
*
>From browsing the previous questions I have gathered that embedded fonts and
subsets of fonts are two separate things and are tricky things to
manipulate, so I understand that iText might not be able to reduce the
amount of fontinformation, but ending up with a larger document feels odd.
I'm at a loss for what to try next.

Regards,

Erik
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Buy the iText book: http://www.itextpdf.com/book/
Check the site with examples before you ask questions: 
http://www.1t3xt.info/examples/
You can also search the keywords list: http://1t3xt.info/tutorials/keywords/

Reply via email to