CSS 在 RTL 方向中的领先使得框溢出
作者: Mi-La创建于 2025年10月10日更新于 2026年8月14日
标签bug
Hello! 我尝试自动检测 PDF 中的溢出情况,并发现在 RTL 模式下,CSS 标记导致某些父级框出现溢出。 最小可复现的示例: import weasyprint HTML = """ """ html = weasyprint.HTML(string=HTML) doc = html.render() # 调试框: page = doc.pages[0] print(page.width, page.height) for box in page._page_box.descendants(): print(box, box.position_x, box.position_y, box.width, box.height) doc.write_pdf("test.pdf") 结果:
在检查调试打印输出时(注释掉): ... 83.0 134.583984375 587.7007874015749 21.7919921875 > 670.7007874015749 134.583984375 9.9521484375 21.7919921875 83.0 134.583984375 587.7007874015749 21.7919921875 587.2115295890749 134.583984375 587.7007874015749 21.7919921875 602.1558655265749 134.583984375 68.544921875 21.7919921875 596.1558655265749 134.583984375 508.21152958907487 16 597.1558655265749 134.583984375 508.21152958907487 16 92.9443359375 134.583984375 508.21152958907487 16 594.7007874015749 134.583984375 4.0 21.7919921875 590.7007874015749 134.583984375 4.0 21.7919921875 ... 注意到 `` 是第一个溢出页面宽度的框,而 `` 的尺寸是正确的。 我想知道为什么有两个 ``,并推测第一个溢出的框是这个问题的根本原因。 如果不使用 `leader(dots)`,框的尺寸是正确的 - 例如使用 `content: "........"`。 希望这将是一个简单的修复 :-)。 感谢您的出色的 weasyprint!
- Section 11
内容来源: Kozea/WeasyPrint