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

iTextPdf HTML to PDF : how to render HTML at specific location in 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 上查看了一些例子,但没有提到这个。

你的问题不是重复的,但它与这些问题有关:

  • How to adjust the page height to the content height?

在这两种情况下,我们将 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 的矩形。