小编典典

使用mpdf通过AJAX生成PDF

ajax

我正在使用mpdf库生成用户生成的html的PDF。我可以使PDF成功保存到服务器,但是我希望PDF在用户浏览器中打开。我尝试使用mpdf的输出选项在浏览器中打开文件或提示下载,但是当我使用AJAX将html数据发送到脚本时都没有发生。

这是我的AJAX:

$('#save').click(function() {

        var shelf_clone = $('#shelf').clone();
        var shelf = shelf_clone.prop('outerHTML');

        $.ajax({
            type: "POST",
            url: "pdf.php",
            data: { html:shelf },
            success: function(response)
            {
                $('#status').html('File Saved Successfully');
            },
        })

    });

这是我的PDF生成脚本:

<?php

include_once('/mpdf/mpdf.php');

$html = $_POST['html'];

$mpdf=new mPDF();
$stylesheet = file_get_contents('css/print.css');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML($html,2);
$mpdf->Output('shelf.pdf', I);

exit;

?>

我正在使用AJAX,因此无需浏览页面即可创建PDF。我的代码中是否有错误,还是应该使用其他方法?


阅读 268

收藏
2020-07-26

共1个答案

小编典典

我最终没有使用AJAX,而是在表单上添加了隐藏输入,并使用以下脚本填充了它:

$('#save').click(function() {

    event.preventDefault();

    var shelf_clone = $('#shelf').clone();
    var shelf = shelf_clone.prop('outerHTML');

    $('#save_shelf input[name=shelf]').val(shelf);

    $('#save_shelf').submit();

});
2020-07-26