【发布时间】:2018-07-04 02:02:25
【问题描述】:
我正在尝试使用一个打印按钮,单击该按钮将打印多个 pdf 或文件。
是否可以打印全部按钮:
<button class="btn-u btn-u-orange" name="printall" id="printall" ><i class="icon-printer"></i> Print All</button>
然后以某种方式让它在单击时打印所有 pdf 或页面。我一直在尝试用 javascript 来做,但不幸的是失败了。
function PrintAll() {
var pages = ["forms/82040PDFCreator.cfm", "forms/poa.cfm", "forms/Billofsalevehicle.cfm"];
for (var i = 0; i < pages.length; i++) {
var oWindow = window.open(pages[i], "print");
oWindow.print();
oWindow.close();
}
}
$("#printall").on("click",function(){
PrintAll();
});
当我选择打印时,它只会弹出第一个要打印的 pdf,而没有其他内容。对此的任何帮助将不胜感激。
添加了coldfusion标签,因为我正在调用填充pdf的.cfms。
我尝试过的是创建 iframe:
<iframe src="forms/82040PDFCreator.cfm" style="width:400px; height:400px;" frameborder="0"></iframe>
<iframe src="forms/poa.cfm" style="width:400px; height:400px;" frameborder="0"></iframe>
<iframe src="forms/Billofsalevehicle.cfm" style="width:400px; height:400px;" frameborder="0"></iframe>
<iframe src="forms/IRF.cfm" style="width:400px; height:400px;" frameborder="0"></iframe>
<iframe src="forms/InsuranceAffidavit.cfm" style="width:400px; height:400px;" frameborder="0"></iframe>
<iframe src="forms/FeesBreakdown.cfm" style="width:400px; height:400px;" frameborder="0"></iframe>
但它们不会全部显示。它们都可以工作,但一旦 iframe 超过三个,它们就不会全部显示一些错误。我一直在尝试设置一个时间间隔来加载它们,希望它们不会超时但没有成功。如果我能让它们全部出现,我将尝试让按钮以某种方式循环浏览 iframe 并打印它们。每次我点击刷新时,一些 iframe 工作一些不工作,不断改变哪些工作,哪些不工作。
尝试设置超时或间隔或其他东西以使它们全部出现:
$("#printall").on("click",function(){
var iframes = document.getElementsByTagName("iframe");
var i = 0;
window.setInterval(function(){
if(i < iframes.length){
i++;
}
}, 3000);
});
【问题讨论】:
-
window.open存在一些安全问题,可能会以您当前使用的方式被阻止。本文应该提供一些见解:stackoverflow.com/questions/16239513/… -
只需删除
oWindow.close(); -
@Hackerman 当我删除它只尝试打印最后一个 pdf 时
标签: javascript jquery coldfusion