我正在尝试为SharePoint场编写一个功能,允许用户勾选文档库中的项目,从功能区中选择自定义操作“打印”,然后打印出文档客户端。大多数文档打印得很好 - (。docx,.xlsx,.pdf),因为我可以将ActiveXObjects与Print方法一起用于每种类型。但是,没有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文件中以便在浏览器中进行测试时,它会给我一个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打印出来的格式,所以首先将它们转换为文本文件等不是一个选项......
答案 0 :(得分:0)
出于安全原因,您无法在浏览器环境中访问Namespace方法。 (网页永远不需要访问本地数据目录。)您需要通过Windows脚本宿主将其作为独立脚本运行。
答案 1 :(得分:0)
我尝试了你的脚本,它可以在HTML页面上运行,但只有当你使用Internet Explorer作为浏览器并且用户需要在他的电脑上拥有足够的权限并且需要将IE的安全设置设置为启用时它才有效活性-X。