Apache PDFBox,Boxable - HTML有序/无序列表显示不正确

时间:2017-04-17 08:23:48

标签: scala pdfbox boxable

我尝试使用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()

输出:

enter image description here

因为,您可以在图像中看到列表未正确对齐,而不是子窗口中的制表符,则会显示换行符。

我正在使用,盒装版本1.5-RC和pdfbox版本2.0.5。

1 个答案:

答案 0 :(得分:1)

我可以使用盒装版本1.5-RC重现您的观察,该版本已于2016年6月25日08:15:03 CEST 2016创建。

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

Output with current master branch boxable

即使主分支pom.xml仍然声称版本1.4,它似乎包含许多与1.5-RC相比的修复。

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

如果由于某种原因你不能这样做,你可能想问一下盒装作者的发布时间表。