当前位置: 首页 > 面试题库 >

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

轩辕奕
2023-03-14
问题内容

我需要将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我的原始问题的评论以获取更多信息

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();
}


 类似资料:
  • 问题内容: 在应用程序中,用户可以上传尺寸为8.46“ x 10.97”的任何pdf文件。根据我们的应用程序尺寸应为8.5“ x 11”。问题是,如何重新调整现有pdf页面的大小以设置8.5“ x11”?我必须通过代码修复,而不是手动,赞扬线路或外部软件。请让我知道提供此功能的Java支持jar(免费版)或通过简单的Java修复也可以。 问题答案: 使用iText,您可以执行以下操作: 我介绍了公

  • 我在用iText7做游戏。净c#。我正在尝试在内存中创建一个多页PDF文档(n页数),其中源PDF文档只包含一页。 我可以用一页创建一个新文档,但无法根据需要创建额外的页面。我试过了 但我得到了一个ArgumentOutOfRange例外。。。索引超出范围。。。等 我试图关闭destPdfDoc,然后重新打开它,认为第二页直到我关闭它才被写入。但是当第二次打开destPdfDoc时,它没有页面。我

  • 想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 我有一个PDF文档,有两页。我需要阅读此文档的第一页,并使用阅读内容创建一个新的PDF文档。我将如何使用iText执行此操作?到目前为止,我无法尝试任何事情,因为我真的不知道如何开始。最好的方法是什么?

  • 我正在尝试将多个pdf页面合并为一个pdf页面。有很多iText的例子展示了如何将pdf页面合并到一个文件中,但是我需要所有的页面都放在一个页面中(一路上缩小它们的宽度和高度) 编辑:尝试从这里这个代码,但它只是合并成一个文件的pdf页面,我需要他们收缩成一个单一的页面

  • 我想为我现有的PDF文档设置一个新的页面大小,而不裁剪内容。我正在编写下面的代码,但它只是从底部裁剪我的PDF文件,导致内容丢失。 目前的尺寸是8.26“X 11.69”,我需要使它的8.5“X 11”。 我的代码只将11.59转换为11。试图更改8.26,但它不起作用。 有谁能帮忙吗?我将ITextPDF-5.5.8与Java一起使用。 谢谢布鲁诺。:)

  • 但呈现的大小不是预期的大小。我希望呈现的宽度为512px,但LayoutRult返回的宽度为385(而不是预期的512)。 我漏掉了哪个参数?谢了。