首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在xsl-fo中,如何在除最后一列之外的每一页的最后一列添加固定文本?

在xsl-fo中,可以通过使用表格布局和条件格式化来实现在除最后一列之外的每一页的最后一列添加固定文本。

首先,需要创建一个表格,并定义列数和行数。然后,在表格中添加需要显示的内容。

接下来,使用条件格式化来确定在哪些列上添加固定文本。条件格式化可以通过使用xsl:when和xsl:otherwise语句来实现。

例如,假设我们有一个包含3列的表格,我们想在第1列和第2列的每一页的最后一列添加固定文本。我们可以使用以下代码:

代码语言:txt
复制
<fo:table>
  <fo:table-column column-number="1"/>
  <fo:table-column column-number="2"/>
  <fo:table-column column-number="3"/>
  
  <!-- 添加表头 -->
  <fo:table-header>
    <fo:table-row>
      <fo:table-cell>Column 1</fo:table-cell>
      <fo:table-cell>Column 2</fo:table-cell>
      <fo:table-cell>Column 3</fo:table-cell>
    </fo:table-row>
  </fo:table-header>
  
  <!-- 添加表体 -->
  <fo:table-body>
    <fo:table-row>
      <fo:table-cell>Content 1</fo:table-cell>
      <fo:table-cell>Content 2</fo:table-cell>
      <fo:table-cell>Content 3</fo:table-cell>
    </fo:table-row>
    <!-- 添加更多行... -->
  </fo:table-body>
  
  <!-- 添加条件格式化 -->
  <xsl:template match="fo:table-cell">
    <xsl:choose>
      <!-- 在第1列的每一页的最后一列添加固定文本 -->
      <xsl:when test="position() = 1 and not(position() = last())">
        <fo:table-cell>
          <xsl:apply-templates/>
          <fo:block>Fixed Text 1</fo:block>
        </fo:table-cell>
      </xsl:when>
      <!-- 在第2列的每一页的最后一列添加固定文本 -->
      <xsl:when test="position() = 2 and not(position() = last())">
        <fo:table-cell>
          <xsl:apply-templates/>
          <fo:block>Fixed Text 2</fo:block>
        </fo:table-cell>
      </xsl:when>
      <!-- 其他情况保持原样 -->
      <xsl:otherwise>
        <xsl:copy-of select="."/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>
</fo:table>

在上述代码中,我们使用了xsl:choose和xsl:when语句来判断当前列的位置,并根据条件在最后一列添加固定文本。注意,我们使用了position()函数来获取当前列的位置,last()函数来获取最后一列的位置。

这样,就可以在除最后一列之外的每一页的最后一列添加固定文本。

关于xsl-fo的更多信息和详细用法,请参考腾讯云的XSL-FO产品介绍页面:XSL-FO产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

独家 | 手把手教你如何用Python从PDF文件中导出数据(附链接)

你将很大可能地需要使用Google和Stack Overflow两个查询工具来弄清楚如何在这篇贴子涵盖内容之外有效地使用PDFMiner。 提取所有文本 有时你会想要提取PDF文件所有文本。...最后,我们创建一个PDF解释器对象,携带着我们资源管理器和转换器对象,来提取文本最后一步是打开PDF文件并且循环遍历一页。...那么,让我们改写代码以便它提取文本呈分页格式。这将允许我们检查文本时,一次一页地进行: ? 在这个例子,我们创建了一个生成器函数按页生成(yield)了文本。...不管怎样,一旦文件被分析,我们只要打印出一页文本即可。 我非常喜欢slate,它用起来更简单。不幸是,这个包也几乎没有什么相关文档。浏览过它源码之后,它看起来只支持纯文本提取。...Pages键对应一个空表单。接着,我们循环遍历PDF一页并且提取一页前100个字符。然后创建一个字典变量以页号作为键100个字符作为值并将其添加到顶层页表单

5.4K30

Excel表格中最经典36个小技巧,全在这儿了

技巧3、打印标题行 如果想在打印时一页都显示标题,页面布局 - 打印标题 - 首端标题行:选取要显示行 ?...技巧10、单元格输入00001 如果在单元格输入以0开头数字,可以输入前把格式设置成文本格式,如果想固定位数(5位)不足用0补齐,可以: 选取该区域,右键 - 设置单元格格式 - 数字 - 自定义...2 引用单元格内容法。如果销售员单元格B4:B8区域里,“来源”后输入或点框最后折叠按钮选这个区域。如下图所示。 ? 进行如上设置后,我们就可以销售员一列看到下拉菜单了。...你试着黄色之外区域修改或插入行/列,就会弹出如下图所示提示。 ? 技巧29、文字跨列居中显示 如果你不想合并单元格,又想让文字跨列显示。...技巧34、快速调整最适合列宽 选取多行或多行,双击其中一列边线,你会发现所有行或列调整为最适合列宽/行高。 ? 技巧35、快速复制公式 双击单元格右下角,你会发现公式已复制到表格最后面。 ?

