Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将iframe内容另存为.xps/.pdf格式,无需用户交互_Javascript_Html_Vb.net_Vbscript_Printing Web Page - Fatal编程技术网

Javascript 将iframe内容另存为.xps/.pdf格式,无需用户交互

Javascript 将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内容 上述代码可以绕过打印机对话框,但不能绕过另存为对话框

我想知道是否可以在没有用户交互的情况下将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,用户无需进一步对话框即可下载pdf


要从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
});