php - 如何在 Linux 上使用 PHP 将 HTML/CSS 转换为 PDF

标签 php linux pdf pdf-generation wkhtmltopdf

我一直在尝试将 html 页面转换为 PDF,但没有任何运气,我尝试使用 wkhtmltopdf (http://code.google.com/p/wkhtmltopdf/) 和同一开发人员提供的 PHP 类(http://code.google.com/p/wkhtmltopdf/wiki/IntegrationWithPhp)尽管以下命令在终端中正确执行:

wkhtmltopdf http:/www.googl.com test.pdf

由于以下错误,我无法在 PHP 中执行该命令: 无法连接到 X 服务器。

任何人都可以为我提供分步教程,以便能够将 html/css 转换为 PDF 文件,无论是使用 wkhtmltopdf 还是任何其他不错的解决方案。

提前致谢

这是我使用过的类http://code.google.com/p/wkhtmltopdf/wiki/IntegrationWithPhp

下面是我的代码

$html = file_get_contents("test.html");

$pdf = new WKPDF();

$pdf->set_html($html);

$pdf->render();

$pdf->output(WKPDF::$PDF_EMBEDDED,'sample.pdf');

下面是错误:

Fatal error: Uncaught exception 'Exception' with message 'WKPDF didn't return any data.
/usr/bin/wkhtmltopdf: /opt/lampp/lib/libxml2.so.2: no version information available
(required by /usr/lib/libgstreamer-0.10.so.0) No protocol specified wkhtmltopdf: cannot
connect to X server :0 </pre>' in /var/www/c4/components/com_wkhtmltopdf
/wkhtmltopdf.class.php:211 Stack trace: #0 /var/www/c4/components/com_wkhtmltopdf
/wkhtmltopdf.php(68): WKPDF->render() #1 /var/www/c4/components/com_wkhtmltopdf
/wkhtmltopdf.php(50): html2pdf() #2 /var/www/c4/index2.php(114): require_once('/var/ww...') 
#3 {main} thrown in /var/www/c4/components/com_wkhtmltopdf/wkhtmltopdf.class.php on line 211

最佳答案

我找到了解决方案,出现以下错误“未指定协议(protocol) wkhtmltopdf: 无法 连接到 X 服务器:0”基本上是由使用 apt-get 安装的旧版本“wkhtmltopdf”引起的。解决方案是使用以下链接从 code.google 下载静态二进制文件: http://code.google.com/p/wkhtmltopdf/downloads/list

然后执行以下操作:

tar -jxvf wkhtmltopdf-0.11.0-static.tar.bz2
sudo aptitude install ia32-libs

接下来,您必须在/usr/bin 中创建一个指向 WKHTMLTOPDF 的符号链接(symbolic link)。

sudo ln -s /full_path/WKHTMLTOPDF /usr/bin/WKHTMLTOPDF

关于php - 如何在 Linux 上使用 PHP 将 HTML/CSS 转换为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10329119/

相关文章:

linux - linux 64 位汇编语言中的段错误(初学者)

python - 如何在修改 PDF 时解除 I/O 锁定?

javascript - jsPDF && jsPDF AutoTable 将特殊字符打印到 PDF

javascript - 使用继续单击事件继续在 jquery 中移动表

php - SimpleXML 解析具有相同名称和属性的子项

php - 如果使用参数绑定(bind),PHP 中的查询无法在 SQL Server 中查看临时表

c - Linux 中的软中断处理时序与硬中断处理时序

php - Yii2:如何准备调试和生产环境?

c - ASCII 英文文本/ASCII C 程序文本问题

python - 如何在 Python 中创建 PDF 文件