Ho problemi durante l'unione di documenti di larghezza diversa usando iText.Unisci documenti pdf di larghezza diversa usando iText
Di seguito è riportato il codice che sto utilizzando per unire.
public static void doMerge(List<InputStream> list, OutputStream outputStream) throws Exception {
Rectangle pagesize = new Rectangle(1700f, 20f);
com.itextpdf.text.Document document = new com.itextpdf.text.Document(pagesize);
PdfWriter writer = PdfWriter.getInstance(document, outputStream);
document.open();
document.setPageSize(pagesize);
com.itextpdf.text.pdf.PdfContentByte cb = writer.getDirectContent();
for (InputStream in : list){
PdfReader reader = new PdfReader(in);
for (int i = 1; i <= reader.getNumberOfPages(); i++){
document.newPage();
//import the page from source pdf
com.itextpdf.text.pdf.PdfImportedPage page = writer.getImportedPage(reader, i);
//calculate the y for merging it from top
float y = document.getPageSize().getHeight() - page.getHeight();
//add the page to the destination pdf
cb.addTemplate(page, 0, y);
}
reader.close();
in.close();
}
outputStream.flush();
document.close();
outputStream.close();
}
La prima pagina del pdf sarà di 14 pollici di larghezza e 13 pollici di altezza. Tutte le altre pagine sul documento saranno sempre più piccole di quelle.
Voglio unire tutti i documenti del tutto in un unico documento.
Non so come impostare larghezza e altezza di un singolo documento unito.
Penso che Rectangle pagesize = new Rectangle(1700f, 20f);
dovrebbe farlo ma non funziona significa che se lo si modifica in Rectangle pagesize = new Rectangle(1700f, 200f);
, il documento non ha alcun effetto.
Per favore guidami ulteriormente.
Vuoi mantenere le dimensioni dei file PDF originali? In questo caso dovresti usare 'PdfCopy'. – mkl