书签对象
大约 2 分钟对象模式书签对象
介绍
说明
本章节将介绍书签对象的基本用法。
特别注意
书签对象需指定内部地址,即其他组件的 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 文档效果
可配置项
配置项
- setInitialCapacity:设置子书签初始化容量
- setInternalDestination:设置内部地址
- setTitle:设置标题
- setFontFamily:设置字体名称
- setFontStyle:设置字体样式
- setFontWeight:设置字体重量
- setFontSize:设置字体大小
- setFontSizeAdjust:设置字体大小调整
- setFontColor:设置字体颜色
- addChild:添加子书签