7.6K21

Linux三剑客命令之Grep

-A #除了显示符合范本样式那一行之外,并显示该行之后内容 -b #显示符合范本样式那一行之外,并显示该行之前内容 -B #除了显示符合样式那一行之外,并显示该行之前内容 -c...#计算符合范本样式列数 -C #除了显示符合范本样式一列之外,并显示该列之前后内容 -d #当指定要查找是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作 -e #...,格式为一列范本样式 -F #将范本样式视为固定字符串列表 -G #将范本样式视为普通表示法来使用 -h #显示符合范本样式一列之前,不标示该列所属文件名称 -H #显示符合范本样式一列之前...: grep "file" file_1 file_2 file_3 2、输出之外所有行 -v 选项: grep -v "file" file_name 3、标记匹配颜色 --color=auto...... 10、grep递归搜索文件 多级目录文本进行递归搜索: grep "text" .

75410

如何使用Selenium Python爬取多个分页动态表格并进行数据整合和分析

正文 Selenium Python简介 Selenium是一个开源自动化测试框架,它可以模拟用户浏览器操作,点击、输入、滚动等,从而实现对网页自动化测试或爬取。...我们需要用Selenium Python提供各种操作方法,click、send_keys等,来模拟用户表格翻页,并用BeautifulSoup等库来解析表格数据,并存储到列表或字典。...爬取过程,可能会遇到各种异常情况和错误,网络中断、页面跳转、元素丢失等,我们需要用Selenium Python提供异常处理方法来捕获和处理这些异常,并设置重试机制和日志记录。...rows = soup.find_all('tr') # 遍历一行数据 for row in rows: # 提取一行数据一列数据...len(cols) > 0: # 获取一列数据文本 name = cols[0].text position

1.1K40

每天学一个 Linux 命令(5):grep

-b #显示符合范本样式那一行之外,并显示该行之前内容 -B #除了显示符合样式那一行之外,并显示该行之前内容 -c #计算符合范本样式列数 -C #除了显示符合范本样式一列之外...,意味着使用能使用扩展正则表达式 -f #指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件文件内容,格式为一列范本样式 -F #将范本样式视为固定字符串列表 -G #将范本样式视为普通表示法来使用...-h #显示符合范本样式一列之前,不标示该列所属文件名称 -H #显示符合范本样式一列之前,标示该列文件名称 -i #忽略字符大小写差别 -l #列出文件内容符合指定范本样式文件名称...正则表达式 ^ #匹配以XX开头行 $ #匹配以XX结尾行 常用实例 1、多个文件查找: grep "file" file_1 file_2 file_3 2、输出之外所有行 -..." -n file_1 file_2 9、搜索多个文件并查找匹配文本在哪些文件: grep -l "text" file1 file2 file3... 10、grep递归搜索文件 多级目录文本进行递归搜索

80210

VI基本工作模式

0 :光标移动至行首 h :光标左移一格 l :光标右移一格 j :光标下移一行 k :光标上移一行 $+A :将光标移动到该行最后 PageDn :向下移动一页...PageUp :向上移动一页 d+方向键 :删除文字 dd :删除整行 pp :整行复制 r :修改光标所在字符 S :删除光标所在列,并进入输入模式...0x03:文本输入模式(Input Mode) 指令模式下(Command Mode)按a/A键、i/I键、o/O键进入文本模式,文本输入模式命令及其含义如下所示。...a :光标后开始插入 A :在行尾开始插入 i :从光标所在位置前面开始插入 I :从光标所在列第一个非空白字元前面开始插入 o :光标所在列下新增一列并进入输入模式...例如在一行前都插入"() ": 1)光标定位到要操作地方 2)CTRL+v 进入“可视 块”模式,选取这一列操作多少行 3)SHIFT+i或者I(大写字母i) 输入要插入内容 4)ESC 按两次,

83220

MySQL数据库规约.

3、 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度即可。...order by 最后字段是组合索引一部分,并且放在索引组合顺序最后,避免出现 file_sort 情况,影响查询性能。 正例: where a=? and b=?...说明: 如果一本书需要知道第 11 章是什么标题,会翻开第 11 章对应一页吗?目录浏览一下就好,这个目录就是起到覆盖索引作用。...2、count(distinct col) 计算该列 NULL 之外不重复行数, 注意 count(distinct col1, col2) 如果其中一列全为 NULL,那么即使另一列有不同值,...正例: 可以使用如下方式来避免 sum NPE 问题: SELECT IF(ISNULL(SUM(g)),0,SUM(g)) FROM table; 4、代码写分页查询逻辑时,若 count 为

