文本控件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.pswp.cn/web/13278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13278.shtml
英文地址,請注明出處:http://en.pswp.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技術去恢復時鐘與數據的相位關系,在…