- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿我正在寻找一种方法来绕过 IE 9 中的 printdialog。我现在有一些方法适用于 ie 7/8,但它们在 ie9 上对我不起作用
有人可以给我提示吗?
问候马库斯
最佳答案
这里成功的关键组合似乎是在 onclick 事件中调用正确的函数(例如 Print() 而不是 window.print() ),以及在 IE9 中配置正确的安全设置(以及任何其他版本的 IE)。
但是,如果通过受信任的安全 HTTPS 连接(具有受信任的 SSL 证书,而不是自签名的 SSL 证书)访问具有打印对话框绕过 ActiveX 控件的页面,则似乎不需要配置安全设置SSL 证书)。
如果通过本地文件路径访问页面,则根本不起作用。如果您打算针对您无法控制的浏览器的用户,请记住这两点,但是如果您确实遇到这种情况,您可能最好完全使用另一种方法,使用诸如Java或要求用户安装 native 操作系统软件,例如优惠券打印网站使用的软件。
无论如何,通过适当的安全设置,IE9 应该允许您使用以下代码绕过打印对话框弹出窗口:
<!DOCTYPE html>
<html>
<head>
<title>Print Test</title>
<script language="VBScript">
sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object id='WB' width='0' height='0' classid='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>
</head>
<body>
<object id="WebBrowser1" width="0" height="0" classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"> </object>
<a href="#" onclick="Print()">Click Here to Print</a>
</body>
</html>
这段代码在 IE7、IE8 和 IE9 中适用于我。我还没有机会使用 IE10,但它也可能在那里工作。如果任何使用 IE10 的人可以测试,请报告回来。为了获得最佳结果,请记住从托管源(最好是受信任的 HTTPS 源)运行它,而不是在本地计算机上运行。
以下是我必须在 IE9 中配置的设置才能使上述代码正常工作。同样,它仅在通过网络提供页面时才有效。它的工作少了唠叨。如果我尝试直接从本地计算机加载相同的 HTML 文件,即使配置了相同的安全设置,它也不起作用。
粉红色突出显示仅表示配置的此类设置不安全。注意:您还可以选择“提示”,这比较麻烦,但被认为有些安全。
关于printing - 绕过 IE9 中的 Printdialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036074/
我有一个 System.Window.Controls.PrintDialog 并且我想使用单个 PrintTicket 以横向模式和纵向模式打印页面,但似乎我只能设置一次方向。 只要我想在纸上打印,
我有这个程序,我可以在其中打印一些关于托盘(物流)的信息,我需要向其中添加条形码。我环顾四周,发现 http://www.codeproject.com/Articles/20823/Barcode-
在 C# Winform 中,我使用 PrintDialog 将图像发送到打印机...使用此代码: private void PrintSnippedImage() {
只是想知道是否有一种方法可以在使用流文档的打印对话框上设置打印文档方向。 例如 var document = userControl.Content as FlowDocument; var prin
我正在尝试从 datagridview 打印选定的文件。此文件位置保存在数据库中。现在在打印之前我想将“份数,从页面到页面”传递给 PrintDialog。我能够将这些值传递给 PrintDialog
好的,在我的程序中,我显示了一个 printDialog,我希望能够知道用户是单击了打印按钮还是取消按钮。在我看到的所有在线示例中,printDialogs 都有 OK 按钮,而不是 Print 按钮
我打开一个 PrintDialog 框,然后使用它设置打印信息; DialogResult result = PrintDialog.ShowDialog(); 现在,我想在单击“应用”按钮时保存
我的 C# 程序允许用户选择他们希望将一些标签打印到几台名称相似的打印机中的哪一台。与它必须显示的打印机名称相比,标准 PrintDialog 相当狭窄,因此您无法在下拉列表中看到所有打印机的完整名称
我有一份报告,想打印它。目前我正在使用: myreport.PrintDialog() 如果我在 Windows PrintDialog 上单击“中止”,报告将在标准打印机上打印。我该如何处理这个中止
我已广泛搜索此问题的解决方案,但未能找到可用于我当前代码的任何内容。 我有一个表单应用程序,它对 SQL Server 表执行查询并用行填充 dataGridView。然后我有一个按钮将 dataGr
我在 .net 2.0 上有一个 Windows 应用程序。在 Form1 上,我打开了一个 PrintDialog。如何从我的代码中获取该对话框的句柄? 我已经尝试了很多 win32 函数:Enum
我正在尝试从代码打印到网络打印机,但打印对话框中的网络打印机状态显示访问被拒绝,无法连接并且打印按钮被禁用。但是如果我从另一个应用程序打印,我可以很好地打印到那台打印机。而且,如果我从打印对话框中选择
嘿我正在寻找一种方法来绕过 IE 9 中的 printdialog。我现在有一些方法适用于 ie 7/8,但它们在 ie9 上对我不起作用 有人可以给我提示吗? 问候马库斯 最佳答案 这里成功的关键组
我有一个对话框,该对话框内有一个表格查看器,用于显示用户操作的结果。我创建了一个带有打印按钮的方法。打印代码包括我从示例中找到的示例代码。 final Text t = new Text(compos
在向用户显示对话框后,我试图修改从 System.Windows.Forms.PrintDialog 获得的 System.Drawing.Printing.PrinterSettings 对象。尽管
这段代码在 .Net 中为任何 CPU 平台构建并在 64 位机器上运行时,只返回一个 Cancel 的 DialogResult 而不显示预期的对话框。 Dim dlg As New System.
我想用 PrintDocument 打印一个非常简单的布局适合一页,所以不需要 DocumentPaginator .但是我想使用 PrinterDialog选择打印机。我看到了 PrinterSet
我想检查我的默认打印机是否打开,如果没有打开,我想选择另一台打印机。我使用下面的代码来检查它是否打开,但它总是返回 true。任何帮助将不胜感激 bool printerIsOnline = fals
我正在创建一个 Java 应用程序,应用程序将在其中打印图片和旁边的一些文本。我在打印时有两台打印机,我会相应地选择。我不会显示打印对话框供用户选择打印机和其他东西。我的代码如下 PrinterJob
这可能吗? 我正在获取现有 PDF 文档的目录和文件名。 C:\temp\FileName.pdf 使用 PDF 渲染器查看文档或打印文档我的 Eclipse 项目中包含 PDF 渲染器,只是不知道如
我是一名优秀的程序员,十分优秀!