我不知道如何使用 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”之类的事情。这可能吗?
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
]);
另请参阅
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
]);
您可以使用英寸、厘米和毫米作为尺寸格式