如何使用FOP(xsl和ftl)为PDF生成中的每个页面创建边框?

问题描述 投票:1回答:1

我使用FOP生成pdf,我想在pdf中为每个页面添加边框。我正在使用XSLT 2.0。

是否有任何方式或任何属性或任何标签为XSL中的每个页面创建边框?

xslt xsl-fo apache-fop
1个回答
1
投票

您可以将border属性添加到fo:region-*元素(如果需要,也可以添加padding)。


请注意,严格来说,XSL recommendation不允许这样做:

填充和边框宽度特征的值必须为“0”。

并且FOP的标准行为将以验证错误结束:

SEVERE: Exception javax.xml.transform.TransformerException: 
org.apache.fop.fo.ValidationException: Border and padding for fo:region-body 
"xsl-region-body" should be '0' (See 6.4.14 in XSL 1.1); non-standard values
are allowed if relaxed validation is enabled.  (See position ...)

但是,由于这是一个常见的用例和其他格式化程序也允许这样做,您可以通过轻松验证运行FOP并获得所需的输出:

  • 如果从命令行运行FOP,则添加选项-r
  • 在Java代码中使用FopFactoryBuilder.setStrictFOValidation()方法

您仍会收到有关非标准行为的警告,但处理正常继续:

WARNING: Border and padding for fo:region-body "xsl-region-body" should be '0' 
(See 6.4.14 in XSL 1.1); non-standard values are allowed if relaxed validation
is enabled.  (See position ...)
© www.soinside.com 2019 - 2024. All rights reserved.