xsl-fo - 调整块容器内块的垂直位置
问题描述
我正在尝试编写一个带有绝对定位元素的小型 XSL-FO 文件。其中之一是角落里的标签。我已经设法让它非常接近但不是我想要的。这里是:
我想将文本垂直和水平居中。水平位置还可以,但垂直位置可能根据字体指标居中,但在视觉上它稍微靠上,所以我想将它向下移动几个点。但是我该怎么做呢?这是 XSL-FO 文件:
<root xmlns="http://www.w3.org/1999/XSL/Format">
<layout-master-set>
<simple-page-master master-name="master">
<region-body margin="0"/>
</simple-page-master>
</layout-master-set>
<page-sequence master-reference="master">
<flow flow-name="xsl-region-body">
<block-container absolute-position="absolute" left="0" top="0"
width="42pt" height="42pt" background-color="#ed4a46"
display-align="center">
<block font-family="Iosevka" font-size="24" color="white"
text-align="center">K3</block>
</block-container>
</flow>
</page-sequence>
</root>
我尝试使用baseline-shift
, alignment-adjust
,space-before
等,但它们似乎都没有对标签产生任何影响。
FO 处理器是 Apache FOP,以防万一。
解决方案
如何使用@padding-before
调整垂直尺寸间距?这是示例 FO 以及 FOP 2.6 和 AH Formatter V7.1 GUI 中的结果。
<root xmlns="http://www.w3.org/1999/XSL/Format">
<layout-master-set>
<simple-page-master master-name="master">
<region-body margin="0"/>
</simple-page-master>
</layout-master-set>
<page-sequence master-reference="master">
<flow flow-name="xsl-region-body">
<block-container absolute-position="absolute" left="0" top="0"
width="42pt" height="42pt" background-color="#ed4a46"
display-align="center">
<block font-family="Iosevka" font-size="24pt" color="white"
text-align="center" padding-before="2pt">K3</block>
</block-container>
</flow>
</page-sequence>
</root>
推荐阅读
- python - 更改熊猫列中的类别?
- java - PI - 从 python 代码中读取 java 中的数据
- c# - AWS 开发工具包 .NET DynamoDB ASYNC
- javascript - 如何将 calendar.google.com 嵌入到没有 API 的站点中
- c# - 我更新了 HttpClient 异步方法中的值,但它没有,如何使用 c#?
- angular - .NET Core with Angular:如何配置 IIS 以在 HTML5 模式下重写 URL?
- java - 如何在 java 8 流中使用一对多映射?
- regex - 格式化 rsyslog 消息 - 删除 logserver 的 IP
- xml-parsing - 在 Crystal Reports 公式语言中解析 XML
- hibernate - 具有复合键的孩子的休眠一对多级联持续存在