如何从 word 文件或在浏览器中打开的 pdf 中读取字符串文本
本文关键字:读取 文本 字符串 pdf 浏览器 word 文件 | 更新日期: 2024-11-08 21:36:13
我目前正在为我的工作构建此 Web 应用程序的自动化,其中包含在同一屏幕的浏览器中打开 Word 文档、网页或打开 pdf 文档的链接。现在,我必须对所有这三个情况进行说明。 我要做的就是从pdf浏览器中读取文本,或者打开的word文档并阅读这些文档中的相关文本。
我知道如何从打开的网页中阅读相关文本,但
另外两个选项我真的不知道我必须做什么。 我已经搜索了谷歌,但没有看到与此问题相关的任何内容。 目前使用我打开的 pdf 文档。我尝试从 msaa Edit 控件中读取文本,并尝试获取它的文本属性,如下所示
var returnPDFdoc = ReturnPDFDoc();
string myStringPdf = returnPDFdoc.Text;
这不会从屏幕上返回任何文本,而不是服务器上的文档相对路径
当我读出这些字符串时,我计划比较它们并对其进行断言。
有人可以指出我这样做的正确方向吗?
谢谢
为了"读取"PDF文件,您需要使用PDF库(如iTextSharp)并使用类似于以下内容的代码将文档加载到其中:
public static string ExtractTextFromPdf(string path)
{
using (PdfReader reader = new PdfReader(path))
{
StringBuilder text = new StringBuilder();
for (int i = 1; i <= reader.NumberOfPages; i++)
{
text.Append(PdfTextExtractor.GetTextFromPage(reader, i));
}
return text.ToString();
}
}
在您的情况下,您需要通过其 URL 加载 PDF。
对于MS Word部分,您需要使用Microsoft.Office.Interop.Word程序集来加载文档。有关示例,请参阅 http://www.dotnetperls.com/word。据我所知,使用此程序集的唯一问题是您需要在运行应用程序的计算机上安装 office。
还有另一种可能的解决方案 - 它在另一种情况下对我有用,所以也许它也适合你。
要从 Acrobat 阅读器打开的文件读取 pdf 文件的文本内容,请执行以下操作:
获取 PDF 文件的窗口父级后,我搜索了类型为"文档:"的控件调用
UITestControl control = new UITestControl(parentWindow);
control.SearchProperties.Add[UITestControl.PropertyNames.ControlType] = "Document";
在此控件中有一个 WinEdit 控件,其文本属性包含文件的内容;
WinEdit pdfEdit= new WinEdit(control);
string Content = pdfEdit.Text;
现在,您可以在内容上进行所有断言。
编码的 UI 可以访问某些 PDF 文件中的文本,方法是在 Acrobat 等程序中打开,执行全选然后复制,然后从剪贴板读取内容。打开文件后,发送字符 control-A 然后是 control-C(正常的全选和复制快捷方式)。
我相信某些PDF文件的权限或属性设置方式会阻止复制整个文档。