TX Text Control 是一款功能类似于 MS Word 的文字处理控件,包括文档创建、编辑、打印、邮件合并、格式转换、拆分合并、导入导出、批量生成等功能。广泛应用于企业文档管理,网站内容发布,电子病历中病案模板创建、病历书写、修改历史、连续打印、病案归档等功能的实现。
TX Text Control 提供了多种将图像插入文档的方法。本文介绍如何从文件、内存、.NET Image 对象插入图像以及如何从 URL 插入图像。
TX Text Control 最新下载https://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枚举提供了在文档中定位图像的各种方法。