PDA

View Full Version : [java pdf] concatenare piu' pdf


h724
15-05-2007, 12:32
ciao a tutti,

ho un problema nel concatenare più file pdf.

Se parto da piu' file già esistenti nn ho problemi (utilizzo le librerie com.lowagie.text.*) e tutto funziona.

Devo però realizzare al volo i vari pdf (con template diversi tra loro) e unirli man mano o alla fine, senza poggiarmi sull'hd.

Ecco quello che faccio:


int pageOffset = 0;
ArrayList master = new ArrayList();
int f = 0;
Document document = null;
PdfCopy writer = null;

for(int i=0;i<liber.length;i++){

PdfReader reader2 = new PdfReader(templatePath);
PdfStamper stamp2 = new PdfStamper(reader2, output);
reader2.consolidateNamedDestinations();
AcroFields form = stamp2.getAcroFields();
form.setField("test", "ciao");
form.setField("cod", libri.codice);
stamp2.setFormFlattening(true);
stamp2.close();

int n = reader2.getNumberOfPages();
List bookmarks = SimpleBookmark.getBookmark(reader2);
if (bookmarks != null) {
if (pageOffset != 0)
SimpleBookmark.shiftPageNumbers(bookmarks, pageOffset, null);
master.addAll(bookmarks);
}
pageOffset += n;
if (f == 0) {
document = new Document(reader2.getPageSizeWithRotation(1));
writer = new PdfCopy(document, new FileOutputStream("c:\\5.pdf"));
document.open();
}
PdfImportedPage page;
for (int ix = 0; ix < n; ) {
++ix;
page = writer.getImportedPage(reader2, ix);
writer.addPage(page);
}
PRAcroForm form2 = reader2.getAcroForm();
if (form2 != null)
writer.copyAcroForm(reader2);
f++;
}
if (!master.isEmpty())
writer.setOutlines(master);
document.close();


ottengo sempre l'errore da console: "CANNOT COPY type 0"

Potete aiutarmi? grazie