如何从 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;

这不会从屏幕上返回任何文本,而不是服务器上的文档相对路径

当我读出这些字符串时,我计划比较它们并对其进行断言。

有人可以指出我这样做的正确方向吗?

谢谢

如何从 word 文件或在浏览器中打开的 pdf 中读取字符串文本

为了"读取"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文件的权限或属性设置方式会阻止复制整个文档。