将URL传递给CakePdf

时间:2015-07-06 20:54:44

标签: cakephp wkhtmltopdf

使用CakePHP 2.6.7

使用wkhtmltopdf生成PDF时,我只需从命令行wkhtmltopdf http://url/of/my/website some_name.pdf运行,但在使用Wkhtmltopdf引擎时,我无法通过CakePdf以这种方式传递URL 。我最接近的是使用file_get_contents(http://my/website),然后手动浏览结果并将样式表/脚本的相对URL转换为完整的URL。

有没有办法将URL传递给CakePdf?或者,什么是最好的方法来经历一堆HTML并将相关链接变成完整的?

部分解决方案

目前我已设法使用以下代码操作页面上的链接并将其替换为完整的网址。

$parsed_web_address = parse_url($this->request->data['ArmawareHtmlToPdf']['web_address']);
$root_web_address = $parsed_web_address['scheme'] . '://' . $parsed_web_address['host'] . '/';

$html_string = str_replace('href="/', 'href="' . $root_web_address, $html_string);
$html_string = str_replace('src="/', 'src="' . $root_web_address, $html_string);

1 个答案:

答案 0 :(得分:2)

没有。据我所知,你无法通过CakePdf传递URL。该插件的整个目的是将您的Cakephp应用程序生成的html转换为wkhtmltopdf。因此,将URL传递给外部html源是没有意义的。

我的建议是直接使用proc_open()使用wkhtmltopdf。看看CakePdf插件中的WkHtmlToPdfEngine.php文件,以获取与wkhtmltopdf一起使用的示例。

http://php.net/manual/en/function.proc-open.php