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

devtools/2024/9/23 15:32:56/

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.ppmy.cn/devtools/42186.html

相关文章

汇凯金业:贵金属投资如何操作

投资贵金属虽然可能看起来令人生畏,但只要你知道如何操作,就可能会变得实际可行。以下是操作贵金属投资的基本步骤: 1. 了解市场 第一步是学习贵金属投资的基础知识,了解市场的运作方式,类型的区别(如黄金、白银、铂…

【Python】学生管理系统

为了了解Json以及在python中如何处理Json数据,我在这里整理了一段全面详细的 Python 代码,演示了如何加载、处理和操作 JSON 数据。该代码包括读取 JSON 数据、查询学生信息、添加新学生、更新课程信息等操作。 示例代码 import json# 示例 JSON 数据 …

Java 中 String 类的 split() 方法

split() 方法 是 Java 中 String 类的一个常用方法,用于将字符串按照指定的分隔符分割成一个字符串数组。 它是一个非常强大的工具,可以用于各种字符串处理任务,例如: 从字符串中提取单词将字符串解析成不同的部分将字符串转换为…

Linux(九) 信号

目录 一、什么是信号 二、信号的种类 三、信号的产生 3.1 通过终端按键产生信号 Core Dump 核心转储 3.2 调用系统函数向进程发信号 3.3 由软件条件产生信号 3.4 硬件异常产生信号 四、信号的注册 五、信号的注销 六、信号的三种处理方式 七、信号的递达阻塞未决 八…

基于springboot+mybatis+vue的项目实战之增删改查CRUD—Restful风格

整个代码与前面的案例基于springbootmybatisvue的项目实战之增删改查CRUD-CSDN博客 mapper和servie没有任何的变化。 有变化的主要是controller和html页面 1、controller package com.example.controller;import com.example.pojo.Peot; import com.example.pojo.Result; i…

Maven 依赖排查

先从项目去看显而易见,假如我们有一个项目,父工程中包含一些子工程,如下: 我们想看一下samples-account中的依赖关系,那么我们可以打开 samples-account的pom文件,查看其maven依赖关系图。 我们可以看到此项…

Kibana使用

一、什么是Kibana   Kibana 是一个开源的分析和可视化平台,Kibana 提供搜索、查看和与存储在 Elasticsearch 索引中的数据进行交互的功能。开发者或运维人员可以轻松地执行高级数据分析,并在各种图表、表格和地图中可视化数据。 Kibana使用&#xff1a…

【Maven】Nexus私服简介_下载安装_登录

1、简介 1.1介绍 Nexus私服,也被称为Maven仓库管理器,是许多公司在自己的局域网内搭建的远程仓库服务器。提供了强大的仓库管理功能和构件搜索功能,使得开发人员能够更方便地管理和使用Maven项目中的依赖库。 1.2作用 内网访问&#xff1…