0

我正在尝试为我们的 SharePoint 场编写一个功能,让用户在文档库中勾选项目,从功能区中选择自定义操作“打印”,然后打印出文档客户端。大多数文档都打印得很好——(.docx、.xlsx、.pdf),因为我可以将 ActiveXObjects 与每种类型的 Print 方法一起使用。但是,没有用于 Outlook 的 ActiveXObject 可以轻松打印 .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 文件中以便在浏览器中进行测试时,它给了我一个 Permission Denied 错误。我无法修改 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 将它们打印出来的格式,因此首先将它们转换为文本文件等并不是一个真正的选择......

4

2 回答 2

0

我试过你的脚本,它可以在 HTML 页面上运行,但只有当你使用 Internet Explorer 作为浏览器并且用户需要在他的电脑上拥有足够的权限并且需要设置 IE 的安全设置以启用 Active-X 时,它才会起作用.

于 2012-05-10T07:49:09.433 回答
0

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

于 2012-05-10T04:36:04.487 回答