在 HTML 页面中使用 VBScript 在客户端打印.msg文件

本文关键字:客户端 打印 msg 文件 VBScript HTML | 更新日期: 2023-09-27 18:33:52

我正在尝试为我们的 SharePoint 场编写一项功能,允许用户勾选文档库中的项目,从功能区中选择自定义操作"打印",然后打印出文档客户端。大多数文档打印正常 - (.docx、.xlsx、.pdf(,因为我可以将 ActiveXObjects 与每种类型的打印方法一起使用。但是,没有ActiveXObject for Outlook可以轻松打印.msg文件。因此,我发现通过脚本在客户端打印.msg文件的唯一方法是通过 vbs:

TargetFolder = "C:'EmailExport" 
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TargetFolder) 
Set colItems = objFolder.Items
For Each objItem in colItems
    objItem.InvokeVerbEx("Print")
Next

这在我的本地计算机上的 .vbs 文件中工作正常,但是当我尝试将其放在.html文件中以便在浏览器中进行测试时,它给了我一个权限被拒绝错误。我无法修改 Internet Explorer 的安全级别,因为公司的组策略控制它们。

测试.html页面如下所示:

<html>
<head>
<script language="vbscript">
<!--
TargetFolder = "C:'EmailExport"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TargetFolder)
Set colItems = objFolder.Items
For Each objItem in colItems
       objItem.InvokeVerbEx("Print")
Next
-->
</script>
</head>
<body>
</body>
</html>

有没有人有任何解决方案可以让我在客户端打印出这些.msg文件?我想保持 Outlook 打印它们的格式,因此首先将它们转换为文本文件等并不是一个真正的选择......

在 HTML 页面中使用 VBScript 在客户端打印.msg文件

出于安全原因,您无法从浏览器环境中访问 Namespace 方法。(网页永远不需要访问本地数据目录。 您需要通过 Windows 脚本主机将其作为独立脚本运行。

我尝试了您的脚本,它可以从HTML页面工作,但是只有当您使用Internet Explorer作为浏览器并且用户需要在其PC上具有足够的权限并且需要设置IE的安全设置以启用Active-X时,它才会起作用。