You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用flying-saucer-pdf转HTML到PDF时遇Font size too small错误求助

解决flying-saucer-pdf转换PDF时"Font size too small: 0.0"错误的方案

1. 排查HTML中的显性0字号设置

  • 全局搜索HTML及关联CSS里的font-size: 0、font-size: 0px、font-size: 0em这类直接设置0字号的代码,尤其是用来消除inline-block元素间距的场景,替换成font-size: 1px,或者改用flex布局处理元素间距。
  • 检查是否存在font-size: 0%这类相对单位设置,这类值也会被解析为0,调整为最小合法字号(比如1px)。

2. 检查动态生成的样式逻辑

如果HTML是通过模板引擎(Thymeleaf、Freemarker等)生成的,排查动态赋值字号的代码:

<p style="font-size: ${fontSize}px">示例文本</p>

确保动态变量fontSize不会为空或0,添加默认值兜底,比如${fontSize ?: 12}px。

3. 开启日志定位具体元素

在Spring Boot的配置文件中开启flying-saucer的DEBUG日志,它会输出每个元素的样式解析过程:

logging:
  level:
    org.xhtmlrenderer: DEBUG

运行转换代码后,在日志中搜索font-size相关条目,找到值为0的元素所在的HTML路径,精准定位问题代码段。

4. 全局强制设置最小字号(兜底方案)

如果暂时找不到具体问题代码,可通过全局CSS强制覆盖所有元素的0字号:

* {
  font-size: max(1px, inherit) !important;
}

将这段代码添加到HTML的<style>标签中,确保优先级足够覆盖原有样式。

5. 排查间接影响字号的属性

  • 检查是否有line-height: 0这类设置,部分场景下会间接触发字号计算异常,调整为合理值(比如1.2)。
  • 确认隐藏元素(display: none)的样式,即使元素隐藏,flying-saucer仍可能解析其样式,若包含0字号建议修改,或确保隐藏元素被排除在PDF解析流程外。

内容的提问来源于stack exchange,提问作者sinclairjaza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 23:34:52