如何在iText PDF上移动svg的位置?

时间:2014-10-19 02:34:38

标签: java svg itext

我尝试将svg图像插入pdf文件。

但我不知道如何在iText PDF上移动svg位置。

图像始终位于(0,0)。

如何在iText PDF上移动svg图像位置?

例如,我想在右侧找到比此样本更多的内容。

http://itextpdf.com/examples/iia.php?id=263

1 个答案:

答案 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图像的位置。