我正在使用“ netoffice”库从Word文件中提取文本。这应该是自动化过程。
但是,当单词文件受密码保护时,将显示警报窗口,因此用户需要输入密码。由于这是自动过程,因此用户无需输入密码,程序将在此处停止。
如何检测该单词文件是否受“ netoffice”密码保护,并且如果无法实现,如何禁用警报窗口?
我尝试将DisplayAlerts设置为WdAlertLevel.wdAlertsNone,但是它不起作用。
以下代码段将帮助您跳过受密码保护的文件:
int iFilesWithPassword = 0;
Factory.Initialize();
Application wordApplication = new NetOffice.WordApi.Application();
try
{
// Attempt to open existing document. If document is not password protected then
// passwordDocument parameter is simply ignored. If document is password protected
// then an error is thrown and caught by the catch clause the follows, unless
// password is equal to "#$nonsense@!"!
Document newDocument = wordApplication.Documents.Open(@"C:\Users\Giorgos\Desktop\myNextFile.doc",
confirmConversions: false,
addToRecentFiles: false,
readOnly: false,
passwordDocument: "#$nonsense@!");
// read text of document
string text = newDocument.Content.Text;
}
catch(Exception e)
{
Exception inner = e.InnerException;
if (inner != null && inner.InnerException != null)
{
inner = inner.InnerException;
string sErrorMessage = inner.Message;
if (sErrorMessage.Contains("The password is incorrect."))
{
iFilesWithPassword++;
}
}
}
finally
{
// close word and dispose reference
wordApplication.Quit();
wordApplication.Dispose();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句