我在使用iText合併不同寬度的文檔時出現問題。使用iText合併不同寬度的pdf文檔
下面是我用來合併的代碼。
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();
}
PDF的第一頁將是寬度的14英寸和高度的13英寸。文件上的所有其他頁面將始終小於它。
我想要將所有文檔完全合併到一個文檔中。
我不知道如何設置單個合併文檔的寬度和高度。
我認爲Rectangle pagesize = new Rectangle(1700f, 20f);
應該這樣做,但它不工作意味着如果將其更改爲Rectangle pagesize = new Rectangle(1700f, 200f);
,文檔沒有任何影響。
請繼續引導我。
你想保持原有的PDF文件的尺寸是多少?在這種情況下,你應該使用'PdfCopy'來代替。 – mkl 2014-09-01 12:09:09