2017-02-27 47 views
0

我无法弄清楚如何使用CakePDF和wkhtmltopdf启用自定义页面大小。我有以下的配置代码:Wkhtmltopdf + cakepdf - 自定义页面大小

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

我想有150x150毫米的网页。我已经尝试了一些东西,比如传递一个数组[150,150],还有'150 150'或'150mm 150mm'等。这甚至有可能吗?

回答

1

的CakePDF pageSize选项映射到page-size选项wkhtmltopdf的,这需要QPrinter::PaperSize常量名,例如像A4A5B0B1LegalLetter等,即使用该选项,你不能定义自定义大小。

如果您需要自定义尺寸,那么您必须使用wkhtmltopdf专用page-widthpage-height选项,默认情况下这两个选项都取毫米值。从wkhtmltopdf文档

报价:

页面大小:

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

在过去的页大小的更细粒度控制的--page高度和 --page宽度选项可以用于

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

参见