使用 Dompdf 保存 PDF 文件

Posted

技术标签:

【中文标题】使用 Dompdf 保存 PDF 文件【英文标题】:Save PDF file with Dompdf 【发布时间】:2015-09-03 08:52:21 【问题描述】:

使用Dompdf将数据存储在pdf文件中:

这个功能很好用:

$pdf = \App::make('dompdf.wrapper');
$pdf->loadhtml('<h1>Test</h1> ');
return $pdf->stream();

现在,当尝试

$pdf = \App::make('dompdf.wrapper');
$pdf->loadHTML('<h1>Test</h1> ');
file_put_contents("test.pdf", $pdf->output());

得到错误:

file_put_contents(test.pdf): failed to open stream: Permission denied

我需要创建一些额外的文件夹来保存文件吗?

Tnx,P

【问题讨论】:

安静简单,你没有足够的权限写入文件夹/目录?检查您的网络用户是否对文件夹和文件具有所需的读/写权限。 嗨,tnx 时间!没关系,我也尝试使用特定路径,同样的错误...但是我在文档中找不到该文件将保存在哪个文件夹中,所以要知道要更改的权限... 【参考方案1】:

要将生成的pdf保存到文件中,请使用output(),即:

$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>hello world</h1>');
$output = $dompdf->output();
file_put_contents('filename.pdf', $output);

【讨论】:

使用也可以使用路径:file_put_contents('/home/website/public_html/aap_path/temp/filename.pdf', $output); 是的,您也可以使用绝对路径而不是相对路径。【参考方案2】:

试试这个

$pdf->load_html('<h1>Test</h1>');
$pdf->render();
$pdf->stream("data.pdf");

【讨论】:

【参考方案3】:

这解决了问题:

  return PDF::loadHTML('<h1>Test</h1> ')->save('path-/my_stored_file.pdf');

这个问题帮助:

dompdf: loading html files to render, doesn't work

Tnx, P

【讨论】:

以上是关于使用 Dompdf 保存 PDF 文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 从模板创建新的 PDF

使用 Laravel DomPDF 制作 PDF 文件

使用 PHP+DomPDF 生成缓慢的 PDF

使用 dompdf 生成 pdf 时的背景位置数组

在 PHP 中使用 DOMPDF 在 PDF 页面中的标题

启用生成pdf(它给我计划文件中的html文本) - dompdf