Weasyprint生成的PDF不适合页面大小。

11

我有一个包含简单CSS2规则的HTML页面。所有内容都包含在一个宽度为930px的div中。在浏览器中,它看起来和预期一样,在Chrome中打印时,它以合适的字体大小整齐地适应页面。

但是,当我尝试使用weasyprint从此文件创建PDF时,字体看起来要大得多,文档超出了页面宽度。

HTML(string=html, base_url=server_base_url).write_pdf(target=target) 

我不太确定如何调试此问题。Weasyprint似乎不支持打印缩放,而这是我认为Chrome正在做的。将文档渲染后缩放以适应页面。

我尝试使用write_pdf方法的zoom参数.write_pdf(target=target, zoom=0.7),但它似乎同时缩放页面大小和内容大小,所以没有帮助。我尝试将其与CSS结合使用,使页面变大。所以我用Weasy进行缩小并用CSS进行放大。

@page {
    size: XXXin YYYin
}

这看起来很奇怪。那么我现在该怎么办?

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
9
你尝试过使用吗?
@page {
    size: Letter;
    margin: 0in 0.44in 0.2in 0.44in;
}
你可以根据自己的需求调整边距,但信纸大小应该是标准页面大小。关于页面大小的问题,请参考此链接。

1
这是一个旧问题了。我相信我最终通过在body标签上设置宽度来解决它。 - Eldamir
2
@Ross Wilson,我和Eldamir遇到了同样的问题,但在我的情况下,通过样式表weasyprint参数传递页面参数并没有起作用。还有其他什么方法可以尝试吗?我的打印文档仍然超出页面大小。如果Eldemir能够记得解决方案并在此处发布,那将非常有帮助! - fernandosjp
@fernandosjp 我不确定这是否有帮助,但似乎我还必须限制body元素的宽度(我的当前设置为600px,但根据您想要的边距,它可能可以更大)。如果我将其设置得非常高,则pdf上的信息将超出标准大小页面。 - Ross Wilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,