1

WkHtmlToPdf を使用して、一時的にファイルに保存された、以前に形成された HTML から PDF を生成しようとしています。

$pdf = new WkHtmlToPdf(array('bin' => $this->getVendorsPath() . 'h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'));
$html = file_get_contents($this->getPublicPath().'file.tmp');
$pdf->addPage($html);

if(!$pdf->saveAs($this->getPublicPath() . 'file.pdf'))
    echo "Erro on PDF generating. Error: " . $pdf->getError();

どこ:

  1. $this->getVendorsPath() は、"/" (スラッシュ) で終わるベンダー フォルダーへのパスです。
  2. file_get_contents($this->getPublicPath().'file.tmp') : メモリの問題により、html を一時ファイルに入れる必要があり、PDF が再生されるときに呼び出されます。

コントローラーが呼び出されると、$pdf->getError()次のエラーが表示されます。

Erro on PDF generating. Error: Could not run command '/var/www/{projects_name}/app/controllers/../../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64' /tmp/tmp_WkHtmlToPdf_Rgqz5E.html /tmp/tmp_WkHtmlToPdf_qOAH5u: /var/www/{projects_name}/app/controllers/../../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: 1: /var/www/{projects_name}/app/controllers/../../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: 8: not found /var/www/{projects_name}/app/controllers/../../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: 2: /var/www/{projects_name}/app/controllers/../../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: Syntax error: ")" unexpected /var/www/{projects_name}/app/controllers/../../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: 1: /var/www/{projects_name}/app/controllers/../../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: cannot create �A�o��@/�N: Directory nonexistent /var/www/{projects_name}/app/controllers/../../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: 1: /var/www/{projects_name}/app/controllers/../../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64: ELF: not found

1 行で申し訳ありませんが、情報を失うことなく複数の行に分割することはできません。

編集: WkHtmlToPdf のソース => http://mikehaertl.github.io/phpwkhtmltopdf/

4

0 に答える 0