Php wkhtmltopdf缩小css维度

Php wkhtmltopdf缩小css维度,php,wkhtmltopdf,knp-snappy,phpwkhtmltopdf,Php,Wkhtmltopdf,Knp Snappy,Phpwkhtmltopdf,我遇到了与Symfony 4.4.5上最新更新的knp Snappy捆绑包类似的问题 我设置了以下选项,但它们无助于修复错误 options: - { name: 'no-outline', value: true } - { name: 'encoding', value: 'UTF-8' } - { name: 'dpi', value: 300 } - { name: 'orientation', value: 'Portrait' } - { na

我遇到了与Symfony 4.4.5上最新更新的knp Snappy捆绑包类似的问题

我设置了以下选项,但它们无助于修复错误

options:
    - { name: 'no-outline', value: true }
    - { name: 'encoding', value: 'UTF-8' }
    - { name: 'dpi', value: 300 }
    - { name: 'orientation', value: 'Portrait' }
    - { name: 'page-size', value: 'A4' }
    - { name: 'page-width', value: '210mm' }
    - { name: 'page-height', value: '297mm' }
    - { name: 'margin-top', value: '0' }
    - { name: 'margin-bottom', value: '0' }
    - { name: 'margin-left', value: '0' }
    - { name: 'margin-right', value: '0' }
    - { name: 'disable-smart-shrinking', value: true }
注意:
的“禁用智能收缩”更改为
的“启用智能收缩”
不会改变任何内容。添加
zoom
选项也不会改变任何内容

我已经检查了这些选项是否有影响,我可以确认它们有影响。例如,我将
“肖像”
更改为
“风景”
,这确实产生了一个风景文档

以下是显示问题的测试文件:

蓝色框是snappy捆绑包生成的PDF。它的正确尺寸为
210mm x 297mm
,红色边框框是CSS尺寸为
210mm x 297mm
的div的结果。显然有什么不对劲


如何解决这个问题?

简短回答:

您可能正在使用不带qt修补程序的wkhtmltopdf版本 要解决这个问题,您需要一个修补版本的wkhtmltopdf,并使用您在文章中编写的相同参数


长答案:

了解您运行的版本是否包含修补程序

只需运行
wkhtmltopdf
命令。如果你看到这样的情况:

减少功能:

此版本的wkhtmltopdf已发布 根据没有wkhtmltopdf补丁的QT版本编译。 因此,如果您需要这些功能,则缺少一些功能 请使用静态版本

目前,功能列表仅支持修补程序QT 包括:

  • 将多个HTML文档打印到PDF文件中
  • 在没有X11服务器的情况下运行
  • 将文档大纲添加到PDF文件
  • 将页眉和页脚添加到PDF文件
  • 生成目录
  • 在生成的PDF文件中添加链接
  • 使用屏幕介质类型打印
  • 禁用WebKit的智能收缩功能
这意味着您正在运行wkhtmltopdf的非修补版本

为了能够使用智能缩小或缩放功能,您需要一个补丁版本


PS:我知道这根线很旧,但我希望这能帮助别人