C#向Word插入排版精良的TextBox

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(150, 300);
 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(150, 300);
      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");

    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 使用C#实现在word中插入页眉页脚的方法

    针对Word的操作是很多程序都具备的功能,本文即以实例展示使用C#实现在word中插入页眉页脚的方法,供大家参考借鉴,具体方法如下: 一.插入页脚的方法: public void InsertFooter(string footer) { if (ActiveWindow.ActivePane.View.Type == WdViewType.wdNormalView || ActiveWindow.ActivePane.View.Type == WdViewType.wdOutlineView)

  • C#采用OpenXml给Word文档添加表格

    本文实例讲述了C#采用OpenXml给Word文档添加表格的方法,是非常实用的操作技巧.分享给大家供大家参考.具体分析如下: 这里将展示如何使用Openxml向Word添加表格. 代码中表头和数据我们用的同一个TableRow来添加,其实可以通过TableHeader来,其实都一样.后面我们还会进一步给出如何设置单元格样式.表头那一行可以自己通过设置样式来控制 示例代码如下: using System; using System.Collections.Generic; using System

  • C#采用OpenXml实现给word文档添加文字

    本文实例讲述了C#采用OpenXml实现给word文档添加文字的方法,分享给大家供大家参考.具体方法如下: 一般来说,使用OpenXml给word文档添加文字,每个模块都有自己对于的属性以及内容,要设置样式就先声明属性对象,将样式Append到属性里面,再将属性append到模块里面,那么模块里面的内容就具备该样式了.此方法默认是在文件后面追加内容 示例代码如下: using System; using System.Collections.Generic; using System.Linq;

  • C#如何给word文档添加水印

    和PDF一样,在word中,水印也分为图片水印和文本水印,给文档添加图片水印可以使文档变得更为美观,更具有吸引力.文本水印则可以保护文档,提醒别人该文档是受版权保护的,不能随意抄袭.前面我分享了如何给PDF添加水印,有人问我如何给word文档添加水印,今天正好有空,就记录一下我是如何实现的. 步骤其实很简单,为了节省时间和简化代码规模,我从E-iceblue官网上下载了一个免费word组件,解压安装之后,参考官网的教程,创建项目,并按步骤对代码进行了简单的设置.下面就来看看如何通过这个组件实现上

  • C#采用OpenXml给word里面插入图片

    本文实例讲述了C#采用OpenXml给word里面插入图片的方法,分享给大家供大家参考.具体分析如下: 首先需要指出的是在MSDN官网有完整的OpenXML教程,虽然是全英文的不过还是很有帮助的. 注,原来摘抄代码里面没有模板,在copy过来发现插入word中的图片大小不一样,我们如何查找设置图片大小带代码的那一块,建议自己用在word里面插入一张图片,通过OpenXml Tools 反编译出C#代码,然后改变图片的大小,再次反编译. 使用byeond compare [http://www.s

  • C#向Word文档中添加内容控件的方法示例

    前言 大家应该都知道在MS Word中,我们可以通过内容控件来向word文档中插入预先定义好的模块,指定模块的内容格式(如图片.日期.列表或格式化的文本等),从而创建一个结构化的word文档. 下面就来看看如何使用C#给word文档添加组合框.文本.图片.日期选取器及下拉列表等内容控件(这里我借助了一个word组件Spire.Doc). 添加组合框内容控件 组合框用于显示用户可以选择的项目列表.和下拉列表不同的是组合框允许用户编辑或添加项. 核心代码如下: //给段落添加一个内容控件并指定它的S

  • C#向word文档插入新段落及隐藏段落的方法

    编辑Word文档时,我们有时会突然想增加一段新内容:而将word文档给他人浏览时,有些信息我们是不想让他人看到的.那么如何运用C#编程的方式巧妙地插入或隐藏段落呢?本文将与大家分享一种向Word文档插入新段落及隐藏段落的好方法. 这里使用的是Free Spire.Doc for .NET组件,该组件允许开发人员轻松并灵活地操作Word文档. 向Word文档插入一个新段落的操作步骤 步骤1:新建一个文档并加载现有文档 Document document = new Document(); docu

  • C#向Word插入排版精良的TextBox

    Text Box(文本框)是Word排版的工具之一.在Word文档正文的任何地方插入文本框,可添加补充信息,放在合适的位置,也不会影响正文的连续性.我们可以设置文本框的大小,线型,内部边距,背景填充等效果.文本框内可以图文混排,设置字体,字号,图片大小等. 在日常使用中,我们很容易忽略这些元素,仅仅插入一个黑色单线,仅含文字的文本框.因而,我觉得有必要向大家介绍并制作一个版式精良的文本框,抛砖引玉. 本篇博文主要介绍,如何使用C#在Word文档的特定位置,插入一个有图片填充,内部边距,图文混排,

  • Python操作word文档插入图片和表格的实例演示

    前言 图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起看看详细的代码 实例代码: # -*- coding: UTF8 -*- from docx import Document from docx.shared import Pt doc = Document() # 文件存储路径 path = "C:\\Users\\Administrator\\Desktop\\word文档\\" # 读取文

  • Java 获取Word中所有的插入和删除修订的方法

    目录 ​​引入Jar​​ ​​方法1​​ ​​方法2​​ ​​获取插入.删除的修订​​ 在 Word 文档中启用跟踪更改功能后,会记录文档中的所有编辑行为,例如插入.删除.替换和格式更改.对插入或删除的内容,可通过本文中介绍的方法来获取. ​​引入Jar​​ ​​方法1​​ 手动引入:将Free Spire.Doc for Java下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件.在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序:​ ​​方法2​​ 通过Ma

  • Java实现在Word指定位置插入分页符

    目录 程序环境 插入分页符 1.在指定段落后插入分页符 2.在指定文本位置后插入分页符 在Word插入分页符可以在指定段落后插入,也可以在特定文本位置处插入.本文,将以Java代码来操作以上两种文档分页需求.下面是详细方法及步骤. 程序环境 在程序中导入jar,如下两种方法: 方法1:手动引入.将 Free Spire.Doc for Java 下载到本地,解压,找到lib文件夹下的Spire.Doc.jar文件.在IDEA中打开如下界面,将本地路径中的jar文件引入Java程序: 方法2(推荐

  • C#/VB.NET实现在 Word 中插入水印 

    目录 前言 安装 在 Word 文档中插入文本水印 在 Word 文档中插入图片水印 前言 水印是指在 Word 文档的背景中以淡色或灰色显示的文本或图像.它们可用于声明文档的机密性.版权或其他属性,也可以仅用作装饰,使文档更具吸引力.下面将为大家展示如何使用Spire.Doc for .NET在C#和VB.NET程序中给Word文档插入文本水印和图片水印. 安装 首先,我们需要将 Spire.Doc for.NET 包中包含的 DLL 文件添加为 .NET 项目中的引用.可以从​​此链接​​下

  • C# Aspose.Words 删除word中的图片操作

    今天介绍下 Aspose.Words 对 word 中的图片进行删除 string tempFile = Application.StartupPath + "\\resource\\templete\\项目建议书模板.doc"; Document doc = new Document(tempFile); NodeCollection shapes = doc.GetChildNodes(NodeType.Shape, true); foreach (Shape item in sh

  • Java 实现word模板转为pdf

    1. pom相关依赖 工具poi-tl (操作word文档模板) + jacob (将操作后的word模板转为pdf) <!-- poi-tl的pom依赖 --> <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> <version>1.9.1</version> </dependency> <

  • SpringBoot如何实现word文档转pdf

    目录 一.背景 二.方案选择 1.Spire.Doc for Java方案 2.docx4j方案 3.jodconverter+LibreOffice 方案 4.其他 三.实操 1.docx4j 2.poi-tl+jodconverter+LibreOffice 方案 四.结论 1.docx4j方案 2.jodconverter+LibreOffice 方案 一.背景 项目中有个需求大体意思是,上传一个word模板,根据word模板合成word文件,再将word文件转为pdf. 二.方案选择 1

  • 如何利用Python将html转为pdf、word文件

    目录 前言 转 pdf 安装 pdfkit 库 安装 wkhtmltopdf 文件 url 生成 pdf 本地 html 文件生成 pdf 转 word 安装 pypandoc 库 安装 pandoc 软件 使用 补充:用python把pdf文件转换为word文件 总结 前言 在日常中有时需将 html 文件转换为 pdf.word 文件.网上免费的大多数不支持多个文件转换的情况,而且在转换几个后就开始收费了. 转 pdf 转 pdf 中使用 pdfkit 库,它可以让 web 网页直接转为 p

  • C#/VB.NET实现在Word中插入或删除脚注

    目录 程序环境 在Word中的特定段落后插入脚注 完整代码 效果图 在Word中的特定文本后插入脚注 完整代码 效果图 脚注,是可以附在文章页面的最底端的,对某些东西加以说明,印在书页下端的注文.脚注和尾注是对文本的补充说明.脚注一般位于页面的底部,可以作为文档某处内容的注释.常用在一些说明书.标书.论文等正式文书用来引注的内容.这篇文章将为您展示如何通过C#/VB.NET代码,以编程方式在Word中插入或删除脚注.以下是我整理的具体步骤及方法,并附上C#/VB.NET代码供大家参考. 在Wor

随机推荐