我无法通过在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);
在上面的代码中,我无法判断旋转点。
提前致谢
答案 0 :(得分:2)
使用setRotationDegrees()
方法设置旋转时,使用图像的左下角作为旋转点旋转图像。如果您想要另一个旋转点,则需要使用低级功能来更改CTM。有关详细信息,请参阅PdfContentByte
class中的不同addImage()
方法:
addImage(Image image, AffineTransform transform)
添加了Image
,其中包含使用com.itextpdf.awt.geom.AffineTransform
类定义的给定转化。addImage(Image image, float a, float b, float c, float d, float e, float f)
使用由Image
,a
,b
,c
,{{定义的CTM添加d
1}}和e
是3乘3矩阵的元素。例如。 f
和e
定义了翻译。有关坐标系和转换矩阵的更多详细信息,请阅读The ABC of PDF with iText。这本书尚未完成,但它是免费的,你需要的部分已经存在。
如果您想自己定义旋转,您需要了解PDF中的两个非常重要的概念:
f
(这是一个A4页面)并且没有裁剪框,则坐标系的原点将是页面的左下角。右上角将具有坐标(x = 595; y = 842)。所有这一切都在ISO-32000-1和我开始写的ABC书中解释。