Javascript 将iframe内容另存为.xps/.pdf格式,无需用户交互
我想知道是否可以在没有用户交互的情况下将iframe内容保存为.xps/.pdf格式 当前,“我的编码”可以跳过“打印”对话框并选择“默认打印机”。但是,它无法绕过“另存为”对话框 有人对解决这个问题有什么建议吗 浏览器:IE 9不支持HTML 5 Javascript: VBScript: HTML: 假设我有一个id=iframecontent的iframe标记,并且我希望在没有用户交互的情况下以.xps/.pdf格式打印iframe内容 上述代码可以绕过打印机对话框,但不能绕过另存为对话框 请提供任何建议:服务器端解决方案: 首先:获取HTML,然后将其传递给一个可以从中创建pdf的组件,瞧- 客户端解决方案: 这有点困难,浏览器不允许您在没有用户交互的情况下生成pdf。但是:您可以将html文档发送到您创建的API,而API反过来会发送一个url,您可以在那里下载生成的pdf。do window.opendownloadUrl,用户无需进一步对话框即可下载pdfJavascript 将iframe内容另存为.xps/.pdf格式,无需用户交互,javascript,html,vb.net,vbscript,printing-web-page,Javascript,Html,Vb.net,Vbscript,Printing Web Page,我想知道是否可以在没有用户交互的情况下将iframe内容保存为.xps/.pdf格式 当前,“我的编码”可以跳过“打印”对话框并选择“默认打印机”。但是,它无法绕过“另存为”对话框 有人对解决这个问题有什么建议吗 浏览器:IE 9不支持HTML 5 Javascript: VBScript: HTML: 假设我有一个id=iframecontent的iframe标记,并且我希望在没有用户交互的情况下以.xps/.pdf格式打印iframe内容 上述代码可以绕过打印机对话框,但不能绕过另存为对话框
要从html创建pdf,请参阅服务器端解决方案- 客户端解决方案:您可以使用jsPDF库 这是您可以在文档中阅读的最简单的示例:
var doc = new jsPDF();
// We'll make our own renderer to skip this editor
var specialElementHandlers = {
'#editor': function(element, renderer){
return true;
}
};
// All units are in the set measurement for the document
// This can be changed to "pt" (points), "mm" (Default), "cm", "in"
doc.fromHTML($('#render_me').get(0), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers
});
其中“render_me”将是您要导出的部分。感谢您的快速回复。从您的回答中,我能否得出结论,它需要下载生成的.pdf文件以绕过用户交互?如果我希望保存到特定的目标文件夹(如C:\)如何?谢谢你的建议。我确实注意到了jsPDF库。但我认为它可能无法完全支持IE9,因为它是用HTML5编写的。我必须仔细阅读。然后,您将需要一个服务器端解决方案。但是,您可以使用PageMethods进行完整的回发。我已经尝试将iframe内容传递到服务器端,它可以在不需要用户交互的情况下保存为.xps/.pdf。但是,它无法呈现HTML,文档将使用以下标记打印:
Sub bypassprint()
call WB.ExecWB(6, 2) //bypass printer dialog box
call Wb.Dispose()
End Sub
<input type="submit" name="Submit" value="Print" onclick="javascript:PrintDoc();" id="btnSubmit" class="Btn" />
var doc = new jsPDF();
// We'll make our own renderer to skip this editor
var specialElementHandlers = {
'#editor': function(element, renderer){
return true;
}
};
// All units are in the set measurement for the document
// This can be changed to "pt" (points), "mm" (Default), "cm", "in"
doc.fromHTML($('#render_me').get(0), 15, 15, {
'width': 170,
'elementHandlers': specialElementHandlers
});