在 C#、VB.NET 中的確切位置將文本插入 Word
我們的一位客戶要求將文本插入到 Word 文檔的準(zhǔn)確位置(水平和垂直坐標(biāo))。通常,人們使用表格和文本框等其他工具在 Word 文檔中定位文本,因?yàn)楸砀窈臀谋究虻亩ㄎ桓菀卓刂啤T诒疚闹?,我們將介紹如何在 C#、VB.NET 中通過(guò)文本框在 Word 中定位文本。
首先下載 Spire.Doc for .NET 并將 dll 文件引用到您的項(xiàng)目中。在我們開始編碼之前,我們還需要額外添加以下命名空間。
using System.Drawing; using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using Spire.Doc.Formatting;
代碼片段:
第 1 步:創(chuàng)建一個(gè)新的 Word 文檔,為其添加一個(gè)節(jié),然后在該節(jié)上添加一個(gè)段落。
Document doc = new Document(); Section sec = doc.AddSection(); Paragraph par = sec.AddParagraph();
第 2 步:在段落中添加一個(gè)新的文本框。這里我們?cè)谶壿嬌蠈?/span>VerticalOrigin和Horizo ntalOrigin 設(shè)置為Margin因?yàn)樗胶痛怪弊鴺?biāo)是相對(duì)于他的參考對(duì)象的值。通過(guò)給變量VerticalPosition和HorizontalPosition一個(gè)特定的值,文本框?qū)⒐潭ㄔ谠撐恢谩?/span>
TextBox textBox = par.AppendTextBox(180, 30); textBox.Format.VerticalOrigin = VerticalOrigin.Margin; textBox.Format.VerticalPosition = 100; textBox.Format.HorizontalOrigin = HorizontalOrigin.Margin; textBox.Format.HorizontalPosition = 50; textBox.Format.NoLine = true;
第 3 步:定義新的格式樣式。
CharacterFormat format = new CharacterFormat(doc); format.FontName = "Calibri"; format.FontSize = 15; format.Bold = true;
第 4 步:將文本添加到文本框中,并將預(yù)設(shè)格式應(yīng)用于文本。
Paragraph par1 = textBox.Body.AddParagraph(); par1.AppendText("This is my new string").ApplyCharacterFormat(format);
第 5 步:保存文件。
doc.SaveToFile("result.docx", FileFormat.Docx);
結(jié)果:
文本框的邊框線已設(shè)置為不可見,因此我們只能看到在指定的水平和垂直坐標(biāo)處添加的文本。
完整代碼:
[C#]
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using Spire.Doc.Formatting; using System.Collections.Generic; namespace InsertText { class Program { static void Main(string[] args) { Document doc = new Document(); Section sec = doc.AddSection(); Paragraph par = sec.AddParagraph(); TextBox textBox = par.AppendTextBox(180, 30); textBox.Format.VerticalOrigin = VerticalOrigin.Margin; textBox.Format.VerticalPosition = 100; textBox.Format.HorizontalOrigin = HorizontalOrigin.Margin; textBox.Format.HorizontalPosition = 50; textBox.Format.NoLine = true; CharacterFormat format = new CharacterFormat(doc); format.FontName = "Calibri"; format.FontSize = 15; format.Bold = true; Paragraph par1 = textBox.Body.AddParagraph(); par1.AppendText("This is my new string").ApplyCharacterFormat(format); doc.SaveToFile("result.docx", FileFormat.Docx); } } }
[VB.NET]
Imports Spire.Doc Imports Spire.Doc.Documents Imports Spire.Doc.Fields Imports Spire.Doc.Formatting Imports System.Collections.Generic Namespace InsertText Class Program Private Shared Sub Main(args As String()) Dim doc As New Document() Dim sec As Section = doc.AddSection() Dim par As Paragraph = sec.AddParagraph() Dim textBox As TextBox = par.AppendTextBox(180, 30) textBox.Format.VerticalOrigin = VerticalOrigin.Margin textBox.Format.VerticalPosition = 100 textBox.Format.HorizontalOrigin = HorizontalOrigin.Margin textBox.Format.HorizontalPosition = 50 textBox.Format.NoLine = True Dim format As New CharacterFormat(doc) format.FontName = "Calibri" format.FontSize = 15 format.Bold = True Dim par1 As Paragraph = textBox.Body.AddParagraph() par1.AppendText("This is my new string").ApplyCharacterFormat(format) doc.SaveToFile("result.docx", FileFormat.Docx) End Sub End Class End Namespace