XSL-FO - как динамически установить направление страницы? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть 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">

Я хочу знать, какой желаемый API мне нужно использовать из моего Java-кода, чтобы этот атрибут указывался с указанным Locale без создания копии моего XSL

Я пытался найти ответ через Интернет и не смог найти то, что мне нужно.

1 Ответ

0 голосов
/ 05 ноября 2018

Ваш Java-код может включать поиск на основе локали для определения режима записи. В вопросе " Как узнать, какая ориентация текста зависит от локали в java? " есть пример от того, кому приходилось кататься самостоятельно.

Кроме того, вы можете выполнить поиск в вашем XSLT. Для начала, вот функция XSLT 2.0 с использованием трехбуквенных языковых тегов, которые я написал некоторое время назад при форматировании переводов Всеобщей декларации прав человека (ВДПЧ):

<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>
...