iTextPdf HTML to PDF:如何在PDF中的特定位置呈现HTML

时间:2015-06-04 18:35:09

标签: java html css itextpdf html-to-pdf

我有以下HTML字符串:

<font size="5">Requirements:</font><br><ul><li>Bullets are helpful</li><li>to display key points</li></ul><br>

如何在特定位置将HTML上面呈现为PDF?

我已在http://itextpdf.com/sandbox/xmlworker查看了一些示例,但没有提到这一点。

1 个答案:

答案 0 :(得分:1)

您的问题不重复,但与这些问题有关:

在这两种情况下,我们都会将HTML解析为ElementList

ElementList elements = XMLWorkerHelper.parseToElementList(HTML, CSS);

然后我们创建一个ColumnText对象ct,我们将其添加到元素中:

for (Element element : elements) {
    ct.addElement(element);
}
ct.go();

在第一个问题中,特定位置由AcroForm表单字段的位置决定:

FieldPosition pos = form.getFieldPositions("Name").get(0);

我们创建一个ColumnText对象,如下所示:

ColumnText ct = new ColumnText(stamper.getOverContent(pos.page));
ct.setSimpleColumn(pos.position);

如果要将HTML呈现为现有PDF,则必须执行类似的操作。

第二个例子有些尴尬,因为我们使用ColumnText来确定页面的高度。但是,原则是相似的:

ct = new ColumnText(writer.getDirectContent());
ct.setSimpleColumn(new Rectangle(120, 600, 240, 800));
ct.go();

在这种情况下,我硬编码了绝对位置的坐标。这是一个左下角x = 120的矩形; y = 600,右上角x = 240; y = 800。