在日常处理 word 文档时,有时可能需要从文档中提取内容用于其他目的。在本文中,您将学习如何使用 spire.doc for .net 通过代码从 word 文档中提取文本和图片。
安装 spire.doc for .net
首先,您需要将 spire.doc for.net 包含的 dll 文件作为引用添加到您的 .net 项目中。dll 文件可以从此链接下载,也可以通过 安装。
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 天的临时许可证。