使用 javascript 和/或 php 生成 pdf 的更好方法是啥?
Posted
技术标签:
【中文标题】使用 javascript 和/或 php 生成 pdf 的更好方法是啥?【英文标题】:What's the better way to generate pdf using javascript and/or php?使用 javascript 和/或 php 生成 pdf 的更好方法是什么? 【发布时间】:2011-12-24 13:21:17 【问题描述】:我有一个网络应用程序,我需要将数据打印成 pdf。 在后端我使用 php,而在前端使用 javascript MVC 框架(backbone.js)。
我不知道是仅使用 javascript 生成 pdf(..然后使用数据缓存)还是使用 ajax 将调用将生成 pdf 的 php 页面...更好的解决方案是什么?
当然,我需要能够打印、保存和使用 pdf 的样式表。
谢谢。
【问题讨论】:
Javascript:用户的计算机将完成这项工作; PHP:您自己的服务器执行作业,如果有大约 100 个用户同时生成 PDF,这可能会出现问题。 相关? ***.com/questions/742271/… 【参考方案1】:我更喜欢mPDF 来生成 PDF:
您可以使用 PHP 生成 PDF 并通过执行 AJAX 调用来获取它,这是唯一的好方法。当然,在 mPDF 中,您可以使用 CSS 设置文档样式。
如果您想使用 javascript 阅读 PDF,请阅读:Open Source Javascript PDF viewer
编辑: 现在是 2016 年,mPDF 肯定是不推荐的,已弃用的软件。有很多更好的,看看 GitHub:
PHP:https://github.com/search?l=PHP&o=desc&q=pdf&ref=searchresults&s=stars&type=Repositories&utf8=%E2%9C%93
JavaScript:https://github.com/search?utf8=%E2%9C%93&q=node+pdf&type=Repositories&ref=searchresults
【讨论】:
根据您的建议,我发现:code.google.com/p/dompdf 也许比 mpdf 更好,试试吧。【参考方案2】:如果您需要精确的格式,请查看 DocRaptor。它们是围绕 Prince XML 构建的 SaaS。
https://docraptor.com/
这是一个使用 PHP 的示例(输出到 Excel 电子表格而不是 PDF)
https://docraptor.com/documentation#php_example
<?php
$api_key = "YOUR_API_KEY_HERE";
$url = "https://docraptor.com/docs?user_credentials=$api_key";
$document_content = "<table><tr><td>Cell</td></tr></table>";
$request = new HTTPRequest($url, HTTP_METH_POST);
$request->setPostFields(array('doc[document_content]' => $document_content,
'doc[document_type]' => 'xls',
'doc[name]' => 'my_doc.xls',
'doc[test]' => 'true'));
$request->send();
$file = fopen ("my_excel_doc.xls", "w");
fwrite($file, $request->getResponseBody());
fclose ($file);
?>
【讨论】:
【参考方案3】:这是 PHP 中 PDF 扩展的 PHP 手册:
http://php.net/manual/en/book.pdf.php
此外,本文还准确展示了在 PHP 中生成 PDF 所需的操作:
http://www.sitepoint.com/generate-pdfs-php/
【讨论】:
【参考方案4】:有几种纯js的解决方案,但都不是很可靠,并不是在所有浏览器中都有效。你可以看看这里:
http://andreasgal.com/2011/06/15/pdf-js/
这是他们很酷的例子: http://mozilla.github.com/pdf.js/web/viewer.html
还有这个项目: http://code.google.com/p/jspdf/
了解限制,如果它们对您的项目来说太多,请按照人们的建议使用 PHP。
如果您知道客户端安装了 flash/acrobat 插件,您可以在客户端上使用它们来生成 PDF,请查看此处了解详细信息: http://www.adobe.com/devnet/acrobat.html
【讨论】:
太棒了!我的应用不会是多平台的,我会尝试【参考方案5】:您可能希望使用 PHP 来构建 PDF。 不确定是否有任何 javascript 库可以做这样的事情。 正如@Sn0opy 所说,如果很多人正在生成 PDF(特别是如果它们很大),这可能会成为服务器问题。
那里有许多用于 PHP 的 PDF 构建器。我已经成功使用了 html2ps 和 tcpdf。
【讨论】:
【参考方案6】:我非常喜欢这个 php:html2pdf
【讨论】:
以上是关于使用 javascript 和/或 php 生成 pdf 的更好方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 JavaScript 或 PHP 动态生成 CSS 网格
如何使 PHP 或 JavaScript 生成 HTML 表单
使用 Javascript 和 PHP 使用 TTF 生成图像
使用包含 php 和 ifs 的 javascript 生成 HTML [关闭]