我正在使用FOP生成pdf,并且我希望在pdf中的每页都包含边框。我正在使用XSLT 2.0。
是否可以通过任何方式,属性或标签为XSL中的每个页面创建边框?
答案 0 :(得分: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并获得所需的输出:
-r
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 ...)