(正如您所引用的Java示例一样,我还将引用iText for Java。)
在SuperImpose
示例中,要叠加的页面使用
canvas.addXObject(page, 0, 0);
但也有其他PdfCanvas.addXObject
超载
public PdfCanvas addXObject(PdfXObject xObject, float a, float b, float c, float d, float e, float f)
6 float
s为仿射变换施加到x对象,例如旋转。因此,您可以旋转从源文档导入的页面XObject以匹配目标文档页面的方向,例如,替换
canvas.addXObject(page, 0, 0);
通过
canvas.addXObject(page, 0, 1, -1, 0, page.getHeight(), 0);
或者,如果这样会使页面内容上下颠倒,则通过
canvas.addXObject(page, 0, -1, 1, 0, 0, page.getWidth());
就像您引用的示例一样,在此我假设所涉及页面的左下角是各自的坐标系原点。如果这一假设是错误的,则需要float
在上述替换中分别调整最后两个参数。
谢谢@mkl,实际上我已经通过使用该
AffineTransform
函数找到您对类似问题的答案而到达了那里!我可能还会添加自己的答案,因为我必须编写自己的函数来转换同一页面上的注释链接,并且我将在我的问题中链接您的答案。