在 word 文档页面上添加装订线可以提高文档的专业性和美观度。装订线不仅可以使文档看起来更加整洁和有条理,还可以在打印文档时起到指导作用,帮助读者更容易翻阅和浏览文档内容。通过在文档页面上添加装订线,可以模拟出纸质文档中常见的装订线效果,让文档更具印刷品质。本文将介绍如何使用 spire.doc for .net 在 c# 项目中给 word 文档页面添加装订线。
安装 spire.doc for .net
首先,您需要将 spire.doc for.net 包含的 dll 文件作为引用添加到您的 .net项目中。dll 文件可以从此链接下载,也可以通过 安装。
pm> install-package spire.doc
c# 在 word 文档页面的上端添加装订线
设置装订线在页面上端的关键设置是 section.pagesetup.istopgutter = true。默认的装订线区域是显示空白没有内容,此示例也包含了在装订线区域如何添加文本。以下是详细的步骤:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法加载一个文档。
- 使用 for 循环遍历文档的所有节集合 document.sections。
- 设置 section.pagesetup.istopgutter 为 true,让装订线在页面上端显示。
- 使用 section.pagesetup.gutter 属性设置装订线的宽度。
- 调用自定义的 addtopguttertext() 方法将文本添加到装订线区域。
- 使用 document.savetofile() 方法保存到文档。
- c#
using spire.doc;
using spire.doc.documents;
using spire.doc.fields;
using spire.doc.formatting;
using system.drawing;
using system.text;
namespace spiredocdemo
{
internal class program
{
static void main(string[] args)
{
// 创建一个文档对象
document document = new document();
// 加载文档
document.loadfromfile("示例1.docx");
// 遍历文档的所有节
for (int i = 0; i < document.sections.count; i )
{
// 获取当前节
section section = document.sections[i];
// 设置是否在页面的上端添加装订线为true
section.pagesetup.istopgutter = true;
// 设置装订线的宽度为100f
section.pagesetup.gutter = 100f;
// 调用方法,在左侧装订线上添加文本
addtopguttertext(section);
}
// 将修改后的文档保存为文件
document.savetofile("在页面的上端添加装订线.docx", fileformat.docx2016);
// 释放文档资源
document.dispose();
}
// 在上端装订线上添加文本的方法
static void addtopguttertext(section section)
{
// 获取节的页眉
headerfooter header = section.headersfooters.header;
// 设置文本框的宽度为页面宽度
float width = section.pagesetup.pagesize.width;
// 设置文本框的高度为40
float height = 40;
// 在页眉中添加文本框
textbox textbox = header.addparagraph().appendtextbox(width, height);
// 设置文本框无边框
textbox.format.noline = true;
// 设置文本框垂直起始位置为页边距顶部
textbox.verticalorigin = verticalorigin.topmarginarea;
// 设置文本框垂直位置
textbox.verticalposition = 140;
// 设置文本框水平对齐方式为左对齐
textbox.horizontalalignment = shapehorizontalalignment.left;
// 设置文本框水平起始位置为页边距左侧
textbox.horizontalorigin = horizontalorigin.leftmarginarea;
// 设置文本锚点为底部
textbox.format.textanchor = shapeverticalalignment.bottom;
// 设置文本环绕样式为文字前
textbox.format.textwrappingstyle = textwrappingstyle.infrontoftext;
// 设置文本环绕类型为两侧
textbox.format.textwrappingtype = textwrappingtype.both;
// 创建一个段落对象
paragraph paragraph = new paragraph(section.document);
// 设置段落水平居中
paragraph.format.horizontalalignment = horizontalalignment.center;
// 创建字体对象,宋体,大小8
font font = new font("宋体", 8);
// 创建绘图对象
graphics graphics = graphics.fromimage(new bitmap(1, 1));
string text1 = " - ";
string text2 = "装订线";
sizef size1 = graphics.measurestring(text1, font);
sizef size2 = graphics.measurestring(text2, font);
float textwidth1 = size1.width / 96 * 72;
float textwidth2 = size2.width / 96 * 72;
int count = (int)((textbox.width - textwidth2) / textwidth1);
stringbuilder stringbuilder = new stringbuilder();
for (int i = 2; i < count / 2; i )
{
stringbuilder.append(text1);
}
// 创建字符格式对象
characterformat characterformat = new characterformat(section.document);
characterformat.fontname = font.name;
characterformat.fontsize = font.size;
textrange textrange = paragraph.appendtext(stringbuilder.tostring());
textrange.applycharacterformat(characterformat);
textrange = paragraph.appendtext(text2);
textrange.applycharacterformat(characterformat);
textrange = paragraph.appendtext(stringbuilder.tostring());
textrange.applycharacterformat(characterformat);
// 将段落添加到文本框中
textbox.childobjects.add(paragraph);
}
}
}
c# 在 word 文档页面的左侧添加装订线
在页面左侧设置装订线的关键是将 section.pagesetup.istopgutter 属性设置为 false。以下是详细的步骤:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法加载一个文档。
- 使用 for 循环遍历文档的所有节集合 document.sections。
- 设置 section.pagesetup.istopgutter 为 false,让装订线在页面左侧显示。
- 使用 section.pagesetup.gutter 属性设置装订线的宽度。
- 调用自定义的addleftguttertext() 方法将文本添加到装订线区域。
- 使用document.savetofile() 方法保存到文档。
- c#
using spire.doc;
using spire.doc.documents;
using spire.doc.fields;
using spire.doc.formatting;
using system.drawing;
using system.text;
namespace spiredocdemo
{
internal class program
{
static void main(string[] args)
{
// 创建一个文档对象
document document = new document();
// 加载文档
document.loadfromfile("示例1.docx");
// 遍历文档的所有节
for (int i = 0; i < document.sections.count; i )
{
// 获取当前节
section section = document.sections[i];
// 设置是否在页面的上端添加装订线为false, 则会添加到页面的左侧
section.pagesetup.istopgutter = false;
// 设置装订线的宽度为100f
section.pagesetup.gutter = 100f;
// 调用方法,在左侧装订线上添加文本
addleftguttertext(section);
}
// 将修改后的文档保存为文件
document.savetofile("在页面的左侧添加装订线.docx", fileformat.docx2016);
// 释放文档资源
document.dispose();
}
// 在左侧装订线上添加文本的方法
static void addleftguttertext(section section)
{
// 获取节的页眉
headerfooter header = section.headersfooters.header;
// 设置文本框的宽度为40
float width = 40;
// 获取页面高度
float height = section.pagesetup.pagesize.height;
// 在页眉中添加文本框
textbox textbox = header.addparagraph().appendtextbox(width, height);
// 设置文本框无边框
textbox.format.noline = true;
// 设置文本框中文本方向为从右向左
textbox.format.layoutflowalt = textdirection.righttoleft;
// 设置文本框水平起始位置
textbox.horizontalorigin = horizontalorigin.leftmarginarea;
// 设置文本框水平位置
textbox.horizontalposition = 140;
// 设置文本框垂直对齐方式为顶部
textbox.verticalalignment = shapeverticalalignment.top;
// 设置文本框垂直起始位置为页边距顶部
textbox.verticalorigin = verticalorigin.topmarginarea;
// 设置文本锚点为顶部
textbox.format.textanchor = shapeverticalalignment.top;
// 设置文本环绕样式为文字前
textbox.format.textwrappingstyle = textwrappingstyle.infrontoftext;
// 设置文本环绕类型为两侧
textbox.format.textwrappingtype = textwrappingtype.both;
// 创建一个段落对象
paragraph paragraph = new paragraph(section.document);
// 设置段落水平居中
paragraph.format.horizontalalignment = horizontalalignment.center;
// 创建字体对象,宋体,大小8
font font = new font("宋体", 8);
// 创建绘图对象
graphics graphics = graphics.fromimage(new bitmap(1, 1));
string text1 = " - ";
string text2 = "装订线";
// 测量文本的大小
sizef size1 = graphics.measurestring(text1, font);
sizef size2 = graphics.measurestring(text2, font);
float textwidth1 = size1.width / 96 * 72;
float textwidth2 = size2.width / 96 * 72;
int count = (int)((textbox.height - textwidth2) / textwidth1);
stringbuilder stringbuilder = new stringbuilder();
for (int i = 5; i < count / 2; i )
{
stringbuilder.append(text1);
}
// 创建字符格式对象
characterformat characterformat = new characterformat(section.document);
characterformat.fontname = font.name;
characterformat.fontsize = font.size;
textrange textrange = paragraph.appendtext(stringbuilder.tostring());
textrange.applycharacterformat(characterformat);
textrange = paragraph.appendtext(text2);
textrange.applycharacterformat(characterformat);
textrange = paragraph.appendtext(stringbuilder.tostring());
textrange.applycharacterformat(characterformat);
// 将段落添加到文本框中
textbox.childobjects.add(paragraph);
}
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。