文本控件Text Control示例: 将图像插入 TX 的各种方法

TX Text Control 是一款功能类似于 MS Word 的文字处理控件,包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理,网站内容发布,电子病历中病案模板创建、病历书写、修改历史、连续打印、病案归档等功能的实现。

TX Text Control 提供了多种将图像插入文档的方法。本文介绍如何从文件、内存、.NET Image 对象插入图像以及如何从 URL 插入图像。

TX Text Control 最新下载icon-default.png?t=N7T8https://www.evget.com/vendor/118

插入文件中的图像

从文件插入图像是将图像添加到文档的最常见方法。以下代码显示如何将文件中的图像插入到文档中:

string imagePath = "Images/signature1.jpg";TXTextControl.Image myImage = new TXTextControl.Image() {
FileName = imagePath };textControl1.Images.Add(myImage, -1);

TX Text Control 自动检测图像过滤器。如果不支持文件扩展名,则不会插入图像并引发异常。

插入 .NET System.Drawing.Image

TX Text Control 支持从 .NET System.Drawing.Image对象插入图像。以下代码显示如何从 .NET Image 对象插入图像:

string imagePath = "Images/signature1.jpg";
System.Drawing.Image img = System.Drawing.Image.FromFile(imagePath);TXTextControl.Image myImage = new TXTextControl.Image(img);textControl1.Images.Add(myImage, -1);

Image 类的构造函数接受 .NET Image 对象作为参数。图像以原始尺寸和分辨率插入。

从 MemoryStream 添加图像

可以从MemoryStream对象插入图像。以下代码显示如何从 MemoryStream 插入图像:

string imagePath = "Images/signature1.jpg";// load image into memory stream
MemoryStream ms = new MemoryStream();
Image img = Image.FromFile(imagePath);
img.Save(ms, img.RawFormat);// create image objectTXTextControl.Image myImage = new TXTextControl.Image(ms);// add image to text control
textControl1.Images.Add(myImage, -1);
来自字节数组的图像

可以从字节数组插入图像。以下代码显示如何从字节数组插入图像:

string imagePath = "Images/signature1.jpg";byte[] bytes = File.ReadAllBytes(imagePath);using (MemoryStream ms = new MemoryStream(
bytes, 0, bytes.Length, writable: false, publiclyVisible: true))
{
// create image object
TXTextControl.Image myImage = new TXTextControl.Image(ms);
textControl1.Images.Add(myImage, -1);
}

writable参数设置为 false,表示该流无法写入。publicVisible设置为 true,意味着其他线程可以安全地访问内存流的缓冲区,这是 Image 类加载图像所必需的。

从 URL 插入图像

可以从 URL 插入图像。因此,图像被下载并插入到文档中。以下代码显示如何从 URL 插入图像:

string url = "https://www.textcontrol.com/img/corporate_id/tx_logo.svg";using (WebClient client = new WebClient())
{
byte[] bytes = client.DownloadData(url);using (MemoryStream ms = new MemoryStream(
bytes, 0, bytes.Length, writable: false, publiclyVisible: true))
{
// create image object
TXTextControl.Image myImage = new TXTextControl.Image(ms);
textControl1.Images.Add(myImage, -1);
}
}
图像定位

与 TX Text Control 中的所有其他 FrameBase 对象一样,图像可以内联插入到字符位置、锚定到段落或作为固定对象插入到特定页面上。上述所有示例都将图像插入到文本位置,并将内联图像视为字符。可以使用以下插入模式:

  • 内嵌文本
  • 锚定到一个段落
  • 固定在页面上

支持以下插入模式:

Member描述
作为角色图像作为单个字符插入到文本中。
替换完整线图像被插入到某个几何位置。文本在顶部停止并在图像底部继续。
置换文本图像被插入到某个几何位置。文本围绕图像流动,左侧和右侧的空白区域被填充。
文字之上图像被插入到文本上方的某个几何位置。这意味着图像会覆盖文本。
文字下方图像被插入到文本下方的某个几何位置。这意味着文本会覆盖图像。
随文本移动图像与段落连接并随文本移动。
固定在页面上图像固定位于页面上。

