如何从服务器上的文件中获取文本
本文关键字:文件 获取 取文本 服务器 | 更新日期: 2023-09-27 18:00:41
有cv上传的web应用程序我想在上传过程中获取文本我只有两种类型的简历(Word和PDF)我正在使用ITextsharp&;Microsoft.Office.Interop.Word
,它工作正常,但在服务器上不工作
string Mainer(string pathfile)
{
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
string totaltext = "";
try
{
object miss = System.Reflection.Missing.Value;
// object truee = True;
object oTrue = false;
object path = pathfile;
object readOnly = true;
object pass = "";
Microsoft.Office.Interop.Word.Document docs = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, pass, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref oTrue, ref miss, ref miss, ref miss, ref miss);
for (int i = 0; i < docs.Paragraphs.Count; i++)
{
totaltext += " 'r'n " + docs.Paragraphs[i + 1].Range.Text.ToString();
}
docs.Close();
word.Quit();
word = null;
docs = null;
GC.Collect();
return totaltext;
}
catch (Exception e)
{
//((_Document)word).Close();
//((_Application)word).Quit();
word.Quit();
word = null;
//ererorcount = ererorcount + 1;
//listerrors.Add(pathfile);
return totaltext;
// return ererorcount.ToString();
}
}
错误为
错误:正在检索CLSID为的组件的COM类工厂{000209FF-0000-0000-C000-000000000046}由于以下原因而失败错误:80070005访问被拒绝。(HRESULT中的异常:0x80070005(E_ACCESSDENIED))。
Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为在这种环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁
如果您正在构建一个在服务器端上下文中运行的解决方案,则应该尝试使用那些可以安全执行无人参与的组件。或者,您应该尝试找到至少允许部分代码运行客户端的替代方案。如果使用服务器端解决方案中的Office应用程序,则该应用程序将缺乏成功运行所需的许多功能。此外,您将在整体解决方案的稳定性方面承担风险。请参阅"Office服务器端自动化的注意事项"一文中的更多内容。
您可以考虑使用Open XML SDK或任何其他为服务器端执行而设计的第三方组件。有关详细信息,请参阅欢迎使用Open XML SDK 2.5 for Office。