我正在使用 wkhtmltopdf 将 HTML 页面转换为 PDF 文件。但是,当在 PHP 中调用我的函数来将最后一个 HTML 转换为 PDF 时,它会出现错误。
我尝试在项目的另一个文件夹中创建该文件,但没有成功。我也尝试过使用wkhtmltopdf的另一个版本,但没有成功,在我看来,问题不在于转换为PDF的过程,而在于创建文件。
try {
$pdf = new Pdf('/usr/bin/wkhtmltopdf', array(
'page-width' => '150mm',
'page-height' => '250mm',
'page-size' => 'A4',
'encoding' => 'UTF-8',
));
$htmlDecode = base64_decode($param);
$pdf->setTemporaryFolder('/home/matheus/workspace/app-create-pdf/data');
if(is_file('/home/matheus/workspace/app-create-pdf/data/generated-boletos/new_boleto.pdf')) {
unlink('/home/matheus/workspace/app-create-pdf/data/generated-boletos/new_boleto.pdf');
$pdf->generateFromHtml($htmlDecode, '/home/matheus/workspace/app-create-pdf/data/generated-boletos/new_boleto.pdf');
} else {
$pdf->generateFromHtml($htmlDecode, '/home/matheus/workspace/app-create-pdf/data/generated-boletos/new_boleto.pdf');
}
$pdfBoleto = file_get_contents('/home/matheus/workspace/app-create-pdf/data/generated-boletos/new_boleto.pdf');
$pdfBase64 = base64_encode($pdfBoleto);
$this->registerInfoCallApi($uri, $param, $pdfBase64);
return $pdfBase64;
} catch (\Exception $e) {
$this->registerErrorApi($uri, $param, $e->getMessage());
$pdfBoleto = file_get_contents('/home/matheus/workspace/app-create-pdf/data/generated-boletos/new_boleto.pdf');
$pdfBase64 = base64_encode($pdfBoleto);
return $pdfBase64;
}
尝试在指定文件夹中创建文件时,出现以下错误:
The file 'C:\inetpub\wwwroot\app-create-pdf\new_boleto.pdf' was not created (command: "C:\www\wkhtmltox\bin\wkhtmltopdf.exe" --lowquality --page-height "250mm" --page-size "A4" --page-width "150mm" --encoding "UTF-8" "C:\inetpub\wwwroot\app-create-pdf\knp_snappy5d014377e974c3.34755390.html" "C:\inetpub\wwwroot\app-create-pdf\new_boleto.pdf").
在我的电脑上它可以安静地工作,但将项目放在另一台机器上却不起作用。
是窗户?安装适用于 Visual Studio 2013 的 Visual C++ 可再发行组件包 https://stackoverflow.com/a/60647830/3989340