gpt4 book ai didi

javascript - 打印多页打印按钮

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:54:35 26 4
gpt4 key购买 nike

我正在尝试创建一个打印按钮,单击该按钮将打印多个 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);
});

最佳答案

这对我适用于 Chrome 64:

function PrintAll() {
var pages = ["forms/82040PDFCreator.cfm", "forms/poa.cfm", "forms/Billofsalevehicle.cfm"];

var printNext = function(i) {
i = i || 0;
if (i >= pages.length) {
return;
}

var wdw = window.open(pages[i], 'print');
wdw.onload = function() {
wdw.print();

wdw.close();
setTimeout(function() {
printNext(++i);
}, 100);

}
};

printNext();
}

调用 setTimeout 只是为了确保窗口在打印下一个之前关闭。没有它,我会遇到一些奇怪的行为。

关于javascript - 打印多页打印按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48432419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com