Incorrect alignment of Arabic footnotes with DITA OT and FOP

45 Views Asked by At

I have an issue with Arabic footnotes in PDFs generated with DITA OT 3.7.1, FOP 2.6, and our custom PDF plugin.

The problem is that the text for the footnotes is aligned with the opposite end away from the footnote number. The rest of the text is aligned correctly.

Arabic footnotes are incorrectly aligned as shown at the bottom.

I modified the code to generate the footnotes to try to force them to align correctly:

<fo:footnote-body>
    <fo:list-block xsl:use-attribute-sets="fn__body">
        <fo:list-item>
            <fo:list-item-label end-indent="label-end()">
                <fo:block text-align="right" id="{$id}">
                    <fo:inline xsl:use-attribute-sets="fn__callout">
                        <xsl:copy-of select="$callout"/>
                    </fo:inline>
                </fo:block>
             </fo:list-item-label>
             <fo:list-item-body start-indent="body-start()">
                 <fo:block-container xsl:use-attribute-sets="fn__blockcontainer">
                     <fo:block text-align="start">
                          <xsl:apply-templates/>
                     </fo:block>
                 </fo:block-container>
             </fo:list-item-body>
         </fo:list-item>
      </fo:list-block>
</fo:footnote-body>

Here is the fn__blockcontainer attribute set:

<xsl:attribute-set name="fn__blockcontainer">
    <xsl:attribute name="writing-mode" select="$writing-mode"/>
    <xsl:attribute name="text-align">start</xsl:attribute>
    <xsl:attribute name="display-align">before</xsl:attribute>
</xsl:attribute-set>

And the attributes show up correctly in topic.fo:

<fo:list-item-body start-indent="body-start()"><fo:block-container display-align="before" text-align="start" writing-mode="rl"><fo:block text-align="start" line-height-shift-adjustment="disregard-shifts"><fo:inline line-height="100%" font-family="Simplified Arabic">في</fo:inline> Outlook 2010 <fo:inline line-height="100%" font-family="Simplified Arabic">أو</fo:inline> <fo:inline line-height="100%" font-family="Simplified Arabic">الأحدث</fo:inline> <fo:inline line-height="100%" font-family="Simplified Arabic">يمكن</fo:inline> <fo:inline line-height="100%" font-family="Simplified Arabic">معاينة</fo:inline> <fo:inline line-height="100%" font-family="Simplified Arabic">صفحات</fo:inline> <fo:inline line-height="100%" font-family="Simplified Arabic">مرفقات</fo:inline> PDF.</fo:block></fo:block-container></fo:list-item-body>

But the alignment is still incorrect.

Is there something I'm missing, or is there a bug in FOP 2.6? Thank you for your help.

1

There are 1 best solutions below

1
Stefan Jung On

Could you please try to set the attribute language="dflt" on the <fo:block> as I have suggested in this comment to your GitHub issue? And maybe you should also try writing-mode="rl-tb" on the <fo:block-container>.