等到在新窗口中创建 PDF 后再打印

wait until pdf created in new window before printing

本文关键字:创建 PDF 打印 窗口 新窗口      更新时间:2023-09-26

>我有一个网络程序,当用户单击数据网格视图中的"打印"命令,即可创建 PDF在页面打印PDF.aspx。然后执行以下代码:

function printpdf() 
{
    var printWindow = window.open('printpdf.aspx', '', 'height=100,width=200');            
    checkLoad();
    printWindow.focus();
    printWindow.print();
    printWindow.close();      
}

此代码正在执行,我得到一个打印对话框和表单在"确定"或"取消"时关闭,但尚未生成 PDF触发此代码时。我需要一种方法来等待页面加载。或可以工作的计时器功能。我也在多个中使用它浏览器。我尝试了一个计时器功能,但没有运气和负载功能。

checkLoad();
function checkLoad() 
{
    if (printWindow.onLoad) 
    {
        printWindow.focus();
        window.print();
        window.close();
    } 
    else 
    {
        setTimeout('checkLoad();', 1000)
    }
}
这样做的

方法是在pdf本身中添加一个javascript,告诉pdf打印自己。

然后,您可以将该 pdf 加载到隐藏的 iFrame 中,如果用户使用 iFrame 重新加载页面,您需要在卸载之前清除该 iFrame 以不再打印。

我已经成功地使用这种方法超过10年。

生成可自动打印的 PDF