HTML转PDF时pre标签font-family失效问题排查
itext7 html2pdf中
<pre>标签font-family样式不生效问题 问题现象
- 基于Java环境,使用
itext7-core 7.2.3+html2pdf 4.0.3在Kubuntu系统下转换带内联样式的HTML到PDF <p>、<td>、<div>等标签的内联font-family样式均正常生效,但<pre>标签的该样式被忽略,默认使用Times或系统自带等宽字体,而非指定字体- 直接通过字符串创建
Paragraph对象并指定同款字体(或带字体的样式),可正常渲染目标字体 - 临时解决办法:通过Jsoup提取
<pre>标签的文本内容,手动创建带有目标字体样式的Paragraph添加到文档
问题分析
这大概率是html2pdf组件对<pre>标签的样式处理逻辑存在问题:<pre>作为预格式化标签,组件可能默认强制绑定了等宽字体规则,导致自定义的font-family内联样式被覆盖,属于需要排查修复的潜在Bug。
建议
- 可在itext官方代码仓库提交Issue,附上最小复现代码、环境信息及问题截图,帮助开发团队定位修复
- 临时方案可继续沿用当前的Jsoup转换方式,也可以尝试自定义
TagWorker:继承PreTagWorker类,重写样式应用逻辑,确保自定义font-family样式能被正确解析和应用
内容的提问来源于stack exchange,提问作者nikos
相关产品推荐
相关产品推荐

