在 word 文档页面上添加装订线可以帮助用户更好地进行页面布局和设计,特别是在准备打印或制作书籍等需要装订的文档时。装订线可以指示页面上的装订位置,有助于用户在设计时留出合适的空白区域,避免文字或图像被裁切。通过设置装订线,用户可以更好地控制文档的外观和版式,确保最终输出符合预期的装订要求,提升文档的专业性和可读性。本文将介绍如何使用 spire.doc for java 在 java 项目中给 word 文档页面添加装订线。
安装 spire.doc for java
首先,您需要在 java 程序中添加 spire.doc.jar 文件作为依赖项。您可以从此链接下载 jar 文件;如果您使用 maven,则可以通过在 pom.xml 文件中添加以下代码导入 jar 文件。
com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.doc
12.4.14
java 在 word 文档页面的上端添加装订线
在 word 文档中,要设置装订线位于页面上端的关键设置是 section.getpagesetup().istopgutter(true)。默认情况下,装订线区域是显示为空白没有内容的。此示例还包括了如何向装订线区域添加文本的步骤,可以在装订线周围自定义内容。以下是详细的步骤:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法加载一个文档。
- 使用 for 循环遍历文档的所有节集合 document.getsections()。
- 设置 section.getpagesetup().istopgutter(true),让装订线在页面上端显示。
- 使用 section.getpagesetup().setgutter() 设置装订线的宽度。
- 调用自定义的 addtopguttertext() 方法将文本添加到装订线区域。
- 使用 document.savetofile() 方法保存到文档。
- java
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
import com.spire.doc.formatting.characterformat;
import java.awt.*;
public class addtopgutter {
public static void main(string[] args) {
// 创建一个文档对象
document document = new document();
// 加载文档
document.loadfromfile("示例1.docx");
// 遍历文档的所有节
for (int i = 0; i < document.getsections().getcount(); i ) {
// 获取当前节
section section = document.getsections().get(i);
// 设置是否在页面的上端添加装订线为true
section.getpagesetup().istopgutter(true);
// 设置装订线的宽度为100f
section.getpagesetup().setgutter(100f);
// 调用方法,在上端装订线上添加文本
addtopguttertext(section);
}
// 将修改后的文档保存为文件
document.savetofile("在页面的上端添加装订线.docx", fileformat.docx_2016);
// 释放文档资源
document.dispose();
}
// 在上端装订线上添加文本的方法
static void addtopguttertext(section section)
{
// 获取节的页眉
headerfooter header = section.getheadersfooters().getheader();
// 设置文本框的宽度为页面宽度
float width = (float)section.getpagesetup().getpagesize().getwidth();
// 设置文本框的高度为40
float height = 40;
// 在页眉中添加文本框
textbox textbox = header.addparagraph().appendtextbox(width, height);
// 设置文本框无边框
textbox.getformat().setnoline(true);
// 设置文本框垂直起始位置为页边距顶部
textbox.setverticalorigin(verticalorigin.top_margin_area);
// 设置文本框垂直位置
textbox.setverticalposition(140);
// 设置文本框水平对齐方式为左对齐
textbox.sethorizontalalignment(shapehorizontalalignment.left);
// 设置文本框水平起始位置为页边距左侧
textbox.sethorizontalorigin(horizontalorigin.left_margin_area);
// 设置文本锚点为底部
textbox.getformat().settextanchor(shapeverticalalignment.bottom);
// 设置文本环绕样式为文字前
textbox.getformat().settextwrappingstyle(textwrappingstyle.in_front_of_text);
// 设置文本环绕类型为两侧
textbox.getformat().settextwrappingtype(textwrappingtype.both);
// 创建一个段落对象
paragraph paragraph = new paragraph(section.getdocument());
// 设置段落水平居中
paragraph.getformat().sethorizontalalignment(horizontalalignment.center);
// 创建一个字体对象
font font = new font("宋体", font.plain, 8);
graphics graphics = new java.awt.image.bufferedimage(1, 1, java.awt.image.bufferedimage.type_int_argb).getgraphics();
graphics.setfont(font);
fontmetrics fontmetrics = graphics.getfontmetrics();
string text1=" - ";
string text2="装订线";
int textwidth1 = fontmetrics.stringwidth(text1);
int textwidth2 = fontmetrics.stringwidth(text2);
int count = (int)((textbox.getwidth() -textwidth2)/textwidth1);
stringbuilder stringbuilder=new stringbuilder();
for (int i = 1; i < count/2; i ) {
stringbuilder.append(text1);
}
//创建一个字符格式对象
characterformat characterformat =new characterformat(section.getdocument());
characterformat.setfontname(font.getfontname());
characterformat.setfontsize(font.getsize());
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.getchildobjects().add(paragraph);
}
}
java 在 word 文档页面的左侧添加装订线
要在页面左侧设置装订线,关键在于将 section.getpagesetup().istopgutter() 设为 false。以下是详细的步骤:
- 创建一个 document 对象。
- 使用 document.loadfromfile() 方法加载一个文档。
- 使用 for 循环遍历文档的所有节集合 document.getsections()。
- 设置 section.getpagesetup().istopgutter(false),让装订线在页面左侧显示。
- 使用 section.getpagesetup().setgutter() 设置装订线的宽度。
- 调用自定义的 addleftguttertext() 方法将文本添加到装订线区域。
- 使用 document.savetofile() 方法保存到文档。
- java
import com.spire.doc.*;
import com.spire.doc.documents.*;
import com.spire.doc.fields.*;
import com.spire.doc.formatting.characterformat;
import java.awt.*;
public class addleftgutter {
public static void main(string[] args) {
// 创建一个文档对象
document document = new document();
// 加载文档
document.loadfromfile("示例1.docx");
// 遍历文档的所有节
for (int i = 0; i < document.getsections().getcount(); i ) {
// 获取当前节
section section = document.getsections().get(i);
// 设置是否在页面的上端添加装订线为false, 则会添加到页面的左侧
section.getpagesetup().istopgutter(false);
// 设置装订线的宽度为100f
section.getpagesetup().setgutter(100f);
// 调用方法,在左侧装订线上添加文本
addleftguttertext(section);
}
// 将修改后的文档保存为文件
document.savetofile("在页面的左侧添加装订线.docx", fileformat.docx_2016);
// 释放文档资源
document.dispose();
}
// 在左侧装订线上添加文本的方法
static void addleftguttertext(section section) {
// 获取节的页眉
headerfooter header = section.getheadersfooters().getheader();
// 设置文本框的宽度为40
float width = 40;
// 获取页面高度
float height = (float)section.getpagesetup().getpagesize().getheight();
// 在页眉中添加文本框
textbox textbox = header.addparagraph().appendtextbox(width, height);
// 设置文本框无边框
textbox.getformat().setnoline(true);
// 设置文本框中文本方向为从右向左
textbox.getformat().setlayoutflowalt(textdirection.right_to_left);
// 设置文本框水平起始位置
textbox.sethorizontalorigin(horizontalorigin.left_margin_area);
// 设置文本框水平位置
textbox.sethorizontalposition(140);
// 设置文本框垂直对齐方式为顶部
textbox.setverticalalignment(shapeverticalalignment.top);
// 设置文本框垂直起始位置为页边距顶部
textbox.setverticalorigin(verticalorigin.top_margin_area);
// 设置文本锚点为顶部
textbox.getformat().settextanchor(shapeverticalalignment.top);
// 设置文本环绕样式为文字前
textbox.getformat().settextwrappingstyle(textwrappingstyle.in_front_of_text);
// 设置文本环绕类型为两侧
textbox.getformat().settextwrappingtype(textwrappingtype.both);
// 创建一个段落对象
paragraph paragraph = new paragraph(section.getdocument());
// 设置段落水平居中
paragraph.getformat().sethorizontalalignment(horizontalalignment.center);
// 创建字体对象,宋体,大小8
font font = new font("宋体", font.plain, 8);
graphics graphics = new java.awt.image.bufferedimage(1, 1, java.awt.image.bufferedimage.type_int_argb).getgraphics();
graphics.setfont(font);
fontmetrics fontmetrics = graphics.getfontmetrics();
string text1=" - ";
string text2="装订线";
int textwidth1 = fontmetrics.stringwidth(text1);
int textwidth2 = fontmetrics.stringwidth(text2);
int count = (int)((textbox.getheight() -textwidth2)/textwidth1);
stringbuilder stringbuilder=new stringbuilder();
for (int i = 1; i < count/2; i ) {
stringbuilder.append(text1);
}
// 创建字符格式对象
characterformat characterformat =new characterformat(section.getdocument());
characterformat.setfontname(font.getfontname());
characterformat.setfontsize(font.getsize());
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.getchildobjects().add(paragraph);
}
}
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。