Word控件Spire.Doc 【图像形状】教程(4) 用 C# 中的文本替换 Word 中的图像

news2024/11/15 11:03:19

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转换和打印Word/PDF/Excel等格式文件处理,小巧便捷。在 C#、VB.NET 中从 Word 中提取图像。

Spire.Doc for.NET 最新下载(767755948)icon-default.png?t=M85Bhttps://www.evget.com/product/3368/download

让我们看看 Spire.Doc 是如何帮助开发人员解决与 Office 技术编程相关的问题。根据描述,发帖人希望将Word文件中的每张图片对应替换为“Here was image {image index}”。但是,我们想提供一个带有以下示例代码的解决方案。

测试文件

用文本替换图像的代码片段;

第 1 步:创建一个新的 Word 文档并加载测试文件。

Document document = new Document(@"..\..\test.docx");

第 2 步:获取Word文档中的所有图片并将它们替换为文本“Here was image {image index}”。

int j = 1;
foreach (Section sec in document.Sections)
{
foreach (Paragraph para in sec.Paragraphs)
{
List pictures = new List();
foreach (DocumentObject docObj in para.ChildObjects)
{
if (docObj.DocumentObjectType == DocumentObjectType.Picture)
{
pictures.Add(docObj);
}
}
foreach (DocumentObject pic in pictures)
{
int index = para.ChildObjects.IndexOf(pic);
TextRange range = new TextRange(document);
range.Text = string.Format("Here was image {0}", j);
para.ChildObjects.Insert(index, range);
para.ChildObjects.Remove(pic);
j++;
}
}
}

第 3 步:保存并启动文件。

document.SaveToFile(@"..\..\result.docx", FileFormat.Docx);
System.Diagnostics.Process.Start(@"..\..\result.docx");

结果:

完整的 C# 代码:

