Java iText:成功调整一页pdf的大小,但在pdf文档中有多页时失败

Java iText:成功调整一页pdf的大小,但在pdf文档中有多页时失败,java,resize,itext,Java,Resize,Itext,我需要调整我的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 = PdfWrit

我需要调整我的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();
}
public void resize(浮动x、浮动y、浮动比例)引发异常{
PdfReader读取器=新PdfReader(pdfIn);
文档文档=新文档(PageSize.LEGAL,0,0,0);
PdfWriter writer=PdfWriter.getInstance(doc,新文件输出流(pdfOut));
doc.open();
PdfContentByte cb=writer.getDirectContent();

对于(int i=1;i这是答案。我需要
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();
}
public void resize(浮动x、浮动y、浮动比例)引发异常{
PdfReader读取器=新PdfReader(pdfIn);
文档文档=新文档(PageSize.LEGAL,0,0,0);
PdfWriter writer=PdfWriter.getInstance(doc,新文件输出流(pdfOut));
doc.open();
PdfContentByte cb=writer.getDirectContent();

对于(int i=1;i您没有增加新调整大小文档上的页面,因此从原始文档加载的所有页面都将进入新pdf上的同一个页面。应调用
.newPage()
在那里的某个地方。@Marc B:你能再给我看一点吗。我看了文档,
PdfImportedPage
没有构造函数,所以我不知道如何创建新页面。@Marc B:我明白你的意思了:它是
文档.newPage()
。噢,如果你可以说
文档.newPage())
而不是
.newPage()
,你可以为我节省2小时的搜索时间:D.感谢man+1感谢-我刚刚成功地实现了这项技术来调整页面大小,但有一个后续问题:我以前一直在使用PdfCopy类复制PDF,但这种方法似乎不再是代码,也可以扩展。PdfCopy有什么作用吗当我用这种方式创建PDF时,会错过什么?