页面对象
大约 6 分钟对象模式页面对象
介绍
说明
本章节将介绍页面对象的基本用法。
特别注意
由于多个页面序列会导致总页码不准确,建议仅创建一个页面对象。
创建对象
Page page = TemplateHandler.Page.build();
基本用法
说明
创建一个灰色背景页面的文档
对象模式 java 代码
// 定义输出路径
String outputPath = "E:\\pdf\\test\\fo\\test.pdf";
// 创建文档
Document document = TemplateHandler.Document.build();
// 创建页面(空白页,灰色背景)
Page page = TemplateHandler.Page.build().setBodyBackgroundColor("gray");
// 添加页面
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:xe="http://www.x-easypdf.cn/ns"
xmlns:svg="http://www.w3.org/2000/svg">
<!--页面模板-->
<fo:layout-master-set>
<fo:simple-page-master master-name="page1" page-height="29.7cm" page-width="21cm">
<fo:region-body background-color="gray"/>
<fo:region-before/>
<fo:region-after/>
<fo:region-start/>
<fo:region-end/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="page1">
<fo:flow flow-name="xsl-region-body">
<fo:block/>
</fo:flow>
</fo:page-sequence>
</fo:root>
pdf 文档效果
添加页眉
说明
创建一个带有页眉的文档
特别注意
添加页眉时,需要将页面主体上边距设置大于等于页眉高度,否则将导致内容重叠。
对象模式 java 代码
// 定义输出路径
String outputPath = "E:\\pdf\\test\\fo\\test.pdf";
// 创建文档
Document document = TemplateHandler.Document.build();
// 创建页面(空白页)
Page page = TemplateHandler.Page.build();
// 创建页眉文本
Text headerText = TemplateHandler.Text.build().setText("页眉").setFontFamily("微软雅黑");
// 创建页面主体文本
Text bodyText = TemplateHandler.Text.build().setText("页面内容").setFontFamily("微软雅黑");
// 设置页眉高度并添加页眉文本
page.setHeaderHeight("30pt").addHeaderComponent(headerText);
// 设置页面主体上边距并添加页面主体文本
page.setBodyMarginTop("30pt").addBodyComponent(bodyText);
// 添加页面
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:xe="http://www.x-easypdf.cn/ns"
xmlns:svg="http://www.w3.org/2000/svg">
<!--页面模板-->
<fo:layout-master-set>
<fo:simple-page-master master-name="page1" page-height="29.7cm" page-width="21cm">
<fo:region-body margin-top="30pt"/>
<fo:region-before extent="30pt"/>
<fo:region-after/>
<fo:region-start/>
<fo:region-end/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="page1">
<fo:static-content flow-name="xsl-region-before">
<fo:block>
<fo:inline font-family="微软雅黑">页眉</fo:inline>
</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:inline font-family="微软雅黑">页面内容</fo:inline>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
pdf 文档效果
添加页脚
说明
创建一个带有页脚的文档
特别注意
添加页脚时,需要将页面主体下边距设置大于等于页脚高度,否则将导致内容重叠。
对象模式 java 代码
// 定义输出路径
String outputPath = "E:\\pdf\\test\\fo\\test.pdf";
// 创建文档
Document document = TemplateHandler.Document.build();
// 创建页面
Page page = TemplateHandler.Page.build();
// 创建页眉文本
Text footerText = TemplateHandler.Text.build().setText("页脚").setFontFamily("微软雅黑");
// 创建页面主体文本
Text bodyText = TemplateHandler.Text.build().setText("页面内容").setFontFamily("微软雅黑");
// 设置页脚高度并添加页脚文本
page.setFooterHeight("30pt").addFooterComponent(footerText);
// 设置页面主体下边距并添加页面主体文本
page.setBodyMarginBottom("30pt").addBodyComponent(bodyText);
// 添加页面
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:xe="http://www.x-easypdf.cn/ns"
xmlns:svg="http://www.w3.org/2000/svg">
<!--页面模板-->
<fo:layout-master-set>
<fo:simple-page-master master-name="page1" page-height="29.7cm" page-width="21cm">
<fo:region-body margin-bottom="30pt"/>
<fo:region-before/>
<fo:region-after extent="30pt"/>
<fo:region-start/>
<fo:region-end/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="page1">
<fo:static-content flow-name="xsl-region-after">
<fo:block>
<fo:inline font-family="微软雅黑">页脚</fo:inline>
</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:inline font-family="微软雅黑">页面内容</fo:inline>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
pdf 文档效果
可配置项
页面设置
配置项
- setWidth:设置页面宽度
- setHeight:设置页面高度
- setMarginXXX:设置边距
- setPaddingXXX:设置填充
页面主体设置
配置项
- setBodyMarginXXX:设置页面主体边距
- setBodyWatermark:设置主体水印
- setBodyBackground:设置主体背景
- setBodyBackgroundImage:设置主体背景图片
- setBodyBackgroundImageWidth:设置主体背景图片宽度
- setBodyBackgroundImageHeight:设置主体背景图片高度
- setBodyBackgroundAttachment:设置主体背景附件
- setBodyBackgroundColor:设置主体背景颜色
- setBodyBackgroundPosition:设置主体背景图片定位
- setBodyBackgroundHorizontalPosition:设置主体背景图片水平定位
- setBodyBackgroundVerticalPosition:设置主体背景图片垂直定位
- setBodyBackgroundRepeat:设置主体背景图片重复
页眉设置
配置项
- setHeaderHeight:设置页眉高度
- setHeaderWatermark:设置页眉水印
- setHeaderBackground:设置页眉背景
- setHeaderBackgroundImage:设置页眉背景图片
- setHeaderBackgroundAttachment:设置页眉背景附件
- setHeaderBackgroundColor:设置页眉背景颜色
- setHeaderBackgroundPosition:设置页眉背景图片定位
- setHeaderBackgroundHorizontalPosition:设置页眉背景图片水平定位
- setHeaderBackgroundVerticalPosition:设置页眉背景图片垂直定位
- setHeaderBackgroundRepeat:设置页眉背景图片重复
页脚设置
配置项
- setFooterHeight: 设置页脚高度
- setFooterWatermark:设置页脚水印
- setFooterBackground:设置页脚背景
- setFooterBackgroundImage:设置页脚背景图片
- setFooterBackgroundAttachment:设置页脚背景附件
- setFooterBackgroundColor:设置页脚背景颜色
- setFooterBackgroundPosition:设置页脚背景图片定位
- setFooterBackgroundHorizontalPosition:设置页脚背景图片水平定位
- setFooterBackgroundVerticalPosition:设置页脚背景图片垂直定位
- setFooterBackgroundRepeat:设置页脚背景图片重复
字体设置
配置项
- setFontFamily:设置字体名称
- setFontStyle:设置字体样式
- setFontWeight:设置字体重量
- setFontSize:设置字体大小
- setFontSizeAdjust:设置字体大小调整
- setFontColor:设置字体颜色
组件设置
配置项
- addBodyComponent:添加页面主体组件
- addHeaderComponent:添加页眉组件
- addFooterComponent:添加页脚组件
其他设置
配置项
- setId:设置id
- setStartWatermark:设置左侧栏水印
- setStartBackground:设置左侧栏背景
- setStartBackgroundImage:设置左侧栏背景图片
- setStartBackgroundImageWidth:设置左侧栏背景图片宽度
- setStartBackgroundImageHeight:设置左侧栏背景图片高度
- setStartBackgroundAttachment:设置左侧栏背景附件
- setStartBackgroundColor:设置左侧栏背景颜色
- setStartBackgroundPosition:设置左侧栏背景图片定位
- setStartBackgroundHorizontalPosition:设置左侧栏背景图片水平定位
- setStartBackgroundVerticalPosition:设置左侧栏背景图片垂直定位
- setStartBackgroundRepeat:设置左侧栏背景图片重复
- setEndWatermark:设置右侧栏水印
- setEndBackground:设置右侧栏背景
- setEndBackgroundImage:设置右侧栏背景图片
- setEndBackgroundImageWidth:设置右侧栏背景图片宽度
- setEndBackgroundImageHeight:设置右侧栏背景图片高度
- setEndBackgroundAttachment:设置右侧栏背景附件
- setEndBackgroundColor:设置右侧栏背景颜色
- setEndBackgroundPosition:设置右侧栏背景图片定位
- setEndBackgroundHorizontalPosition:设置右侧栏背景图片水平定位
- setEndBackgroundVerticalPosition:设置右侧栏背景图片垂直定位
- setEndBackgroundRepeat:设置右侧栏背景图片重复
可用方法
可用方法
- changeLandscape:切换横向