PHP:使用 DOMPDF 自动将动态 PDF 保存到远程服务器

Posted

技术标签:

【中文标题】PHP:使用 DOMPDF 自动将动态 PDF 保存到远程服务器【英文标题】:PHP: Automatically Saving a dynamic PDF to the remote server using DOMPDF 【发布时间】:2013-01-28 20:29:27 【问题描述】:

我正在使用 dompdf 库创建基于表格的 PDF,我可以在线查看,也可以将其下载到用户选择的文件夹中。

但我想做的是让它保存到远程服务器(我不需要将它保存到用户 PC),就像一个自动上传脚本,它会创建文件然后将它上传到远程服务器,所以我以后可以在我的应用程序中使用它。

是否可以指向 $_FILES["file"] 脚本,这样可以获取创建 pdf 的 php 页面,然后从那里上传。

【问题讨论】:

【参考方案1】:

你可以做一件我正在为我的应用程序做的事情。例如,首先在您的服务器的根目录下创建一个文件夹。然后使用 chmod 命令更改对该文件夹的读写权限。

然后获取$html字符串中的所有代码。

$dompdf->load_html($html);    
$dompdf->render();
$pdf = $dompdf->output();
$file_location = $_SERVER['DOCUMENT_ROOT']."app_folder_name/pdfReports/".$pdf_name.".pdf";
file_put_contents($file_location,$pdf); 

pdfReports 是我为保存所有 pdf 文件而创建的文件夹。您可以更改为您的文件夹名称。

【讨论】:

感谢 file_put_contents 解决了这个问题,我现在在我的简单页面上工作,让它在我更复杂的动态页面上工作,但也要感谢 Stephan、kufudo 和 Vincent Kelleher跨度> 我只需要创建一个页面,但是表格会很长,但是考虑使用 PHPExcel 来完成繁重的工作,然后使用 dompdf 进行转换,我现在正在这样做,只需要实现相同的字段上传代码到它,它应该全部完成。 你有空谈5分钟吗 让我们continue this discussion in chat【参考方案2】:

引用自 PHP 手册:

如果启用了fopen wrappers,则可以使用此功能将URL用作文件名。有关如何使用的详细信息,请参阅fopen() 指定文件名。请参阅Supported Protocols and Wrappers 链接到有关各种包装器具有哪些能力的信息, 关于它们的使用说明,以及关于它们的任何预定义变量的信息 可以提供。

来源:http://php.net/manual/en/function.file-put-contents.php

【讨论】:

【参考方案3】:

是否可以直接在服务器上创建PDF,并让客户在需要时下载它?如果是这样,您可以使用 wkhtmltppdf 在服务器上将任何 HTML 页面转换为 PDF 并保存和/或将其流式传输到客户端。

http://code.google.com/p/wkhtmltopdf/

【讨论】:

【参考方案4】:

你不能使用FTP functions of PHP 吗?

【讨论】:

以上是关于PHP:使用 DOMPDF 自动将动态 PDF 保存到远程服务器的主要内容,如果未能解决你的问题,请参考以下文章

php   dompdf包如何将HTML页面导出中文无乱码的PDF文档

使用 PHP+DomPDF 生成缓慢的 PDF

需要将显示页面的HTML转换为PDF

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

在 dompdf 的 newtab 上生成 pdf

PHP - HTML 和 CSS3 到 PDF(和 mPDF VS DOMpdf)