在日常处理 Word 文档时,有时可能需要从文档中提取内容用于其他目的。在本文中,您将学习如何使用 Spire.Doc for .NET 通过代码从 Word 文档中提取文本和图片。
安装 Spire.Doc for .NET
首先,您需要将 Spire.Doc for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从此链接下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Doc
C# 提取 Word 文档中的文本
使用 Spire.Doc for .NET,您可以遍历文档中所有段落,然后通过 Paragraph.Text 属性获取每个段落的文本。具体步骤如下:
- 创建 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载 Word 文档。
- 创建一个 StringBuilder 实例。
- 遍历文档每一节中的所有段落。
- 通过 Paragraph.Text 属性获取指定段落的文本,然后使用 StringBuilder.AppendLine() 方法将提取的文本添加到 StringBuilder 实例中。
- 创建一个新的 txt 文本文件,然后使用 File.WriteAllText() 方法将提取的文本写入该文件。
- C#
using Spire.Doc;
using Spire.Doc.Documents;
using System.Text;
using System.IO;
namespace ExtractTextfromWord
{
class ExtractText
{
static void Main(string[] args)
{
//创建Document对象
Document document = new Document();
//加载Word文档
document.LoadFromFile("示例.docx");
//创建StringBuilder实例
StringBuilder sb = new StringBuilder();
//遍历文档中所有节
foreach (Section section in document.Sections)
{
//遍历每一节中的段落
foreach (Paragraph paragraph in section.Paragraphs)
{
//获取段落文本并保存到StringBuilder实例中
sb.AppendLine(paragraph.Text);
}
}
//将提取的文本写入txt文档
File.WriteAllText("提取文本.txt", sb.ToString());
}
}
}
C# 提取 Word 文档中的图片
除了提取文本外,Spire.Doc for .NET 还支持提取文档中的图片,只需要遍历每个段落中的子对象,并保存其中为 DocPicture 类的实例的子对象即可。具体步骤如下:
- 创建 Document 类的对象,并加载 Word 文档。
- 遍历文档每一节中的所有段落。
- 遍历每个段落中的所有子对象。
- 确定当前子对象类型是否为 DocPicture 类的实例。如果是,则使用 DocPicture.Image.Save(String, ImageFormat) 方法将图片保存到指定文档路径。
- C#
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
namespace ExtractImage
{
class Program
{
static void Main(string[] args)
{
//加载Word文档
Document document = new Document("示例.docx");
int index = 0;
//遍历文档中所有节
foreach (Section section in document.Sections)
{
//遍历每一节中所有段落
foreach (Paragraph paragraph in section.Paragraphs)
{
//遍历每个段落中的子对象
foreach (DocumentObject docObject in paragraph.ChildObjects)
{
//如果子对象为图片, 则将图片保存到指定路径
if (docObject.DocumentObjectType == DocumentObjectType.Picture)
{
DocPicture picture = docObject as DocPicture;
picture.Image.Save(string.Format("提取图片\\图_{0}.png", index), System.Drawing.Imaging.ImageFormat.Png);
index++;
}
}
}
}
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。