C#: 向Word插入排版精良的文本框


Text Box(文本框)是Word排版的工具之一。在Word文檔正文的任何地方插入文本框,可添加補充信息,放在合適的位置,也不會影響正文的連續性。我們可以設置文本框的大小,線型,內部邊距,背景填充等效果。文本框內可以圖文混排,設置字體,字號,圖片大小等。 在日常使用中,我們很容易忽略這些元素,僅僅插入一個黑色單線,僅含文字的文本框。因而,我覺得有必要向大家介紹並制作一個版式精良的文本框,拋磚引玉。

本篇博文主要介紹,如何使用C#Word文檔的特定位置,插入一個有圖片填充,內部邊距,圖文混排,線型精致的文本框。感興趣的博友請從E-iceblue下載Free Spire.Doc,並添加為Visual Studio引用。

需要用的命名空間:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spire.Doc;
using Spire.Doc.Fields;
using Spire.Doc.Documents;
using System.Drawing;

 

步驟詳解:

步驟一:加載一個只含有文本的Word文檔,如下圖。

 

            Document document =  new Document();
            document.LoadFromFile( " 李白生平.docx ");

 

 

步驟二:在加載的Word文檔中添加一個文本框,並設定其具體位置。這里需要考慮兩點:插入的頁和頁面的位置。即:在哪一頁插入這個文本框,文本框在該頁的位置。只有定位好這兩點,文本框的位置才能具體確認。此外,還需考慮文本框和文本的位置關系,即設置位置和自動換行(text wrapping)。所以,以下代碼,通過設定文本框在哪一段落,相較於頁面的位置和自動換行,來確定其位置。

 

            TextBox TB = document.Sections[ 0].Paragraphs[ 0].AppendTextBox( 150300);
            TB.Format.HorizontalOrigin = HorizontalOrigin.Page;
            TB.Format.HorizontalPosition =  370;
            TB.Format.VerticalOrigin = VerticalOrigin.Page;
            TB.Format.VerticalPosition =  155;

            TB.Format.TextWrappingStyle = TextWrappingStyle.Square;
            TB.Format.TextWrappingType = TextWrappingType.Both;

 

 

步驟三:設置文本框框的顏色,內部邊距,圖片填充。

 

            TB.Format.LineStyle = TextBoxLineStyle.Double;
            TB.Format.LineColor = Color.LightGoldenrodYellow;
            TB.Format.LineDashing = LineDashing.Solid;
            TB.Format.LineWidth =  3;

            TB.Format.InternalMargin.Top =  12;
            TB.Format.InternalMargin.Bottom =  8;
            TB.Format.InternalMargin.Left =  12;
            TB.Format.InternalMargin.Right =  12;

            TB.Format.FillEfects.Type = BackgroundType.Picture;
            TB.Format.FillEfects.Picture = Image.FromFile( " 2.jpg ");

 

步驟四:在文本框內添加段落文本,圖片,設置字體,字體顏色,行間距,段后距,對齊方式等。然后保存文檔,打開查看效果。

 

            Paragraph para1 = TB.Body.AddParagraph();
            para1.Format.AfterSpacing =  6;
            para1.Format.HorizontalAlignment = HorizontalAlignment.Center;
            TextRange TR1 = para1.AppendText( " 李白 ");
            TR1.CharacterFormat.FontName =  " 華文新魏 ";
            TR1.CharacterFormat.FontSize =  16;
            TR1.CharacterFormat.Bold =  true;
           
            Paragraph para2 = TB.Body.AddParagraph();
            Image image = Image.FromFile( " 李白.jpg ");
            DocPicture picture = para2.AppendPicture(image);
            picture.Width =  120;
            picture.Height =  160;
            para2.Format.AfterSpacing =  8;
            para2.Format.HorizontalAlignment = HorizontalAlignment.Center;

            Paragraph para3 = TB.Body.AddParagraph();
            TextRange TR2 = para3.AppendText( " 盛唐最傑出的詩人,中國歷史最偉大的浪漫主義詩人杜甫贊其文章“筆落驚風雨,詩成泣鬼神” ");
            TR2.CharacterFormat.FontName =  " 華文新魏 ";
            TR2.CharacterFormat.FontSize =  11;
            para3.Format.LineSpacing =  15;
            para3.Format.HorizontalAlignment = HorizontalAlignment.Left;
            para3.Format.SuppressAutoHyphens =  true;

            document.SaveToFile( " R1.docx ");
            System.Diagnostics.Process.Start( " R1.docx ");

 

效果圖:

 

完整代碼示例:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spire.Doc;
using Spire.Doc.Fields;
using Spire.Doc.Documents;
using System.Drawing;

namespace textbox
{
     class Program
    {
         static  void Main( string[] args)
        {
            Document document =  new Document();
            document.LoadFromFile( " 李白生平.docx ");

            TextBox TB = document.Sections[ 0].Paragraphs[ 0].AppendTextBox( 150300);
            TB.Format.HorizontalOrigin = HorizontalOrigin.Page;
            TB.Format.HorizontalPosition =  370;
            TB.Format.VerticalOrigin = VerticalOrigin.Page;
            TB.Format.VerticalPosition =  155;

            TB.Format.TextWrappingStyle = TextWrappingStyle.Square;
            TB.Format.TextWrappingType = TextWrappingType.Both;

            TB.Format.LineStyle = TextBoxLineStyle.Double;
            TB.Format.LineColor = Color.LightGoldenrodYellow;
            TB.Format.LineDashing = LineDashing.Solid;
            TB.Format.LineWidth =  3;

            TB.Format.InternalMargin.Top =  12;
            TB.Format.InternalMargin.Bottom =  8;
            TB.Format.InternalMargin.Left =  12;
            TB.Format.InternalMargin.Right =  12;

            TB.Format.FillEfects.Type = BackgroundType.Picture;
            TB.Format.FillEfects.Picture = Image.FromFile( " 2.jpg ");

            Paragraph para1 = TB.Body.AddParagraph();
            para1.Format.AfterSpacing =  6;
            para1.Format.HorizontalAlignment = HorizontalAlignment.Center;
            TextRange TR1 = para1.AppendText( " 李白 ");
            TR1.CharacterFormat.FontName =  " 華文新魏 ";
            TR1.CharacterFormat.FontSize =  16;
            TR1.CharacterFormat.Bold =  true;
           
            Paragraph para2 = TB.Body.AddParagraph();
            Image image = Image.FromFile( " 李白.jpg ");
            DocPicture picture = para2.AppendPicture(image);
            picture.Width =  120;
            picture.Height =  160;
            para2.Format.AfterSpacing =  8;
            para2.Format.HorizontalAlignment = HorizontalAlignment.Center;

            Paragraph para3 = TB.Body.AddParagraph();
            TextRange TR2 = para3.AppendText( " 盛唐最傑出的詩人,中國歷史最偉大的浪漫主義詩人杜甫贊其文章“筆落驚風雨,詩成泣鬼神” ");
            TR2.CharacterFormat.FontName =  " 華文新魏 ";
            TR2.CharacterFormat.FontSize =  11;
            para3.Format.LineSpacing =  15;
            para3.Format.HorizontalAlignment = HorizontalAlignment.Left;
            para3.Format.SuppressAutoHyphens =  true;
            
            document.SaveToFile( " R1.docx ");
            System.Diagnostics.Process.Start( " R1.docx ");
        
        }
    }
}

 

 

 

感謝閱讀,歡迎評論交流。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM