gpt4 book ai didi

java - 通过 itext pdf 库进行图像旋转

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:19:30 28 4
gpt4 key购买 nike

我无法通过在 Java 程序中使用 itext pdf 库从中心或任何固定点旋转图像。当我旋转图像时,它的 x 和 y 坐标会发生变化。请在这方面帮助我。

   Image pdfImage=Image.getInstance("assets/product.png");
pdfImage.setAlignment(Element.ALIGN_CENTER);
pdfImage.setRotationDegrees(30);
document.add(pdfImage);
pdfImage.setRotationDegrees(140);
document.add(pdfImage);

在上面的代码中没有相同的点可以判断旋转点。

提前致谢

最佳答案

当您使用 setRotationDegrees() 方法设置旋转时,图像会使用图像的左下角作为其旋转点进行旋转。如果您想要另一个旋转点,则需要使用低级功能来更改 CTM。查看 PdfContentByte class 中不同的 addImage() 方法了解更多信息:

  • addImage(Image image, AffineTransform transform) 使用 com.itextpdf.awt.geom.AffineTransform 定义的给定变换添加 Image > 类。
  • addImage(Image image, float a, float b, float c, float d, float e, float f) 使用定义的 CTM 添加一个 Imageabcde f 是 3 x 3 矩阵的元素。例如。 ef 定义翻译。

有关坐标系和变换矩阵的更多详细信息,请阅读 The ABC of PDF with iText .这本书还没有完成,但它是免费的,你需要的部分已经在那里。

如果要自己定义旋转,需要了解PDF中两个非常重要的概念:

  • 坐标系的原点由 MediaBox 定义。如果 mediabox 是这样定义的 [0 0 595 842](这是一个 A4 页面)并且没有 cropbox,那么坐标系的原点将是页面的左下角.右上角的坐标为 (x = 595; y = 842)。
  • 在 PDF 中,您不旋转对象。相反,您旋转坐标系。当您将对象添加到旋转坐标系时,对象看起来就像旋转了一样。

所有这些在 ISO-32000-1 和我开始写的 ABC 书中都有解释。

关于java - 通过 itext pdf 库进行图像旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30498201/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com