【发布时间】:2011-07-08 14:50:46
【问题描述】:
我在一个 mysql 表中有 html,想把它变成可下载的 pdf 文件。
有工具可以将文件转换为pdf,但我还没有找到与php兼容的工具。
你能帮忙吗?有什么建议吗?
【问题讨论】:
-
你试过了吗? :phpclasses.org/package/…
-
看到这个link
标签: php mysql html pdf download
我在一个 mysql 表中有 html,想把它变成可下载的 pdf 文件。
有工具可以将文件转换为pdf,但我还没有找到与php兼容的工具。
你能帮忙吗?有什么建议吗?
【问题讨论】:
标签: php mysql html pdf download
我很惊讶没有人提到它,但您也可以使用在线 API 为您完成这项工作。根据您的使用情况,它可以是免费的,您可以依赖它们的最新功能(如 CSS3 和 WebFonts)并将处理外部化,从而减少硬件工作(或为其提供更多资源来处理其他请求)。
有很多 API 专门用于将 HTML 转换为 PDF。 PDFShift 是其中之一(我工作),语法非常简单(当然它与 API 不同)。
例如,将 URL 转换为 PDF 就像执行 curl_ POST 请求一样简单:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.pdfshift.io/v2/convert/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode({'source': 'https://pdfshift.io/documentation'}),
CURLOPT_HTTPHEADER => array('Content-Type:application/json'),
CURLOPT_USERPWD => 'YOUR_API_KEY:'
));
$response = curl_exec($curl);
file_put_content('pdfhsift-documentation.pdf', $response);
大多数在线 API 语法相同,或多或少,但在价格、性能、处理等方面有所不同。
【讨论】:
如果你的意思是从 php 创建一个 pdf,pdflib 会帮助你。
另外,如果您想通过 PHP转换 pdf 格式的 HTML 页面,我知道的选项是:
DOMPDF :包装 html 并构建 pdf 的 php 类。效果很好,可定制(如果你知道 php),基于 pdflib,如果我没记错的话,它甚至需要一些 CSS。坏消息:当 html 很大或很复杂时速度很慢。
HTML2PS: 与 DOMPDF 相同,但此文件首先转换为 .ps(ghostscript),然后转换为您需要的任何格式(pdf、jpg、png)。对我来说,这比 dompdf 好一点,但有同样的速度问题..哦,与 css 的兼容性更好。
这两个是php类,但是如果你可以在服务器上安装一些软件,并通过passthru()或system()访问它,也可以看看这些:
wkhtmltopdf: 基于 webkit(safari 的包装器),非常快速和强大.. 似乎是将 html 页面动态转换为 pdf 的最佳工具(atm),3 页 xHTML 仅需 2 秒使用 CSS2 的文档。是最近的项目,反正google.code页面经常更新。
htmldoc : 这是一辆坦克,它真的永远不会停止/崩溃.. 这个项目似乎在 2007 年就死了,但无论如何,如果你不需要 css 兼容性,这对你来说会很好。
tcpdf - 这是 fpdf 的增强和维护版本。 Main Features of tcpdf,它的执行时间也更短,输出也很好。有关使用两个最流行的 pdf 生成类的详细教程:TCPDF 和 FPDF。请关注this link。
另请参阅此帖子。
【讨论】:
您也可以尝试使用mPDF,它是免费的,并且有大量文档。
例子:
<?php
include('mpdf/mpdf.php');
$mpdf=new mPDF();
$mpdf->WriteHTML('<img src="images/logo.png">'); //Write HTML
$mpdf->Output(); //Show the output
?>
【讨论】:
最简单的方法是http://www.tcpdf.org/
【讨论】:
html2pdf 库可能会对您有所帮助;我听说它通常做得很好——但可能需要你稍微调整一下你的 HTML。
【讨论】: