mPDF 仅在启用 progressBar 时“完成”

Posted

技术标签:

【中文标题】mPDF 仅在启用 progressBar 时“完成”【英文标题】:mPDF only getting "Finished" when progressBar enabled 【发布时间】:2016-10-04 13:58:56 【问题描述】:

我正在我的 php 应用程序上生成一个非常大的 pdf 文件。该文档可以达到 300 页。构建过程可能需要超过40 seconds,这就是为什么我想向用户显示一条消息以了解正在生成文件。

问题是当我在config.php 文件上设置$this->progressBar = 1; 时,进度显示完美,但是当过程完成时,我只收到一个 Finished 消息,我未重定向到文件。

这是我的代码:

 <?php

    ob_start(); 
include('include/mpdf/mpdf.php');
define('_MPDF_URI','../');
$mpdf = new mPDF('','A4', 9, 'freesans', 10, 10, 20, 15, 5, 5, 'L');
$mpdf->SethtmlHeader($cabecera);
$mpdf->setFooter("Pagina PAGENO de nb");
$html=utf8_encode($html);
$mpdf->WriteHTML($html);
$mpdf->Output();
ob_end_flush();

我相信有人已经解决了这个问题。请指导我如何解决这个问题。

谢谢,

【问题讨论】:

【参考方案1】:

documentation 有注释:

注意:如果您使用进度条,您可能需要定义常量_MPDF_URI。需要常量 _MPDF_URI 来重定向用户 到 PDF 文件(以及在 mPDF 5.0 之前找到 javascript 文件 在进度条脚本中)。它必须是相对路径 (例如“../”)或完整的 URI(例如“http://www.example.com/mpdf/”)。如果 您在调用 mPDF() 之前没有定义它 mPDF 将为其分配 与 _MPDF_PATH 相同的值。如果您使用了亲戚,这很好 小路。 _MPDF_PATH 需要相对路径或文件系统 路径(例如'/homepages/27/d84233457/htdocs/')

然后确保-&gt;Output()函数有正确的参数,如:

$mpdf->Output('yourFileName.pdf', 'I');

欲了解更多信息,请参阅this stack answer。

【讨论】:

是的,这是我尝试的第一件事。但后来它消失了,因为它不起作用。我刚刚编辑了问题。 没有错误。该过程正确完成,但不会重定向到文件 对不起,我在 google chrome 控制台上得到了这个:不允许加载本地资源:file:///C:/xampp/htdocs/cl25demayo/include/mpdf/progbar.css 不是允许加载本地资源:file:///C:/xampp/htdocs/cl25demayo/include/mpdf/includes/out.php 嗨,您仔细检查了 _MPDF_URI?,它应该是有效的 URL 或有效的相对 url,而不是系统路径,当 _MPDF_URI 设置不正确时,您的问题是经典的,它会生成 pdf但无法重定向,因为 URI 不存在 是的,我已经检查过了。现在我设法重定向PDF,但它打开名为“out.php”然后,如果用户下载它,文件下载为“out.php”

以上是关于mPDF 仅在启用 progressBar 时“完成”的主要内容,如果未能解决你的问题,请参考以下文章

Yii2 - kartik-v/mpdf - 标题仅在第一页

使用另一个线程时,ProgressBar 不显示

错误 mPDF 需要 mb_string 函数

如何仅在激活两个组合框时启用按钮

仅在启用按钮时输入

仅在启用 proguard 时 JSONArray 不是字符串异常