【问题标题】:iText - rotate pages without rotation propertyiText - 旋转没有旋转属性的页面
【发布时间】:2015-07-03 08:31:41
【问题描述】:

我有一个现有的 PDF,我想将所有页面复制到一个新的 PDF 文件中。但是,我想将页面旋转 90 度,但不想使用 Page-Rotation-Property。我真的是 itext 新手,在 Google 中没有找到解决方案。

【问题讨论】:

  • 如果您不想使用页面 Rotation 条目,您可能需要使用类似于 this answer 中的代码的代码。
  • 感谢您的链接,它对我很有帮助。

标签: java pdf itext


【解决方案1】:

我已经用这段代码解决了这个问题。感谢 mkl!

    PdfReader pdfIn = new PdfReader("source.pdf");
    Document document = new Document(getNormalizedPageSize(pdfIn), 0, 0, 0, 0);
    PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("d:/target.pdf"));
    document.open();
    PdfContentByte cb = writer.getDirectContent();

    for (int i = 1; i <= pdfIn.getNumberOfPages(); i++) {
        PdfImportedPage page = writer.getImportedPage(pdfIn, i);
        document.setPageSize(new Rectangle(page.getHeight(), page.getWidth()));
        document.newPage();
        float min = Math.min(page.getHeight(), page.getWidth());
        AffineTransform rotateInstance = AffineTransform.getRotateInstance(Math.PI / 2,
                min / 2.0, min / 2.0);
        double[] matrix = new double[6];
        rotateInstance.getMatrix(matrix);
        cb.addTemplate(page, (float) matrix[0], (float) matrix[1], (float) matrix[2],
                (float) matrix[3], (float) matrix[4], (float) matrix[5]);
    }
    document.close();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    • 2013-01-13
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多