【发布时间】:2018-01-11 14:32:26
【问题描述】:
我们即将确定 iText7 是否符合我们的需求。
我们的工作流程如下:我们将 html 正文(几乎是表格;由 php 构建)和一些带有 REST 的 css 发送到 Java 原型应用程序。 html 通过 HtmlConverter 放到 PdfDocument 中。
生成的 pdf 的大部分输出看起来都很好,但我们在 ul 和 ol 的 li 元素前面看不到任何字形。我们已经尝试使用 css 强制它:
ol li { list-style-type: disc; }
但没有成功。我们还尝试了 ul、ol 和/或 li 中的其他定义(list-style: disc inside; list-style: disc outside; list-style: disc; or list-style-type: disc;)。
顺便说一句,css 解析得很好。我们已经改变了 ul/ol 的背景颜色。
我们还测试了几个字体文件,但无法显示字形。
有什么建议吗?
【问题讨论】:
-
如果不定义列表样式怎么办?你得到一个连字符还是一个项目符号?如果是这样,则可能是与字体相关的问题。圆盘符号不是标准字体中的常见字形。也许 iText 7 和 pdfHTML 在手头的字体中没有找到任何圆盘符号。如果是这样,也许向
FontProvider添加额外的字体可以解决问题。如果省略列表样式,则看不到任何列表符号(甚至连连字符),则说明有其他问题在起作用。或者,如果您可以使光盘显示在<td>之外的列表中,那么我的评论没有多大意义。 -
一开始我们并没有在 ul's/ol's 上放置任何 css,结果相同。我们还尝试了 list-style-type: square/circle/etc。我只是尝试在 pdf 中放置一个没有表格的普通列表 - 它也呈现没有字形。
-
同样没有 css:没有字形。我们使用 arialuni.ttf 作为字体。
-
好的,那么问题与字形无关。一定有别的东西在起作用。我正在做其他事情,但如果明天还没有收到的话。我将举一个例子来重现问题,并在 iText Software 创建一个内部票证。
-
好吧,我发现了一些东西:为了获得字形,我必须做三件事:1) 删除字体 arialuni,2) 将
"<style>" + css + "</style>" + body更改为"<html><head>" + css + "</head><body>" + body + "</body></html>"和 3) 删除填充: 0;在 CSS 中。现在我在一个嵌套列表中有两个字形,但我猜这是一个 css 东西。