首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mpdf忽略javascript

mpdf忽略javascript
EN

Stack Overflow用户
提问于 2012-12-13 01:39:55
回答 2查看 12.1K关注 0票数 7

我有一个问题..。

我已经使用缓冲来获得使用mpdf的pdf文件。

但是我有点迷惑了..。

我在缓冲的页面上有一些javascript ..但是从javascript生成的内容不能转换成pdf。

让我直说吧..。

假设我有这个元素

代码语言:javascript
复制
<div id='text'></div>

在我的页面上,我有一段javascript代码可以将文本添加到该div中。结果是..。

通过浏览器打开页面

代码语言:javascript
复制
<div id='text'>TEXT I ADDED USING JAVASCRIPT</div>

但当我把它转换成pdf的时候...

代码语言:javascript
复制
<div id='text'></div> (I DIDNT GET THAT TEXT)

这是使用的脚本。template.php

代码语言:javascript
复制
ob_start();

// content of page (included inline javascript code)

$yourfile = ob_get_content();
$_SESSION[forms] = $yourfile;
echo $yourfile;

convert.php

代码语言:javascript
复制
session_start();
include("MPDF54/mpdf.php");

$mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0); 

$mpdf->SetDisplayMode('fullpage');

$mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list

$mpdf->WriteHTML($_SESSION[forms]);

$mpdf->Output();

有人能帮我吗?

EN

回答 2

Stack Overflow用户

发布于 2013-02-26 17:15:02

mpdf支持基本的javascript。

PDF阅读器了解基本的javascript函数。

print();一样,你可以使用mpdf库的SetJS()函数来添加它。

代码语言:javascript
复制
include("MPDF54/mpdf.php");

$mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0); 

$mpdf->SetDisplayMode('fullpage');

$mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list

$mpdf->WriteHTML($_SESSION[forms]);

$mpdf->SetJS('print();')  //JS code with <script></script> tags.

$mpdf->Output();
票数 12
EN

Stack Overflow用户

发布于 2012-12-13 02:58:39

PHP *PDF库(tcpdf、fpdf、mpdf等)无法运行javascript代码,因为这将需要javascript解释器和浏览器渲染功能,或者如果它支持javascript,它将不会以您在客户端编程中习惯使用的方式运行它。除此之外,css和标记解释也非常糟糕。

但是,如果您正在寻找能够像普通浏览器一样呈现javascript和css的替代方案,我建议您使用wkhtmltopdf

wkhtmltopdf是使用webkit渲染引擎将html转换为pdf的外壳实用程序,以及qt。它作为一个控制台程序运行,带有指定要呈现的内容的参数,并且有大量的选项。基本上,您可以告诉它加载一个页面,等待5秒,等待javascript完成,然后创建pdf。有linux和windows两个版本可用,不过linux需要安装X11库。

我相信还有一些其他的选择,但是我已经使用wkhtmltopdf好几年了,它生成的PDF文件看起来和网页在Chrome或Safari浏览器中的样子一模一样,而且javascript执行起来也很完美。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13845475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档