我正在使用 TCPDF 为在线应用程序生成文档。
我希望用户在打印后返回表单,因为用户将再次捕获数据。

我曾尝试在新选项卡/窗口中打开 pdf 并在打印后调用 window.close(),但要使用 window.close(),表单必须使用 window.open() 打开,但情况并非如此。表单操作打开窗口。

然后我尝试在同一个选项卡中打开表单并调用 history.back() ,但也没有工作(通过不工作,我指的是页面保留在 pdf 上。

我尝试过的代码(以及许多其他代码)

$js = <<<EOD
window.print();
document.location.href = 'http://www.google.com';
EOD;


$js = <<<EOD
window.print();
 window.history.back();
EOD;


$js = <<<EOD
window.print();
 history.go(-1);
EOD;


$js = <<<EOD
window.print();
window.addEventListener("afterprint", "window.history.back();");
EOD;

此代码在不在 TCPDF 中时有效:
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

<script type="text/javascript">
$(document).ready(function() {
window.print();
window.onafterprint = function(){
window.history.go(-1);
}
});
</script>

这必须在 TCPDF 中工作

有什么建议么?

最佳答案

问题是如果你直接加载一个PDF文件,那么那个页面上没有运行JS,所以你不能用JS关闭它

我建议的最佳解决方案是使用 ViewerJS ,它是用 JS 编写的 PDF 阅读器,因此您仍然可以在显示文档的同时运行代码。

关于javascript - 打印对话框关闭后,TCPDF 返回上一页,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59186544/

10-12 13:24