我刚刚开始使用 iText(5.4.2,最新版本),有两件事我还没有搞清楚。
- 创建横向文档。所有页面均以纵向呈现。
- 在给定位置插入图像(距顶部和左侧的毫米数)。
我有下面的代码。
Document d = new Document(PageSize.A4_LANDSCAPE,0,0,0,0);
PdfWriter writer = PdfWriter.getInstance(d, new FileOutputStream("C:/test.pdf"));
document.open();
document.newPage();
Image img = Image.getInstance(String.format("C:/file.png"));
img.scaleToFit(400,240);
document.left(100f);
document.top(150f);
document.add(img);
document.close();
但页面以纵向(而不是横向)呈现,并且图像放置在左上角(而不是按照要求距其 10 和 15 个单位)。我究竟做错了什么?
你正在使用PageSize.A4_LANDSCAPE
,一个由贡献者引入的变量,不应该添加到主版本中。请用PageSize.A4.rotate()
反而。
目前尚不清楚您想通过以下几行实现什么:
document.left(100f);
document.top(150f);
这些是 getter,而不是 setter。您似乎假设 PDF 与 HTML 类似。这个假设是错误的。
如果您希望将图像放置在距左侧 10 个用户单位和距顶部 15 个用户单位的位置(在这种情况下,100 和 150 是错误的值),您可以替换 Document 构造函数中的 0 值来定义左边距10 个用户单位和顶部边距 15 个用户单位。
另一种方法是使用以下方法定义图像的绝对位置setAbsolutePosition()
。在这种情况下,您需要注意,对于从头创建的文档,坐标系的方向是页面左下角的坐标 x=0 、 y=0 。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)