将Html2Pdf保存到服务器

时间:2019-06-18 10:50:52

标签: jspdf html2canvas html2pdf

嗨,我正在使用Html2Pdf,jsPDF和html2canvas的组合。

我正在生成一个包含动态内容的页面,然后我想在ajax发布请求中发送该pdf,它将文件保存到我的服务器中。

到目前为止,我已经创建了一个页面,该页面可以生成所需的PDF,我需要做的就是调用一个特定的URL,该URL将加载该页面,现在我需要它来将生成的pdf保存到服务器。

这是我到目前为止编写的代码:

var opt = {
    margin:       [70, 26],
    filename:     'pdf_summary.pdf',
    image:        { type: 'jpeg', quality: 1 },
    html2canvas:  { scale: 1 },
    jsPDF:        { unit: 'mm', format: ['420', '594'], orientation: 'p' }
};

var worker = html2pdf().set(opt).from(pages[0]).outputPdf();
pages.slice(1).forEach(function (page) {
    worker = worker.get('pdf').then(function (pdf) {
        pdf.addPage();
    }).from(page).toContainer().toCanvas().toPdf().get('pdf');
});

worker = worker.then(function (pdfObject) {
    totalPages = pdfObject.internal.getNumberOfPages();
    for (var i = 1; i <= totalPages; i++) {
        pdfObject.setPage(i)
        pages.push(pdfObject.setPage(i));
    }

    $.ajax({
        url: '{{site.uri.public}}/pdf-report-scheduler',
        type: "POST",
        data: { pdf_file: btoa(pdfObject), csrf_token: csrf_token }
    });
});

pages[0]是pdf正在使用的页面内容。

PHP代码:

$pdf_base64 = base64_decode($_POST['pdf_file']);
error_log(print_r($pdf_base64, true));

这只是在错误日志中什么也不返回,我不确定为什么。任何帮助将不胜感激。

谢谢您的帮助!

0 个答案:

没有答案