跳至主要內容

页面对象

xsx大约 6 分钟fop模块对象模式页面对象

介绍

说明

本章节将介绍页面对象的基本用法。

特别注意

由于多个页面序列会导致总页码不准确,建议仅创建一个页面对象。

创建对象

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 文档效果

生成的pdf文档
生成的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 文档效果

生成的pdf文档
生成的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 文档效果

生成的pdf文档
生成的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:切换横向