我有这个PHP文件名为print.php:
<?php
require_once("modules/pdf/dompdf_config.inc.php");
$html = $_POST["toRender"];
$number = $_POST["number"];
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream($number.".pdf");
如您所见,HTML和Number是通过POST接收的。
JavaScript文件如下所示:
$("#btnViewPDF").click(function() {
var theHtml = $("#printable").html();
var theNumber = $("#invoiceNumber").val();
$.ajax({
type : "post",
url : "views/print.php",
data : {toRender : theHtml, number : theNumber},
beforeSend: function() {
$(".ajax-loader-bg").fadeIn();
}
}).always(function() {
$(".ajax-loader-bg").fadeOut();
});
return false;
});
基本上,它需要一个名为“可打印”的DIV中的所有内容,但我接下来想要的是在print.php中生成的PDF文件,我还没有能够弄清楚我如何才能做到这一点。
当我在print.php中生成测试HTML,然后输入url www.example.com时,它就可以工作mysite.com/print.php......它会呈现PDF,并允许我下载它或在另一个浏览器选项卡中查看它。
如何通过 AJAX 实现这一点?
3条答案
按热度按时间ibps3vxo1#
你不能通过 AJAX 下载一些东西,你可以使用一个隐藏的iframe来模拟行为。
不是说你不能下载它,但是,它永远不会结束在文件系统中保存的目的,因为javascript不能这样做的安全原因。
反正人总会找到解决办法的,你可以试试这个:https://stackoverflow.com/a/23797348/1131176
fkaflof62#
我确实做到了这一点,通过一个技巧,这个例子是在codeigniter中制作的,所以你可以修改它,首先, AJAX 方法:
现在,让我们转到我的控制器上的方法:
}
现在,我们将包括dompdf,要在codeigniter上使用dompdf,请参阅以下答案:Codeigniter with dompdf
下面是我在函数'$this-〉pdf-〉load_view'中使用的dompdf中的代码:
现在有了这个,我设法使用 AJAX 与dompdf,并把一个加载gif到它,它的工作很好,到最后,你加载的php文件'$this-〉pdf-〉load_view'没有一个头或其他,是纯粹的html和php,希望这有助于!
z6psavjg3#
用**方法解决了符号处理问题,得到();**开发JQuery
代码JavaScript/JQuery,忽略参数“id_convenio”,我现在使用MySQL作为将来的参考
脚本PHP,有一部分的网络应用程序可以安装和示例化DOMPDF与Composer