跳至主要內容

文本对象

xsx大约 5 分钟fop模块对象模式文本对象

介绍

说明

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

提示

普通文本与扩展文本的区别:

  1. 普通文本仅包含文本的基本设置,例如:字体颜色、字体大小等。
  2. 扩展文本为普通文本的集合,当段落中包含特殊文本时,可使用该对象,例如:某几个字为红色。

特别注意

  1. 如果需要显示中文文本,需将字体名称设置为支持中文的字体名称,如“微软雅黑”。
  2. 如果需要显示文本粗细,需要对应字体的支持。

创建对象

// 普通文本
Text text = TemplateHandler.Text.build();
// 扩展文本
TextExtend textExtend = TemplateHandler.TextExtend.build();

基本用法

说明

创建一个普通文本的文档

对象模式 java 代码

// 定义输出路径
String outputPath = "E:\\pdf\\test\\fo\\test.pdf";
// 创建文档
Document document = TemplateHandler.Document.build();
// 创建页面
Page page = TemplateHandler.Page.build();
// 创建普通文本
Text text = TemplateHandler.Text.build().setText("hello world");
// 添加文本
page.addBodyComponent(text);
// 添加页面
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/>
            <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:inline>hello world</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().setFontFamily("微软雅黑");
// 创建title
Text title = TemplateHandler.Text.build().setText("贵阳").setFontSize("30pt").setHorizontalStyle("center");
// 创建文本1
Text text1 = TemplateHandler.Text.build().setText("贵阳,简称“筑”,别称林城、筑城,贵州省辖地级市、省会、Ⅰ型大城市,中国");
// 创建文本2,特殊配置
Text text2 = TemplateHandler.Text.build().setText("西南地区").setFontColor("blue").setUnderLineColor("blue").setLinkExternalDestination("https://baike.baidu.com/item/%E8%A5%BF%E5%8D%97%E5%9C%B0%E5%8C%BA/4465918?fromModule=lemma_inlink").enableLink().enableUnderLine();
// 创建文本3
Text text3 = TemplateHandler.Text.build().setText("重要的中心城市之一、重要的区域创新中心和全国重要的生态休闲度假旅游城市。");
// 创建扩展文本
TextExtend textExtend = TemplateHandler.TextExtend.build().addText(text1, text2, text3).setMarginTop("12pt").setTextIndent("24pt");
// 添加文本
page.addBodyComponent(title, textExtend);
// 添加页面
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/>
            <fo:region-before/>
            <fo:region-after/>
            <fo:region-start/>
            <fo:region-end/>
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence font-family="微软雅黑" master-reference="page1">
        <fo:flow flow-name="xsl-region-body">
            <fo:block text-align="center">
                <fo:inline font-size="30pt">贵阳</fo:inline>
            </fo:block>
            <fo:block margin-top="12pt" text-indent="24pt">
                <fo:inline>贵阳,简称“筑”,别称林城、筑城,贵州省辖地级市、省会、Ⅰ型大城市,中国</fo:inline>
                <fo:basic-link
                        external-destination="https://baike.baidu.com/item/%E8%A5%BF%E5%8D%97%E5%9C%B0%E5%8C%BA/4465918?fromModule=lemma_inlink">
                    <fo:inline border-bottom="1pt solid blue" color="blue">西南地区</fo:inline>
                </fo:basic-link>
                <fo:inline>重要的中心城市之一、重要的区域创新中心和全国重要的生态休闲度假旅游城市。</fo:inline>
            </fo:block>
        </fo:flow>
    </fo:page-sequence>
</fo:root>

pdf 文档效果

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

可配置项

普通文本

配置项

  • setMarginXXX:设置边距
  • setPaddingXXX:设置填充
  • setId:设置id
  • setLanguage:设置文本语言
  • setText:设置文本
  • setLanguage:设置文本语言
  • setLeading:设置行间距
  • setLetterSpacing:设置字符间距
  • setWordSpacing:设置单词间距
  • setWhiteSpace:设置空白空间
  • setWhiteSpaceCollapse:设置空白空间折叠
  • setTextIndent:设置文本缩进
  • setStartIndent:设置段前缩进
  • setEndIndent:设置段后缩进
  • setSpaceBefore:设置段前空白
  • setSpaceAfter:设置段后空白
  • setFontFamily:设置字体名称
  • setFontStyle:设置字体样式
  • setFontSize:设置字体大小
  • setFontSizeAdjust:设置字体大小调整
  • setFontColor:设置字体颜色
  • setHorizontalStyle:设置文本水平样式
  • setVerticalStyle:设置垂直对齐(用于角标设置)
  • setLinkInternalDestination:设置内部地址
  • setLinkExternalDestination:设置外部地址
  • setDeleteLineColor:设置删除线颜色
  • setUnderLineColor:设置下划线颜色
  • setUnderLineWidth:设置下划线宽度
  • setBreakBefore:设置分页符-前
  • setBreakAfter:设置分页符-后
  • setBackgroundColor:设置背景颜色
  • enableKeepTogether:开启分页时保持
  • enableKeepWithPrevious:开启分页时与上一个元素保持
  • enableKeepWithNext:开启分页时与下一个元素保持
  • enableLink:开启超链接
  • enableDeleteLine:开启删除线
  • enableUnderLine:开启下划线

扩展文本

配置项

  • setInitialCapacity:设置初始化容量
  • setMarginXXX:设置边距
  • setPaddingXXX:设置填充
  • setId:设置id
  • setLanguage:设置文本语言
  • setText:设置文本
  • setLanguage:设置文本语言
  • setLeading:设置行间距
  • setLetterSpacing:设置字符间距
  • setWordSpacing:设置单词间距
  • setWhiteSpace:设置空白空间
  • setWhiteSpaceCollapse:设置空白空间折叠
  • setTextIndent:设置文本缩进
  • setStartIndent:设置段前缩进
  • setEndIndent:设置段后缩进
  • setSpaceBefore:设置段前空白
  • setSpaceAfter:设置段后空白
  • setFontFamily:设置字体名称
  • setFontStyle:设置字体样式
  • setFontSize:设置字体大小
  • setFontSizeAdjust:设置字体大小调整
  • setFontColor:设置字体颜色
  • setHorizontalStyle:设置文本水平样式
  • setVerticalStyle:设置垂直对齐(用于角标设置)
  • setLinkInternalDestination:设置内部地址
  • setLinkExternalDestination:设置外部地址
  • setDeleteLineColor:设置删除线颜色
  • setUnderLineColor:设置下划线颜色
  • setUnderLineWidth:设置下划线宽度
  • setBreakBefore:设置分页符-前
  • setBreakAfter:设置分页符-后
  • setBackgroundColor:设置背景颜色
  • enableKeepTogether:开启分页时保持
  • enableKeepWithPrevious:开启分页时与上一个元素保持
  • enableKeepWithNext:开启分页时与下一个元素保持
  • addText:添加文本组件