【问题标题】:How to download or attach pdf file after output - mpdf输出后如何下载或附加 pdf 文件 - mpdf
【发布时间】:2018-02-13 15:02:14
【问题描述】:

我希望 mpdf 根据用户的 AJAX 请求生成 pdf 文件。一切运行良好,但响应没有以 pdf 格式打开。

在 NETWORK 下的 RESPONSE 中,我看到如下内容:

%PDF-1.4
%âãÏÓ
3 0 obj
<</Type /Page
/Parent 1 0 R
/MediaBox [0 0 595.280 841.890]
/TrimBox [0.000 0.000 595.280 841.890]
/Resources 2 0 R
/Group << /Type /Group /S /Transparency /CS /DeviceRGB >> 
/Contents 4 0 R>>
endobj
4 0 obj
<</Filter /FlateDecode /Length 382>>
stream
x­TËNÃ0ôÙ_1G8à®8¯HP©·Ò [¨j+µêï³ô!q°ãÝ]ÛØpBj9
ç3eÛ l`¼VÚùß_#=
ðäZQg?¬d/Ú¤ÒãÁSX`©Â`"IÙÌá$<2R¬dËÑx¦±:6Qâ ß?ØÙ¼9ãÌÑscåbxØ{dB
8Æ&*1\TfuŸZØråDʾG±f
.°%À9K½(²l%÷*vâKÅBÌ/Éì«úÝÜ" yàöV¹<LCnmj|êQâ3³Æ¡½¿¹Åk^N¾Ît¥[WfI9e'%]a0Ú¡X ÇÉ]m¨3o³ÐõºtÐfÐíÎMahjðØn6¦YO´D~¯¬¿¶\B Ì)m¿üu.¿@u^ÿç~3ªÃ³ßL
~L¬

请指导如何让mpdf将生成的文件附加到浏览器以便用户下载??

这是我的代码:

<?php
header('Content-Type: application/pdf'); 
require('../../../../core/inc/connect.php');
require('../func.php');
require('mpdf.php');

    //generate sign up codes as pdf file
if (isset($_POST['codes'])) {
$content = array();
foreach ($_POST['codes'] as $key => $value) {
    $content[] = mpdfContent($value,'Unused');
}
$mpdf = new mPDF();
$mpdf->WriteHTML("<div>".(implode($content))."<div style='clear:both;'></div></div>");
$mpdf->Output();
}

?>

【问题讨论】:

    标签: php pdf


    【解决方案1】:

    尝试在脚本中添加以下标题:

    header("Content-Disposition: attachment")
    

    这将下载文档。

    【讨论】:

    • 它没有用。它仍然在控制台中返回文件一个字符串
    • 我的意思是响应
    【解决方案2】:

    通常您不需要自己设置任何标题。如果目标是 I(内联)或 D(强制下载),则由 MPDF 处理。检查 MPDF 文档或来源以查看发送了哪些标头。 MPDF manual 标头也应显示在网络控制台中。

    您打算通过 AJAX 调用下载代码的目的是什么?通常,您要么通过 AJAX 请求一些 JSON oder HTML 来更新当前页面的视图状态。如果 AJAX 是由链接触发的,请尝试不使用 AJAX 直接链接到您的 PHP 文件,因为我不确定在执行 AJAX 调用时是否会解释下载标头

    【讨论】:

    • 在我的管理部分下的应用程序中,我有许多 PIN 码用作注册码。一个an可能需要选择一些很多或很少的代码来生成pdf,然后最终打印出来。 ...因此,AJAX 将发送管理员可能想要生成和打印的特定 PINS。因为我想将它作为 pdf 使用 mpdf 将丰富的 html 编写为 pdf ......所以通过 AJAX 请求,我可能会在浏览器的新选项卡中打开生成的 pdf,而无需将文件放在服务器上......这就是我想用 AJAX 做
    • 那为什么不使用PDF呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2022-07-11
    • 2015-03-28
    相关资源
    最近更新 更多