ImageInsertionMode 枚举的值可以组合。可能的组合是:

  • 替换完整线|随文本移动
  • 替换完整线|固定在页面上
  • 置换文本 |随文本移动
  • 置换文本 |固定在页面上
  • 上面的文字|随文本移动
  • 上面的文字|固定在页面上
  • 正文下方 |随文本移动
  • 正文下方 |固定在页面上
  • 作为角色
锚定到段落

例如,以下代码插入一个图像,以 500 缇的双向位置偏移锚定到当前输入位置处的段落:

TXTextControl.Image image = new TXTextControl.Image("image.png", 4);textControl1.Images.Add(image, new Point(500,500), -1,
TXTextControl.ImageInsertionMode.MoveWithText |
TXTextControl.ImageInsertionMode.DisplaceText);

该位置以缇为单位指定应插入图像的位置。这是相对于页面或段落左上角的位置。

图片位置

结论

本文介绍了如何使用 Windows 窗体的 TX Text Control .NET 将来自各种来源的图像插入到文档中。 Image 类提供了从文件、.NET Image 对象和 MemoryStream 对象插入图像的构造函数。还可以从 URL 插入图像。 ImageInsertionMode枚举提供了在文档中定位图像的各种方法。

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

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

相关文章

在Linux上面部署ELK

注明:一下的软件需要自己准备 一、准备环境: 1.两台elasticsearch主机4G内存 2.两台elasticsearch配置主机名node1和node2(可以省略) #vim /etc/hostname #reboot 3. 两台elasticsearch配置hosts文件 #vim /etc/hosts 192.168.1.1 node1 192…

RTMP低延迟推流

人总是需要压力才能进步, 最近有个项目, 需要我在RK3568上, 推流到公网, 最大程度的降低延迟. 废话不多说, 先直接看效果: 数据经过WiFi发送到Inenter的SRS服务器, 再通过网页拉流的. 因为是打金任务, 所以逼了自己一把, 把RTMP推流好好捋一遍. 先说说任务目标, 首先是MPP编码…

【Altium】AD-检查原理图中元器件未连接的Passive Pin

1、 文档目标 如何让原理图编译时找出元器件上未连接的Passive Pin 2、 问题场景 当引脚属性(Pin type)为passive时,原理图编译的默认规则是不会去检查它们是否有连接的。在实际设计过程中,经常会有导线虚连,漏连的事…

医疗传感器种类不断增多 市场规模逐渐扩大

医疗传感器种类不断增多 市场规模逐渐扩大 医疗传感器是将人体的生理信息转换为电信息的变换装置。医疗传感器具有高灵敏度、高精度、实时监测等优点,可以检测佩戴者的心率、呼吸频率、活动量等,从而更加准确地了解身体情况。   经过多年发展&#…

【极简】docker常用操作

镜像images是静态的 容器container是动态的,是基于镜像的,类似于一个进程。 查看docker images: docker images 或者docker image ls 查看docker container情况:docker ps -a,-a意思是--all 运行一个container: doc…

MySQL not in不等于找不到null的数据

在使用MySQL的NOT IN语句时,如果找不到NULL值,可能是因为NULL值在比较中具有特殊性质。NULL值不等于任何其他值,包括它自己。因此,使用NOT IN语句时,如果列表中包含NULL值,则查询不会返回任何结果。 解决此…

有意思的数组

var nums [1,2,3,6] const nums1 [6, 8, 7, 10, 9];/* 数组合并————push */ var n nums.push(...nums1); // 将列表 nums1 拼接到 nums 之后 n //n会是nums的长度 > 9 nums //也push了 > (9) [1, 2, 3, 6, 6, 8, 7, 10, 9]/* 数组合并————concat*/ var arr0…

数字水印 | 奇异值分解 SVD 的 Python 代码实现

🥑原理:数字水印 | 奇异值分解 SVD 的定义、原理及性质 🥑参考:Python 机器学习笔记:奇异值分解(SVD)算法 正文 对于一个图像矩阵,我们总可以将其分解为以下形式: 通过…

使用API有效率地管理Dynadot域名,默认将域名隐形转发至其他界面

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

英译汉早操练-(十九)

