等到打印前在新窗口中创建pdf

时间:2014-04-02 20:24:25

标签: javascript

我有一个Web程序,可以在用户时动态创建pdf 单击数据网格视图中的print命令,即可创建pdf 在页面printpdf.aspx中。然后执行以下代码:

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

正在执行此代码,我得到一个打印对话框和表单 关闭ok或取消,但pdf尚未生成 何时触发此代码。我需要一种等待页面加载的方法。或者a 可以工作的计时器功能。我也在使用它 浏览器。我试过一个没有运气和上传的计时器功能 功能

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

1 个答案:

答案 0 :(得分:1)

这样做的方法是向pdf本身添加一个javascript,告诉pdf打印自己。

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

我已成功使用此方法超过10年。

Generate a PDF that automatically prints