嗨,我正在使用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));
这只是在错误日志中什么也不返回,我不确定为什么。任何帮助将不胜感激。
谢谢您的帮助!