[C#]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using Spire.Doc.Interface;
using System.Drawing;

namespace ReplaceImageWithText
{
class Program
{
static void Main(string[] args)
{
Document document = new Document(@"..\..\test.docx");
int j = 1;
foreach (Section sec in document.Sections)
{
foreach (Paragraph para in sec.Paragraphs)
{
List pictures = new List();
foreach (DocumentObject docObj in para.ChildObjects)
{
if (docObj.DocumentObjectType == DocumentObjectType.Picture)
{
pictures.Add(docObj);
}
}
foreach (DocumentObject pic in pictures)
{
int index = para.ChildObjects.IndexOf(pic);
TextRange range = new TextRange(document);
range.Text = string.Format("Here was image {0}", j);
para.ChildObjects.Insert(index, range);
para.ChildObjects.Remove(pic);
j++;
}
}
}
document.SaveToFile(@"..\..\result.docx", FileFormat.Docx);
System.Diagnostics.Process.Start(@"..\..\result.docx");
}
}
}

以上便是如何在 C#/VB.NET 中的指定位置插入图像,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/31964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

元宇宙|世界人工智能大会之元宇宙论坛:设计篇

Hello,大家好~ 这里是壹脑云科研圈,我是鲤鱼~ 世界人工智能大会(WAIC)由国家发展和改革委员会、工业和信息化部、科学技术部、国家互联网信息办公室、中国科学院、中国工程院、中国科学技术协会和上海市人民政府共同主办。 大会…

宝宝喝奶粉过敏怎么办?

为了确保喂养过程安全,我们仍然需要首先了解婴儿奶粉过敏的症状,母亲利用这些基本症状来判断婴儿是否对奶粉过敏,以便及时发现婴儿奶粉过敏,找到相应的策略。婴儿奶粉过敏婴儿奶粉过敏,是指婴儿喝配方奶粉后&#xff0…

【STL】string 类

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉为什么要…

一道面试题:JVM老年代空间担保机制

面试问题 昨天面试的时候,面试官问的问题: 什么是老年代空间担保机制?担保的过程是什么?老年代空间担保机制是谁给谁担保?为什么要有老年代空间担保机制?或者说空间担保机制的目的是什么?如果…

APS高级排产可视化设备任务甘特图

甘特图是评价一个高级计划排程系统的最重要指标之一。一方面企业排程结果数据量规模 大,表格形式显示数据非常不直观,必须借助甘特图进行可视化显示。另一方面,在甘特图上面手动调整排程结果,反馈生产实绩,也可大大简化…

为什么要用 Tair 来服务低延时场景 - 从购物车升级说起

「购物车升级」是今年双十一的重要体验提升项目,体现了大淘宝技术人“用技术突破消费者和商家体验天花板”的态度。这是一种敢于不断重新自我审视,然后做出更好选择的存在主义态度。 「体验提升」通常表现在以前需要降级的功能不降级,以前不…

Web3中文|元宇宙购物的兴起

来源 | techrepublic 近半数消费者接受元宇宙购物 根据UserTesting[1]最近的一项调查,42%的消费者打算在今年的节日季中(holiday season:从感恩节到“黑五”,再到圣诞与新年)进行元宇宙购物,其中88%的消费…

激光雷达数据的25个重要应用介绍

激光雷达是以发射激光束探测目标的位置、速度等特征量的雷达系统。从工作原理上讲,与微波雷达没有根本的区别: 向目标发射探测信号(激光束), 然后将接收到的从目标反射回来的信号 (目标回波) 与发射信号进行比较, 作适当处理后,就可获得目标的有关信息, 如目标距离、…

基于ALOHA MAC方法的蒙特卡罗模拟(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

ES5+ 和 ES6

一、什么是严格模式 JavaScript 除了提供正常模式外,还提供了严格模式(strict mode)。ES5 的严格模式是采用具有限制性 JavaScript变体的一种方式,即在严格的条件下运行 JS 代码。严格模式在 IE10 以上版本的浏览器中才会被支持&a…

【App自动化测试】(六)移动端自动化中常用的元素定位方式

目录1. Android/iOS基础知识1.1 Android基础知识1.1.1 七大布局1.1.2 四大组件1.1.3 常用控件1.1.4 控件的布局1.2 iOS基础知识1.2.1 iOS介绍1.2.2 布局1.2.3 开发环境2.控件定位2.1 元素定位法2.1.1 dom结构介绍2.1.2 定位方式2.1.3 演示代码2.2 xpath定位2.2.1 xpath的层级定…

Radis基础命令(Hash类型)对field进行的操作

目录 Hash类型 Hash与String比较 Hash类型的常见命令(显而易见,在String命令前加入H就是Hash的命令) 1.HSET key field value:添加或修改hash类型key的field的值(实操举例) 2.HGET key field &#xf…

使用Jtest 2022.2简化严格的Java测试

阅读本文,您可以了解您的开发团队如何利用Parasoft Jtest 2022.2 中包含的先进功能和增强功能来简化 Java 测试。 如果开发人员没有自动化测试流程,Java和JUnit测试对他们来说可能是耗时且具有挑战性的。随着Parasoft Jtest2022.2新版本的发布&#xff…

基于JavaWeb的校园故障报修系统(源码+数据脚本+论文+技术文档)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

欺诈团伙遇上关联网络,邪不压正

你可能永远都想不到骗子有多狡猾、多专业。 最近,小象看到这样一个案例: 近日,小王接到了一个自称“京东客服”的电话,说她网购的银行卡有一些网贷需要注销。因为个人信息与她的真实情况相符,小王便也相信了。随后在…

力扣225 - 用队列实现栈【C/C++实现】

用队列实现栈~一、题目描述二、思路分析1、结构声明与展开剖析2、入栈【入队思想】3、出栈【出队思想】4、获取栈顶元素【队列末尾】5、逐步算法图解三、整体代码展示💻C语言代码实现💻C代码实现【⭐】补充:单队列实现栈四、总结与提炼一、题…

谈谈用户态 TCP 协议实现

导语 TCP 协议是目前名气最大、使用最广泛的传输层网络协议。 TCP 是一个可靠的(reliable)、面向连接的(connection-oriented)、基于字节流(byte-stream)、全双工的(full-duplex)协…

低代码如何增强团队应用开发能力?

虽然数字化转型长期以来一直是企业的战略目标,但疫情加速了这一进程。企业为确保参与度和业务连续性而推出的第一个也是最直接的数字渠道之一是移动应用程序。 然而,对于大多数组织而言,最大的障碍之一是技术团队没有足够的带宽来创建具有严…

基于springboot+java+vue的健身房课程预约信息网站-计算机毕业设计

运行环境 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven 项目介绍 本健身网…

从零学习 InfiniBand-network架构(八) —— IB协议中的原子操作

从零学习 InfiniBand-network架构(八) —— IB协议中的原子操作 🔈声明: 😃博主主页:王_嘻嘻的CSDN主页 🔑未经作者允许,禁止转载 🚩本专题部分内容源于《InfiniBand-net…