我有一个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)
}
}
答案 0 :(得分:1)
这样做的方法是向pdf本身添加一个javascript,告诉pdf打印自己。
然后,您可以将该pdf加载到隐藏的iFrame中,如果用户使用iFrame重新加载页面,则需要清除onbeforeunload以不再打印。
我已成功使用此方法超过10年。