Hello,
I have a pdf with 110 pages and want to have 110
pdfs with 1 page. The original hat 1.3MByte.
I use the following code (using snipplets from
concat and split):
8< ------------------
PdfReader reader = null;
try {
reader = new PdfReader(m_source.getAbsolutePath
());
m_noPages = reader.getNumberOfPages();
} catch (IOException e) {
e.printStackTrace();
}
for(int i=1; i<= m_noPages; i++) {
Document destination = new Document
(reader.getPageSizeWithRotation(i));
PdfWriter writer = null;
try {
writer = PdfWriter.getInstance(destination,
new FileOutputStream(new File(m_destFolder, i + "_"
+ m_source.getName())));
destination.open();
PdfContentByte cb = writer.getDirectContent
();
destination.setMargins(0,0,0,0);
destination.newPage();
PdfImportedPage page =
writer.getImportedPage(reader, i);
int rotation = reader.getPageRotation(i);
if (rotation == 90 || rotation == 270) {
cb.addTemplate(page, 0, -1f, 1f, 0, 0,
reader.getPageSizeWithRotation(i).height());
}
else {
cb.addTemplate(page, 1f, 0, 0, 1f, 0,
0);
destination.setMargins(0,0,0,0);
}
} catch (Exception e) {
e.printStackTrace();
}
destination.close();
}
------------------ >8
The resulting pdfs have a size of 11MByte, which is
quite ok for me. The java-program is really fast.
There is one major drawback: The Pages do not look
exactly like the original especially the margins,
so I tried PdfCopy instead:
8< ------------------
PdfReader reader = null;
try {
reader = new PdfReader(m_source.getAbsolutePath
());
m_noPages = reader.getNumberOfPages();
} catch (IOException e) {
e.printStackTrace();
}
for(int i=1; i<= m_noPages; i++) {
Document destination = new Document
(reader.getPageSizeWithRotation(i));
PdfCopy writer = null;
try {
writer = new PdfCopy(destination, new
FileOutputStream(new File(m_destFolder, i + "_" +
m_source.getName())));
destination.open();
PdfImportedPage page =
writer.getImportedPage(reader, i);
writer.addPage(page);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
destination.close();
}
------------------ >8
The result is much better, the margins are ok. The
disadvantages here: the program needs much more
time and the resulting pdfs have more than 100MB.
How can I get the output from source 2 with the
file-size from source 1?
Thank you in advance,
Norman
---------------------------------------------------
Sichern Sie sich jetzt Ihre E-Mail-Adresse von Aral:
http://www.aral.de/mail
http://www.bikerclub.de/mail
-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
iText-questions mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/itext-questions