私がやろうとしているのは、Word文書のフォルダーを実行し、Wordのtiffプリンターを使用してそれらを.tifファイルに変換することです。問題は、ドキュメントに遭遇した場合、パスワードを要求するプロンプトを表示せずにドキュメントをスキップする必要があり、すべてバックグラウンドに残る必要があることです。
Document クラスに HasPassword プロパティがあることがわかりますが、ドキュメントを開く前に確認することはできません。
word.Documents.OpenNoRepairDialog(@"c:\testfolder\testDocWithPw.docx", ReadOnly: true);
また、パスワードに空のパラメーターを指定して、エラーコードをキャッチしようとしました。しかし、そこにたどり着くには、パスワードを要求するプロンプトに対してキャンセルを押す必要があります。
Application word = new Application();
word.DisplayAlerts = WdAlertLevel.wdAlertsNone;
try
{
word.Documents.OpenNoRepairDialog(@"c:\testfolder\Doc2.docx", ReadOnly: true, PasswordDocument: "");
word.ActivePrinter = "TIFF Image Printer 10.0";
Doc.PrintOut(); //printout untested for now
Doc.Close(false);
}
catch (System.Runtime.InteropServices.COMException ex)
{
if (ex.ErrorCode == 0x12345678)
{
//skip file and log file name and position for review
}
}
事前にThx
編集:パスワードに間違ったパスワードを入力しようとしましたが、エラーコード部分を使用できました。パスワードがない場合、パスワードを指定してもファイルが開かれます。だから、それは基本的に私が望むことをします。最悪の場合、開いてはならない文書に誰かのパスワードを付けていると推測した場合、パスワードが適切に設定されていない文書にアクセスできない場合は、hasPassword プロパティを確認できます。