不要做额外的翻译,而是在创建AT时放入翻译.请记住,旋转是围绕左下轴进行的,因此将宽度w添加到x位置.
PDPage page = new PDPage();
document.addPage(page);
page.setRotation(90);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
int x = 150;
int y = 300;
// draw unrotated
contentStream.drawXObject(ximage, x, y, ximage.getWidth() / 2, ximage.getHeight() / 2);
// draw 90° rotated, placed on the right of the first image
AffineTransform at = new AffineTransform(ximage.getHeight() / 2, 0, 0, ximage.getWidth() / 2, x + ximage1.getWidth(), y);
at.rotate(Math.toRadians(90));
contentStream.drawXObject(ximage, at);
这将绘制两次图像,一次正常旋转一次,旋转90°并定位在右侧. “ / 2”用于缩放50%,您当然可以使用其他因子.请注意,“ / 2”不用于初始x位置,因为(缩放)宽度需要两次.一次定位到旧位置(由于轴!),一次将其向右移动,以使图像不重叠.
还要注意,对于页面旋转,getHeight()和getWidth()是相反的.