请选择 进入手机版 | 继续访问电脑版

Jong

金牌服务用户

6

主题

8

帖子

50

积分

金牌服务用户

积分
50
  • 233

    金币

  • 6

    主题

  • 8

    帖子

最新发帖
Jong
金牌服务用户   /  发表于:2026-1-8 13:59  /   查看:41  /  回复:2
1金币
本帖最后由 Jong 于 2026-1-8 14:02 编辑

设置了自动行高,但是在火狐浏览器中没有效果,请问这是什么原因,如何解决
sheet.autoFitRow()
模板是单行非合并行



附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

2 个回复

Matthew.Xue
超级版主   /  发表于:7 天前
沙发
您好,如贵司已经购买产品,且处于金牌服务状态,请联系贵司对应负责人或葡萄城对应负责销售,将您的账户添加为金牌账号,或使用贵司的金牌账号提问,以便获得更好的服务体验,谢谢!
回复 使用道具 举报
爱迪生
超级版主   /  发表于:3 天前
板凳
问题原因说明:

根据当前 SpreadJS 的实现机制,在导出 PDF 时,如果使用了 autoFitRow,在后续的渲染与排版计算过程中,SpreadJS 内部会将部分与行高、字体相关的计算结果强制转换为整数值。
单行行高在计算过程中会发生小数截断,从而引入误差。在总高度固定、且存在多行文本的情况下,这类误差会在多行累积,最终表现为:
PDF 导出时文本被压缩
行高不足,内容溢出或被裁剪
由于屏幕分辨率和系统缩放比例会影响底层获取行高的计算结果,因此该问题只会在部分分辨率或缩放组合下出现,而不是稳定复现于所有设备。

技术评估结论

从根本上解决该问题,需要在 PDF 导出的整个渲染链路中全面引入浮点精度处理机制,包括字体测量、行高计算、分页及布局逻辑。这将涉及大量底层逻辑调整,影响范围广、回归风险极高。
基于当前评估结果,无法对底层实现进行修改,否则可能对现有 PDF 导出行为和其他场景产生不可控影响。

建议的解决方案
作为一种风险可控的规避方案,建议在咱们执行 autoFitRow后,根据单元格的行数动态补偿行高,用于抵消浮点计算带来的累积误差。
该方案的特点是:
不涉及底层渲染逻辑修改
对现有功能影响最小
可有效缓解 PDF 导出时的文本溢出问题
建议咱们先按该方式进行验证,观察在实际导出场景中的效果。如后续仍存在个别极端情况,再针对具体样例进行单独分析。

附件为我这边写的一个自动补偿的逻辑,咱们可以参考

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部