页码对象
大约 2 分钟对象模式页码对象
介绍
说明
本章节将介绍页码对象的基本用法。
特别注意
使用总页码时,需在页面对象与总页码对象中设置相同的页面id,否则将无法准确生成总页码。
创建对象
// 当前页码
CurrentPageNumber currentPageNumber = TemplateHandler.CurrentPageNumber.build();
// 总页码
TotalPageNumber totalPageNumber = TemplateHandler.TotalPageNumber.build();
基本用法
说明
创建一个包含页码的文档
对象模式 java 代码
// 定义输出路径
String outputPath = "E:\\pdf\\test\\fo\\test.pdf";
// 定义页面id
String pageId = "page";
// 创建文档
Document document = TemplateHandler.Document.build();
// 创建页面
Page page = TemplateHandler.Page.build().setFontFamily("微软雅黑");
// 创建当前页码
CurrentPageNumber currentPageNumber = TemplateHandler.CurrentPageNumber.build();
// 创建总页码
TotalPageNumber totalPageNumber = TemplateHandler.TotalPageNumber.build().setPageId(pageId);
// 创建普通文本
Text text1 = TemplateHandler.Text.build().setText("第一页内容");
// 创建普通文本并分页
Text text2 = TemplateHandler.Text.build().setText("第二页内容").setBreakBefore("page");
// 创建容器
BlockContainer container = TemplateHandler.BlockContainer.build();
// 创建当前页码文本
Text currentText = TemplateHandler.Text.build().setText("当前第: ");
// 创建总页码文本
Text totalText = TemplateHandler.Text.build().setText(",共: ");
// 添加容器内组件
container.addComponent(currentText, currentPageNumber, totalText, totalPageNumber);
// 设置id
page.setId(pageId);
// 设置页眉高度并添加页眉组件
page.setHeaderHeight("20pt").addHeaderComponent(container);
// 设置页面主体上边距并添加页面主体组件
page.setBodyMarginTop("20pt").addBodyComponent(text1, text2);
// 添加页面
document.addPage(page);
// 转换pdf
document.transform(outputPath);
xsl-fo 模板
说明
对象模式生成的对应 xsl-fo 模板
<?xml version="1.0" encoding="UTF-8"?><!--根标签-->
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:fox="http://xmlgraphics.apache.org/fop/extensions"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xe="http://www.x-easypdf.cn/ns">
<!--页面模板-->
<fo:layout-master-set>
<fo:simple-page-master master-name="page1" page-height="29.7cm" page-width="21cm">
<fo:region-body margin-top="20pt"/>
<fo:region-before extent="20pt"/>
<fo:region-after/>
<fo:region-start/>
<fo:region-end/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence font-family="微软雅黑" id="page" master-reference="page1">
<fo:static-content flow-name="xsl-region-before">
<fo:block-container>
<fo:block>
<fo:inline>当前第:</fo:inline>
<fo:page-number/>
<fo:inline>,共:</fo:inline>
<fo:page-number-citation-last ref-id="page"/>
</fo:block>
</fo:block-container>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:inline>第一页内容</fo:inline>
</fo:block>
<fo:block break-before="page">
<fo:inline>第二页内容</fo:inline>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
pdf 文档效果
可配置项
配置项
- setPageId:设置页面id