Wkhtmltopdf + cakepdf - 自定义页面大小

问题描述 投票:0回答:2

我不知道如何使用 CakePDF 和 wkhtmltopdf 启用自定义页面大小。我有以下配置代码:

Configure::write('CakePdf', [
  'engine' => [
      'className' => 'CakePdf.WkHtmlToPdf',
      'binary' => '/usr/local/bin/wkhtmltopdf',
  ],
  'orientation' => 'portrait',
  'pageSize' => '', // this line
  'download' => true
]);

我想要 150x150mm 的页面。我已经尝试过一些事情,例如传递数组 [150,150],但也尝试过诸如“150 150”或“150mm 150mm”之类的事情。这可能吗?

php cakephp cakephp-3.0 wkhtmltopdf
2个回答
2
投票

CakePDF

pageSize
选项映射到 wkhtmltopdf 的
page-size
选项,该选项采用
QPrinter::PaperSize
常量名称,例如
A4
A5
B0
B1
Legal
Letter 
等,即您无法使用该选项定义自定义尺寸。

如果您需要自定义尺寸,则必须使用 wkhtmltopdf 特定的

page-width
page-height
选项,默认情况下这两个选项都采用毫米值。

引用 wkhtmltopdf 文档:

页面尺寸:

渲染文档的默认页面大小是A4,但是使用这个 --page-size 选项可以更改为几乎任何其他内容,例如:A3, 信函和法律。有关支持的页面尺寸的完整列表,请参阅 http://qt-project.org/doc/qt-4.8/qprinter.html#PaperSize-enum

为了对页面大小进行更细粒度的控制,可以使用 --page-height 和 --可以使用页面宽度选项

Configure::write('CakePdf', [
    'engine' => [
        'className' => 'CakePdf.WkHtmlToPdf',
        'binary' => '/usr/local/bin/wkhtmltopdf',
        'options' => [
            'page-width' => 150,
            'page-height' => 150
        ]
    ],
    'orientation' => 'portrait',
    'download' => true
]);

另请参阅


0
投票

wkhtmltopdf 确实支持自定义页面大小。我不确定 cakepdf 是否可以与它们一起工作,但如果它只是将参数传递给 wkhtmltopdf 那么它应该。你可以这样做:

Configure::write('CakePdf', [
  'engine' => [
      'className' => 'CakePdf.WkHtmlToPdf',
      'binary' => '/usr/local/bin/wkhtmltopdf',
  ],
  'orientation' => 'portrait',
  'page-width' => '4in'
  'page-height' => '6in'
  'download' => true
]);

您可以使用英寸、厘米和毫米作为尺寸格式

© www.soinside.com 2019 - 2024. All rights reserved.