Php mpdf忽略javascript

Php mpdf忽略javascript,php,javascript,mpdf,Php,Javascript,Mpdf,我这里有个问题 我已经使用缓冲来使用mpdf获取pdf文件 但是我有点困惑 我在缓冲的页面上有一些javascript。。但是javascript生成的内容没有转换成pdf 让我直说吧 假设我有这个元素 <div id='text'></div> convert.php session_start(); include("MPDF54/mpdf.php"); $mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0);

我这里有个问题

我已经使用缓冲来使用mpdf获取pdf文件

但是我有点困惑

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

让我直说吧

假设我有这个元素

<div id='text'></div>
convert.php

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();
有人能帮我吗?

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

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

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


我肯定还有其他一些选择,但我已经使用wkhtmltopdf多年了,它生成的PDF文件与Chrome或Safari浏览器中的网页外观完全相同,而且javascript执行效果也很好。

mpdf
支持基本javascript

PDF读者了解基本的javascript函数

比如
print()
您可以使用mpdf库的
SetJS()
函数添加它

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();
include(“MPDF54/mpdf.php”);
$mpdf=新的mpdf('c'、'A4'、''、''、'0,0,0,0,0);
$mpdf->SetDisplayMode('fullpage');
$mpdf->list\u indent\u first\u level=0;//1或0-是否缩进列表的第一级
$mpdf->WriteHTML($_会话[表单]);
$mpdf->SetJS('print();')///JS带标记的代码。
$mpdf->Output();

我猜它不支持JavaScript。tcpdf确实包含JavaScript检查文档。例如,包含“this.print();”会导致pdf文件在加载后运行打印对话框。@YassirEnnazk是的,文档确实会说“发布某些XHTML+CSS代码、Javascript和表单的方法;”,但Javascript引擎很糟糕,所以不要期望您能够完成常规浏览器中使用的所有操作。至少它可以自动打印。
ob_start();

// content of page (included inline javascript code)

$yourfile = ob_get_content();
$_SESSION[forms] = $yourfile;
echo $yourfile;
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();
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();