跳至主要內容

书签对象

xsx大约 2 分钟fop模块对象模式书签对象

介绍

说明

本章节将介绍书签对象的基本用法。

特别注意

书签对象需指定内部地址,即其他组件的 id 值,否则将抛出异常信息。

创建对象

Bookmark bookmark = TemplateHandler.Bookmark.build();

基本用法

说明

创建一个带有书签的文档

对象模式 java 代码

// 定义输出路径
String outputPath = "E:\\pdf\\test\\fo\\test.pdf";
// 创建文档
Document document = TemplateHandler.Document.build();
// 创建页面
Page page = TemplateHandler.Page.build();
// 创建书签
Bookmark bookmark = TemplateHandler.Bookmark.build()
        // 设置标题
        .setTitle("目录")
        // 设置内部地址(对应组件id)
        .setInternalDestination("title");
// 创建文本
Text title = TemplateHandler.Text.build()
        // 设置id
        .setId("title")
        // 设置文本
        .setText("贵阳市简介")
        // 设置字体
        .setFontFamily("微软雅黑")
        // 设置字体大小
        .setFontSize("20pt");
// 创建子书签
Bookmark childBookmark = TemplateHandler.Bookmark.build()
        // 设置标题
        .setTitle("贵阳市行政区划")
        // 设置内部地址(对应组件id)
        .setInternalDestination("text");
// 添加子书签
bookmark.addChild(childBookmark);
// 创建文本
Text text = TemplateHandler.Text.build()
        // 设置id
        .setId("text")
        // 设置文本
        .setText("贵阳市行政区划")
        // 设置字体
        .setFontFamily("微软雅黑")
        // 设置字体大小
        .setFontSize("16pt");
// 添加文本
page.addBodyComponent(title, text);
// 添加页面
document.addPage(page);
// 添加书签
document.addBookmark(bookmark);
// 转换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/>
            <fo:region-before/>
            <fo:region-after/>
            <fo:region-start/>
            <fo:region-end/>
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:bookmark-tree>
        <fo:bookmark internal-destination="title">
            <fo:bookmark-title>目录</fo:bookmark-title>
            <fo:bookmark internal-destination="text">
                <fo:bookmark-title>贵阳市行政区划</fo:bookmark-title>
            </fo:bookmark>
        </fo:bookmark>
    </fo:bookmark-tree>
    <fo:page-sequence master-reference="page1">
        <fo:flow flow-name="xsl-region-body">
            <fo:block id="title">
                <fo:inline font-family="微软雅黑" font-size="20pt">贵阳市简介</fo:inline>
            </fo:block>
            <fo:block id="text">
                <fo:inline font-family="微软雅黑" font-size="16pt">贵阳市行政区划</fo:inline>
            </fo:block>
        </fo:flow>
    </fo:page-sequence>
</fo:root>

pdf 文档效果

生成的pdf文档
生成的pdf文档

可配置项

配置项

  • setInitialCapacity:设置子书签初始化容量
  • setInternalDestination:设置内部地址
  • setTitle:设置标题
  • setFontFamily:设置字体名称
  • setFontStyle:设置字体样式
  • setFontWeight:设置字体重量
  • setFontSize:设置字体大小
  • setFontSizeAdjust:设置字体大小调整
  • setFontColor:设置字体颜色
  • addChild:添加子书签