代码之家  ›  专栏  ›  技术社区  ›  manash

XSL-FO在脚注中还原文本

  •  1
  • manash  · 技术社区  · 6 年前

    我试图用Apache FOP在PDF中正确显示脚注。

    <fo:block text-align="right">
        <fo:bidi-override unicode-bidi="embed" direction="rtl">
            <fo:inline>שלום</fo:inline>
            <fo:footnote>
                <fo:inline alignment-baseline="hanging">1</fo:inline>
                <fo:footnote-body>
                    <fo:block>
                        <fo:bidi-override unicode-bidi="embed" direction="rtl">
                            <fo:inline>שלום</fo:inline>
                        </fo:bidi-override>
                    </fo:block>
                </fo:footnote-body>
            </fo:footnote>
            <fo:inline>.</fo:inline>
        </fo:bidi-override>
    </fo:block>
    

    出于某种原因,脚注文本(在页面底部)将恢复为:

    enter image description here

    不知道我做错了什么。。。

    1 回复  |  直到 6 年前
        1
  •  0
  •   xerx593    6 年前
    1. (坏)解决方法:移除(内部) direction="rtl" 属性,但这可能会“破坏其他东西”。
    2. (更好)方法(但在你的语言中可能不可读/不有趣,sry,when):

      <fo:inline>םולש</fo:inline>
      

    …但是大多数的混乱(对我来说,可能是“引擎”)会引发嵌套的 <fo:bidi-override/> 元素。。。

    1. 方法是:

      <fo:block text-align="right">
        <fo:bidi-override unicode-bidi="embed" direction="rtl">
          <fo:inline>שלום</fo:inline>
        </fo:bidi-override>
        <fo:footnote>
          <fo:inline alignment-baseline="hanging">1</fo:inline>
          <fo:footnote-body>
            <fo:block>
              <fo:bidi-override unicode-bidi="embed" direction="rtl">
                <fo:inline>שלום</fo:inline>
              </fo:bidi-override>
            </fo:block>
          </fo:footnote-body>
        </fo:footnote>
        <fo:inline>.</fo:inline>
      </fo:block>
      

    (重新安排外部 <fo:bidi覆盖/> .)

    推荐文章