我需要将pdf中的每个页面的大小从字母调整为合法大小。这是我到目前为止所得到的
public void resize (float x, float y, float scale) throws Exception { PdfReader reader = new PdfReader(pdfIn); Document doc = new Document(PageSize.LEGAL, 0, 0, 0, 0); PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(pdfOut)); doc.open(); PdfContentByte cb = writer.getDirectContent(); for(int i=1; i<=reader.getNumberOfPages(); i++){ PdfImportedPage page = writer.getImportedPage(reader, i); cb.addTemplate(page, scale, 0, 0, scale, x, y); } doc.close(); }
即使调整大小正确,输出的pdf也只包含1页。有什么帮助吗?
这就是答案。我需要doc.newPage()循环,请阅读Marc B我的原始问题的评论以获取更多信息
doc.newPage()
Marc B
public void resize (float x, float y, float scale) throws Exception { PdfReader reader = new PdfReader(pdfIn); Document doc = new Document(PageSize.LEGAL, 0, 0, 0, 0); PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(pdfOut)); doc.open(); PdfContentByte cb = writer.getDirectContent(); for(int i=1; i<=reader.getNumberOfPages(); i++){ doc.newPage(); PdfImportedPage page = writer.getImportedPage(reader, i); cb.addTemplate(page, scale, 0, 0, scale, x, y); } doc.close(); }