2012-05-10 28 views
0

ユーザーはドキュメントライブラリ内の項目をチェックし、リボンからカスタムアクション「印刷」を選択して印刷することができるSharePointファームの機能を作成しようとしています文書クライアント側からほとんどのドキュメントは、 - (.docx、.xlsx、.pdf)という罰金を出しています。これらのタイプごとにPrintメソッドでActiveXObjectを使用することができます。ただし、.msgファイルを簡単に印刷できるOutlook用ActiveXObjectはありません。その結果、私は、スクリプトを介してファイルのクライアント側を.MSG印刷するために見つけた唯一の方法は、VBSである:HTMLページ内のVBScriptを使用してクライアント側の.msgファイルを印刷する

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

更新:SetobjFolder = objShell.NameSpace(TargetFolder)行でパーミッションが拒否されました。私は別のパスを試して、コードを実行しているSharePointサイトにファイルを保存し、UNCパスなどでアクセスしてみました。 –

答えて

0

セキュリティ上の理由からブラウザ環境から名前空間メソッドにアクセスすることはできません。 (Webページでは、ローカルデータディレクトリにアクセスする必要はありません)。これは、Windows Script Hostを介してスタンドアロンスクリプトとして実行する必要があります。

+0

しかし、aspxページで生成されるので、Webブラウザで実行する必要があります。ファイルは実際にはローカルマシンに保存されず、どこかのサイトのライブラリに保存されます。問題は、これらの.msgファイルをローカルプリンタに印刷できるようにする必要があることです。 –

+0

ファイルがWebサーバー上にある場合は、クライアント側のコードを使用しないでください。あなたのパスはC:\で始まらないでしょう。あなたが仕事に間違ったツールを使用しようとしているように私には聞こえます。あなたは正確に何を達成しようとしていますか? – Nilpo

+0

私はさまざまなファイルタイプを取り、それをクライアントマシンに接続されたプリンタに印刷する仕組みを作ろうとしています。 .docx、.doc、.txtファイルの場合、次のコードは必要な処理を行います。 function printWord(){var w = new ActiveXObject() 'Word.Application'); var obj = w.Documents.Open( "\\ spsite \ documents \ testdocument.docx"); w.Visible = false; w.PrintOut(); } –

0

スクリプトを試しましたが、HTMLページからは動作しますが、Internet Explorerをブラウザとして使用し、ユーザーが自分のPCに十分な権限を持っていてIEのセキュリティ設定をActive-Xを有効にします。

+0

ええええええええええええええええええええええええええええええええええええええええ、私はそれらを変更することはできません。 –

関連する問題