2017-02-27 346 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 
]); 

參見