我尝试将svg图像插入pdf文件。
但我不知道如何在iText PDF上移动svg位置。
图像始终位于(0,0)。
如何在iText PDF上移动svg图像位置?
例如,我想在右侧找到比此样本更多的内容。
答案 0 :(得分:2)
从你提到的例子中提取:
PdfContentByte cb = writer.getDirectContent();
PdfTemplate map = cb.createTemplate(6000, 6000);
drawSvg(map, CITY);
cb.addTemplate(map, 0, 0);
map
对象是一个画布,在这种情况下测量6000乘6000个用户单位(默认情况下1个用户单位= 1个点)。
此画布可用作PDF中的 Form XObject 。在iText语言中, Form XObject 被称为PdfTemplate
对象。您将SVG绘制到此PdfTemplate
,在这种情况下,将使用SVG中定义的坐标。
将SVG绘制到画布后,可以使用PdfTemplate
方法将 Form XObject (或addTemplate()
)添加到PDF中。
第一个参数是对象本身(在代码片段中为map
对象),另外两个参数是坐标(在本例中为(0, 0)
,正如您在问题中已提到的那样)。
简而言之,您几乎回答了自己的问题:您可以参考一行示例:
cb.addTemplate(map, 0, 0);
你注意到图像总是位于(0,0)。
更改0, 0
方法中的addTemplate()
,然后更改PDF中SVG图像的位置。