我需要将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页。有什么帮助吗?
答案 0 :(得分:4)
这是答案。我需要在循环中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();
}