1.3K50

Vim 快速入门

本文大约 5000 字, 阅读大约需要 10 分钟 Linux 下最常使用文本编辑器就是 vi 或者 vim 了,如果能很好掌握这个编辑器,非常有利于我们更好 Linux 下面进行编程开发。...vim 和 vi Vim是从 vi 发展出来一个文本编辑器。代码补完、编译及错误跳转等方便编程功能特别丰富,程序员中被广泛使用。...输入模式 命令模式并不能编辑文件,需要输入『i, I, o, O, a, A, r,R』等任何一个字母之后才会进入输入模式(也称为编辑模式)。注意了!... vi 設定一下行號; 6. 移動到第 43 列,向右移動 59 個字元,請問你看到小括號內是哪個文字? 7. 移動到第一列,並且向下搜尋一下『 gzip 』這個字串,請問他第幾列? 8....我要複製 66 到 71 這 6 列內容(含有MANDB_MAP),並且貼到最後一列之後; 11. 113 到 128 列之間開頭為 # 符號註解資料我不要了,要如何刪? 12.

1.1K20

Datatables表格插件,你用过吗?

"sLast": " 最后一页 " } } ...... }); 禁止某一列排序,我们操作这一列不需要有排序功能...ajax请求利用data属性动态实时获取用户输入数据,并把其赋值给dataTable,然后doSearch方法重新拉起一次dataTable请求,这时请求参数就添加了需要字段和值; <form...第一种实现方法是前端处理, createdRow:function (row, data, dataIndex) {}回调方法获取到当前所在行最后一列,然后把html添加进去。...dataIndex当前行数据索引 createdRow:function (row, data, dataIndex) { //行最后一列 var let const...可以模型定义一个字段(我这里叫action)只要和你colums:[{data:'action'}]对应就可以。使用laravel模型属性和方法去实现。 <?

5.9K30

探索AES加解密算法:原理、应用与安全性解析

轮操作包括字节替换(SubBytes)、行移位(ShiftRows)、列混合(MixColumns)和添加轮密钥(AddRoundKey)四个步骤。...不同行移动距离不同,这有助于加密过程中进一步扩散数据。 列混合(MixColumns)(最后一轮外):在这一步,算法使用一个固定矩阵与数据块一列进行矩阵乘法运算。...这个操作进一步混淆了数据,并增强了加密过程非线性性。然而,最后一轮加密中省略了这一步,以简化解密过程。 轮密钥加(AddRoundKey):在这一步,算法将当前轮次轮密钥与数据块进行异或运算。...它首先使用与加密过程相同密钥扩展算法生成轮密钥。然后,从最后一轮开始逆向执行解密操作,包括逆行移位、逆字节替换、逆列混合(第一轮外)和轮密钥加等步骤。最终,解密过程输出原始明文数据。...实际应用,建议使用更安全模式,CBC或GCM。 Base64编码仅用于将二进制数据转换为可打印ASCII字符。它不是加密方法,只是编码方式。

1K10

何在矩阵行上显示“其他”【4】看得见与看不见,看上去看不见但还是能看得见,看上去看不见也真的看不见

按照惯例,先上链接: 往期推荐 如何在矩阵行上显示“其他”【1】 如何在矩阵行上显示“其他”【2】 如何在矩阵行上显示“其他”【3】切片器动态筛选猫腻 引子 正常情况下,我们所见表或者矩阵...然而Power BI表和矩阵显示时候,默认会将文本前后空格忽略掉,也就是上图所展示,呈现效果完全一样。...正文开始 上一篇文章我们已经实现了这个效果: 当年度切片器变换筛选时,子类别显示种类和顺序是不相同,但不变是: ①others永远显示最后一行 ②显示10个子类别按照sales或sales...2016-2019年,我们可以不同年份对应子类别上分别加上不同数量空格,这样,[子类别3]这一列,就不会有重复值了,也就是说在对[子类别3]进行“按列排序”选择[sales.oneyear.rankx2...原本这个问题可以使用度量值来解决,但是度量值要实现必要条件是矩阵上额外添加一列排序: (来源:阿伟,固定城市分组配色。报告非常棒,值得学习。

1.6K30

Shell三大利器之grep

-C或- 除了显示符合范本样式一列之外,并显示该列之前后内容。...-E 将范本样式为延伸普通表示法来使用,意味着使用能使用扩展正则表达式。 -f 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件文件内容,格式为一列范本样式。...-F 将范本样式视为固定字符串列表。 -G 将范本样式视为普通表示法来使用。 -h 显示符合范本样式一列之前,不标示该列所属文件名称。...grep 命令常见用法 -------------- 文件搜索一个单词,命令会返回一个包含str 文本行: grep str file_name grep "str" file_name 多个文件查找...输出之外所有行 -v选项: grep -v "str" file_name 标记匹配颜色 --color=auto 选项: grep "str" file_name --color=auto 使用正则表达式

1.1K00

技术阅读-《MySQL 必知必会》

将把一个表想成一个网格,网格里一列存储数据都是属于该字段下,列相互独立。 列都有对应数据类型,就是说每个字段都有数据类型限制,这个类型能帮助我们排序数据和检索数据。...,返回一列最小值/最大值 SUM 函数,返回一列最大值 聚集不同值 ALL 返回所有行数,默认行为 DISTINCT 只返回包含不同值 组合聚集函数 一个查询语句允许采用多个函数。...除此之外,处理聚集计算语句之外,SELECT语句中每个列都必须在GROUP BY语 句中给出,否则会报错。...一般新建时表名前添加 IF NOT EXISTS 。...针对查询出行数据位置进行存储,用于浏览指定行数据,类似下一页效果。

4.6K20

来看看数据分析相对复杂去重问题

如果重复那些行是一列懂相同,删除多余行只保留相同行一行就可以了,这个Excel或pandas中都有很容易使用工具了,例如Excel中就是菜单栏选择数据->删除重复值,然后选择根据哪些列进行去重就好...特定条件例如不是保留第一条也不是最后一条,而是根据两列存在某种关系、或者保留其中最大值、或保留评价列文字最多行等。...更深入一些,如果没有某一列可以作为主键呢?存在一个表,name之外,其他列都相同算重复行,这些列有文本有数值型,但是不能拿其中任何列作主键,实现上面的去重合并name,怎么办?...一个个比对是O(n^2),我目前思路时用name之外列合并形成一个字符串型新列,拿这列做主键,用上面的代码片段。合并之后再删掉之前建新列保持数据格式。...指定根据哪些列去重,默认是根据所有列,也就是当两行所有列都一样时满足去重条件; keep有三种选择:{‘first’, ‘last’, False},first和last分别对应选重复行第一行、最后一行

2.4K20

【16】万恶引导设计:配表篇

文本 用来配置对话中出现文本内容。 操作 填写对话以外其他操作,比如点击技能槽,点击确定按钮。...2 点击 点击空技能槽 3 点击 点击可学习技能 4 点击 点击技能学习的确定按钮 但是这样配置,程序是读不懂,需要调整一下: 一列加字段名,方便程序读取 一列加字段类型,告诉程序这一列数据类型...用数字来枚举类型,:1表示对话,2表示点击 不同操作也用数字来索引: 1:点击空技能槽 2:点击技能列表可学习技能 3:点击技能学习确定按钮 因为工具需要,没有内容单元格用0填充 调整后表结构就变成了这样...配置触发表 如果说步骤表一行针对是引导一步,那么触发表一行针对就是引导一段,触发表用于判定某一段引导是否达到触发条件,若是,则开始这一段引导。...另外文章中提到填表规则并非固定,还需以实际项目的配表规则为准,本文仅以个例提供配表思路。

95531

揭密VFP对象引用魔术

比如,现在我们有一个表单form1,表单上有一个页框pageframe1,页框一页上有一个表格grid1,现在,我要把第一列标题设置为“第一列”,把背景色设置为灰色,正常情况下,我们不得不输入长长对象层次...而在下方oColumn变量则不同,它类型为“O”,值却是“对象”!   原因:任何在表单建立Public变量表单释放时都不会自动被释放。   ...“1—模式”),像表单1那样放上3个文本框,给表单建立一个自定义属性oFrm1Cust,表单 Init事件输入以下代码: PARAMETER oCustom This.oFrm1Cust = oCustom...表单1上数据现在都传递到表单2三个文本框里了,现在再把表单2里面的数据改动一下,然后按下命令按钮CmdReturn,表单2所做改动又反映到表单1里了!...你可以使用这个方法轻松地表单间传递多个数据,而且由于可以直接在被调用表单修改对象引用数据,你甚至不需要返回任何参数——想想难以从一个表单返回数组情况、从一个用CreateObject(表单类)方法建立表单无法返回参数情况

1.5K10
领券