簡體   English   中英

在HTML頁面中使用VBScript在客戶端打印.msg文件

[英]Printing .msg files client-side using VBScript in a HTML page

我正在嘗試為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將其打印出的格式,因此首先將它們轉換為文本文件等並不是真正的選擇...

出於安全原因,您不能從瀏覽器環境中訪問Namespace方法。 (一個網頁永遠不需要訪問本地數據目錄。)您需要通過Windows腳本宿主將其作為獨立腳本運行。

我嘗試了您的腳本,該腳本可以在HTML頁面上運行,但是只有當您使用Internet Explorer作為瀏覽器並且用戶需要在其PC上具有足夠的權限並且需要將IE的安全設置設置為啟用Active-X時,該腳本才能工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM