Apache PDFBox、Boxable - HTML ordered/unordered 列表显示不正确

Apache PDFBox, Boxable - HTML ordered/unordered list is incorrectly displayed

我正在尝试使用 apache pdfbox 和 dhorions/boxable 库创建 pdf 文件。但是,我无法在单元格中显示嵌套的 html 列表。

val document: PDDocument = new PDDocument()
var myPage: PDPage = new PDPage(PDRectangle.A4)
document.addPage(myPage)
var yPosition: Float = 777
val margin = 40
val bottomMargin = 40
val yStartNewPage = myPage.getMediaBox().getHeight() - (margin)
val tableWidth = myPage.getMediaBox().getWidth() - (2 * margin)
val table = new BaseTable(yPosition, yStartNewPage, bottomMargin, tableWidth, margin, document, myPage, true, true)
val row: be.quodlibet.boxable.Row[PDPage] = table.createRow(10f)
var cell = row.createCell((100 / 3f),"<ul><li>hello</li><li>hello 2</li><ol><li>nested</li><li>nested 2</li></ol></ul>", be.quodlibet.boxable.HorizontalAlignment.get("left"), be.quodlibet.boxable.VerticalAlignment.get("top"))
table.draw()

输出:

如图所示,列表未正确对齐,子子项中显示的不是制表符,而是换行符。

我正在使用 boxable 版本 1.5-RC 和 pdfbox 版本 2.0.5。

我可以使用 6 月 25 日星期六创建的盒装版本 1.5-RC 重现您的观察结果 08:15:03 CEST 2016。

当前的 master 分支包含许多在该日期之后合并的更改。事实上,编译它并将生成的工件与您的代码一起使用会得到不同的图像:

尽管主分支 pom.xml 仍然声明版本 1.4,但与 1.5-RC 相比,它似乎包含许多修复。

因此,我建议编译主代码并使用生成的工件。不过,您应该明确更新版本,例如到 1.5-SNAPSHOT 或 1.4.9 或类似的东西。

如果由于某种原因您不能这样做,您可能想向 boxable 作者询问发布时间表。