2

我一直在尝试将 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
4

1 回答 1

2

我找到了解决方案,以下错误“未指定协议 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 的符号链接。

sudo ln -s /full_path/WKHTMLTOPDF /usr/bin/WKHTMLTOPDF
于 2012-04-30T05:32:13.690 回答