c# - 从 XPS 文档中提取文本

标签 c# text extract xps

<分区>

我需要从 XPS 文档中提取特定页面的文本。 提取的文本应该写在一个字符串中。我需要这个来使用 Microsofts SpeechLib 读出提取的文本。 请仅使用 C# 示例。

谢谢

最佳答案

添加对 ReachFrameworkWindowsBase 的引用以及以下 using 语句:

using System.Windows.Xps.Packaging;

然后使用这段代码:

XpsDocument _xpsDocument=new XpsDocument("/path",System.IO.FileAccess.Read);
IXpsFixedDocumentSequenceReader fixedDocSeqReader 
    =_xpsDocument.FixedDocumentSequenceReader;
IXpsFixedDocumentReader _document = fixedDocSeqReader.FixedDocuments[0];
IXpsFixedPageReader _page 
    = _document.FixedPages[documentViewerElement.MasterPageNumber];
StringBuilder _currentText = new StringBuilder();
System.Xml.XmlReader _pageContentReader = _page.XmlReader;
if (_pageContentReader != null)
{
  while (_pageContentReader.Read())
  {
    if (_pageContentReader.Name == "Glyphs")
    {
      if (_pageContentReader.HasAttributes)
      {
        if (_pageContentReader.GetAttribute("UnicodeString") != null )
        {                                   
          _currentText.
            Append(_pageContentReader.
            GetAttribute("UnicodeString"));                              
        }
      }
    }
  }
}
string _fullPageText = _currentText.ToString();

文本存在于 Glyphs -> UnicodeString 字符串属性中。对于固定页面,您必须使用 XMLReader

关于c# - 从 XPS 文档中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12262197/

相关文章:

python - 从两个数据文件中提取唯一行

python - 如何使用蒙版去除python中的背景

c# - MVC3 中的 "Hooks"

c# - MVC3 中的 CSS 背景图像——续

algorithm - 每次按键后进行文本比较的工具/算法

c - 如何在C中解析文本文件中标签之间的数据

string - 在 Bash 中访问字符串的最后 x 个字符

c# - 无法从 C# 项目引用 IronPython 项目

c# - 如何延迟发送电子邮件?

python - 将带有异常分隔符的文本文件读取到 panda 数据框