hello,are you OK? 生活如此美好,周四了,你还好吗?坚持了快一周了,是不是最后冲刺一把就开启周末的美好生活了。 今天我们学习这篇经济学人文章: 题目是:Banks, at least, are making money from a turbul…

【大模型微调】一文掌握7种大模型微调的方法

本篇文章深入分析了大型模型微调的基本理念和多样化技术,细致介绍了LoRA、适配器调整(Adapter Tuning)、前缀调整(Prefix Tuning)等多个微调方法。详细讨论了每一种策略的基本原则、主要优点以及适宜应用场景,使得读者可以依据特定的应用要求和计算资源限…

Linux | VMware安装镜像指南(Windows、IOS、麒麟)

文章目录 虚拟机安装推荐 虚拟机安装推荐 macOS系统:macOS虚拟机安装全过程(VMware)麒麟系统:麒麟系统虚拟机安装(VMware)VMtools工具解决方案: [第一步](https://blog.csdn.net/weixin_421187…

openGauss一主两备集群异常断电后不能正常启动的解决过程简记

背景 因异常断电后opengauss 5.0.0版本,一主两备集群启动失败。 报错不是主机,由于当时没有截图,查看日志后发现报错是: 定位过程 Day1 1. 尝试用另外两台机器启动每台机器 发现都报错自己不是主机,像极了唐僧被妖…

【算法刷题day55】Leetcode:583. 两个字符串的删除操作、72. 编辑距离

文章目录 Leetcode 583. 两个字符串的删除操作解题思路代码总结 Leetcode 72. 编辑距离解题思路代码总结 草稿图网站 java的Deque Leetcode 583. 两个字符串的删除操作 题目:583. 两个字符串的删除操作 解析:代码随想录解析 解题思路 dp数组的含义是&a…

哪款桌面便签app能帮助我提升工作效率

作为上班族,我们每天都要处理大量的工作事项,从策划方案到处理邮件,每一个环节都需高效且有条不紊。在这样的工作环境下,提升效率显得尤为重要。而选择一款优秀的桌面便签app,无疑是提高工作效率的关键。 桌面便签app…

【数据结构】数据结构大汇总 {数据结构的分类总结:定义和特性、实现方式、操作与复杂度、适用场景、相关算法、应用实例}

一、线性结构 1.1 顺序表 定义和特性:顺序表是一种线性表的存储结构,它采用一段地址连续的存储单元依次存储线性表中的元素。顺序表具有随机访问的特性,即可以通过元素的下标直接访问元素。 实现方式:顺序表可以通过数组来实现&…

基于51单片机的非接触式无线红外测温

基于51单片机的无线红外测温 (程序+原理图+设计报告) 功能介绍 具体功能: 1.采用红外温度传感器测温并用LCD1602显示; 2.按键为启动按键、保存按键、显示数据按键,可以实现对温度数值的控制…

【制作100个unity游戏之26】unity2d横版卷轴动作类游戏6(附带项目源码)

最终效果 系列导航 文章目录 最终效果系列导航前言敌人动画配置撞墙判断敌人基本AI逻辑实现 野猪受伤死亡死亡敌人死亡时,还是会对人物产生伤害有限状态机&抽象类多态 定义不同状态的敌人行为防止野猪在悬崖掉下去野猪的追击状态的转换敌人主动查找玩家 追击状态…

基于微信小程序+JAVA Springboot 实现的【智慧乡村旅游服务平台】app+后台管理系统 (内附设计LW + PPT+ 源码+ 演示视频 下载)

项目名称 项目名称: 基于微信小程序的智慧乡村旅游服务平台的设计与实现 项目技术栈 该项目采用了以下核心技术栈: 后端框架/库: Java SSM框架数据库: MySQL前端技术: 微信开发者工具、uni-app其他技术&#xff1a…

8B10B编码(高速收发器五)

1、8B10B解决的问题 8B10B编码是1983年IBM公司提出的传输编码标准,通常用于高速收发器中,常见的JESD204B、SATA等接口协议,使用查表就可以实现编码和解码。 在这些高速收发器的接收端需要通过CDR技术去恢复时钟与数据的相位关系,在…