java - XSL-FO - 如何动态设置页面方向?

标签 java pdf xsl-fo right-to-left bidi

我有XSL需要由给定的 Locale 动态渲染的文件.

通过此区域设置,我们将从右到左或从左到右呈现 PDF。

目前我有一个原版XSL双方都需要使用的文件。

我已经添加了writing-mode="rl"以便针对该问题建立 POC,并且运行良好。

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" writing-mode="rl">

我想知道我需要从 Java 代码中使用什么 API,以便通过给定的 Locale 放置此属性无需创建我的 XSL 的副本

我尝试通过网络寻找答案,但找不到我需要的内容。

最佳答案

您的 Java 代码可能包含基于区域设置的查找以确定写入模式。 “How to find out locale-dependent text orientation in java?”问题有一个来自必须自己动手的人的例子。

或者,您可以在 XSLT 中进行查找。为了帮助您入门,这里有一个使用三字母语言标签的 XSLT 2.0 函数,该函数是我不久前在格式化《世界人权声明》(UDHR) 的翻译时编写的:

<xsl:function name="m:writing-mode" as="xs:string">
  <xsl:param name="lang" />

  <xsl:sequence
      select="if ($lang = ('heb', 'arb', 'pnb', 'skr',
               'ydd', 'pes', 'urd', 'pbu',
               'mly_arab', 'uig_arab',
               'aii', 'div'))
        then 'rl'
        else 'lr'" />
</xsl:function>

关于java - XSL-FO - 如何动态设置页面方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53150000/

相关文章:

java - TreeSet操作的复杂性

java - 使用 Scala 和 Jackson 以及 java.lang.Integer 或 scala.Int 对泛型类型进行奇怪的反序列化问题

html - 调整 html 复选框的大小以用于 pdf 输出

XSL-FO:仅将文本放置在奇数页上,跳过偶数页

html - 如何对齐 block 中的两个行内元素

java - fo :data-cell overflow

java - Choco 求解器传播和搜索策略交互

java - 我们可以创建一个值为 : operator? 的 Java 变量吗

php - Mpdf 删除页脚并使用它的内容空间

jquery - 如何移动表格导出pdfhtml5数据表?