我有一个PHP文件,我在其中创建PDF。我使用AJAX调用这个PHP并给出一些视觉反馈(我显示然后隐藏一个微调器),因为我将创建一个500页的PDF,这个过程有点慢。
要创建PDF,我使用PDFMerger(因为我需要合并一些PDF)。为了调用这个PHP,我有一个关联JavaScript函数的按钮。
问题是,如何使用AJAX下载文件。因为如果我不使用AJAX并且我使用PHP,那么文件将被下载,但是如果我使用AJAX而不是PHP,我将成功获得所有'PDF-data'(...06�P��endstreamendobj965 0 obj<</Filter /FlateDecode /Type /XObject/Subtype /Form/FormType 1/BBox [0.00 0.00 595.28 841.89]/Resources <</ProcSet [/PDF /Text /ImageB /ImageC /ImageI ]/Font <</F1 960 0 R/F2 961 0 R>>/XObject <<>>/Properties...
)。
我的问题与如何通过AJAX下载文件完全不同。我正试图找出如何结合PDFMerger和AJAX来获取PDF。
的JavaScript
showSpinner();
$.ajax({
url: 'downloadPDF.php',
success: function (data) {
//And now I want to download the PDF
},
complete: function () {
hideSpinner();
}
});
PHP(downloadPDF.php
)
$pdf = new PDFMerger();
foreach ($arrayPDFs as $url) {
$pdf->addPDF($url, 'all');
}
$pdf->merge('download');
答案 0 :(得分:0)
如果你使用ajax,你显然可以将PDF内容作为数据。
如果您希望用户单击链接并获得PDF作为结果,则不需要ajax。用户单击其浏览器中的链接,浏览器将下载PDF文件 - 无需其他选项卡等。
如果由于某种原因无法提供此链接,您可以通过将原始数据传递到JavaScript PDF库(例如jsPDF)来从JavaScript获取PDF内容。
告诉浏览器通过PHP直接下载将文件显示为PDF,请使用此问题中描述的标题:Show a PDF files in users browser via PHP/Perl