【发布时间】:2014-09-30 11:32:27
【问题描述】:
我正在玩 2.0.0-SNAPSHOT,我想将页面设置为横向并旋转我的图片。所以我已经完成了page.setRotation(90);
使用 PDFBox 和 AffineTransform 似乎存在错误
这段代码并没有像我期望的那样做任何事情:
AffineTransform at = new AffineTransform(w, 0, 0, h, 20, 20);
at.translate(0.5, 1);
at.rotate(Math.toRadians(90));
宽度和高度必须很小才能将图像保持在页面上,自身旋转会挤压图像,并在旋转之前平移似乎会放大图像。
这是一个错误,还是我只是不了解 PDFBox?
【问题讨论】:
-
所以你创建了一个转换矩阵。但是你如何使用它?您希望您的转换值产生什么影响?
-
按照我的第一句话:“我想将页面设置为横向并旋转我的图片”。但是平移和旋转都具有可笑的缩放效果。
-
@djb:我已经更新了我的答案。昨天没有测试90°的页面旋转,使用的时候,得到了你描述的效果。
-
@djb 如果提供的示例代码可以很容易地用于重现问题,这通常会很有帮助。您只提供设置页面旋转和生成仿射变换的代码,而不是如何使用该仿射变换。 Tilman 费心编写这样的代码,而其他人则没有。如果您提供了代码,您可能会收到更多回复。
-
@mkl - 我确实有原始的轮换代码,蒂尔曼让我清理我的问题。旋转代码将其从屏幕某处旋转出来,所以我留下的示例只是显示了我所描述的奇怪错误。
标签: java pdf matrix transformation pdfbox