当前位置: 首页 > 知识库问答 >
问题:

fop表在rtl模式下显示不正确

华誉
2023-03-14

我生成了下面的fop代码,用于显示包含一些数据的2列2行的表格。

<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<fo:layout-master-set>
    <fo:simple-page-master writing-mode="rl-tb" master-name="pagesize" page-height="238.5pt" page-width="1020.78pt" margin-left="0pt" margin-right="0pt" margin-top="0pt" margin-bottom="0pt">
        <fo:region-body margin-top="0pt" margin-bottom="0pt"/>
        <fo:region-before extent="0pt"/>
        <fo:region-after extent="0pt"/>
    </fo:simple-page-master>
</fo:layout-master-set>

<fo:page-sequence master-reference="pagesize">
    <fo:flow flow-name="xsl-region-body">
        <fo:block-container absolute-position="absolute" writing-mode="rl-tb" font-family="Liberation Sans" font-size="13.25pt" font-style="normal" font-weight="normal" top="20pt" right="20pt" width="1020.78pt" height="238.5pt" background-color="brown">
            <fo:table wrap-option="no-wrap" overflow="hidden" border-collapse="separate" background-color="green">
                <fo:table-column column-width="69.5625pt"/>
                <fo:table-column column-width="69.5625pt"/>
                <fo:table-body>
                    <fo:table-row background-color="#FFFFFF">
                        <fo:table-cell padding-right="2.48438pt" padding-left="2.48438pt" padding-top="0.49687pt" padding-bottom="0.49687pt" height="24.84375pt" relative-align="baseline" display-align="center" overflow="hidden">
                            <fo:block-container text-align="right" display-align="center" white-space-treatment="preserve" white-space-collapse="false" linefeed-treatment="preserve" overflow="hidden">
                                <fo:block/>
                            </fo:block-container>
                        </fo:table-cell>
                        <fo:table-cell padding-right="2.48438pt" padding-left="2.48438pt" padding-top="0.49687pt" padding-bottom="0.49687pt" height="24.84375pt" relative-align="baseline" display-align="center" overflow="hidden">
                            <fo:block-container text-align="center" display-align="center" white-space-treatment="preserve" white-space-collapse="false" linefeed-treatment="preserve" overflow="hidden">
                                <fo:block>Fiscal Calendar</fo:block>
                            </fo:block-container>
                        </fo:table-cell>
                    </fo:table-row>
                    <fo:table-row background-color="#FFFFFF">
                        <fo:table-cell padding-right="2.48438pt" padding-left="2.48438pt" padding-top="0.49687pt" padding-bottom="0.49687pt" height="24.84375pt" relative-align="baseline" display-align="center" overflow="hidden">
                            <fo:block-container text-align="right" display-align="center" white-space-treatment="preserve" white-space-collapse="false" linefeed-treatment="preserve" overflow="hidden">
                                <fo:block>Accounts</fo:block>
                            </fo:block-container>
                        </fo:table-cell>
                        <fo:table-cell padding-right="2.48438pt" padding-left="2.48438pt" padding-top="0.49687pt" padding-bottom="0.49687pt" height="24.84375pt" relative-align="baseline" display-align="center" overflow="hidden">
                            <fo:block-container text-align="right" display-align="center" white-space-treatment="preserve" white-space-collapse="false" linefeed-treatment="preserve" overflow="hidden">
                                <fo:block>#</fo:block>
                            </fo:block-container>
                        </fo:table-cell>
                    </fo:table-row>
                </fo:table-body>
            </fo:table>
        </fo:block-container>
    </fo:flow>
</fo:page-sequence>

</fo:root>

问题:表格在rtl模式下没有右对齐,但是单元格中的内容是右对齐的,这是正确的。我检查了输出,看到写入模式应用于从右到左正确显示文本的表格单元格,但表格本身没有右对齐,尽管为块容器提供了右和绝对位置属性。我尝试给fo:table赋予相同的属性,但它仍然不起作用。

我检查了apache fop文档,并且正确使用了属性。如果我错过了什么,请告诉我。

共有1个答案

干浩然
2023-03-14

虽然这不是答案,但可能是。使用 RenderX 进行测试,输出如下:

如果这是您所期望的,您应该向FOP提交一份错误报告。该表应该从右向左构建。

 类似资料:
  • 问题内容: 我有一个以全屏模式运行的应用程序,并且运行良好。现在,我需要添加一个简单的,未修饰的对话框,我遇到了麻烦。如果我 最大化 而不是全屏运行该应用程序,则对话框将按预期方式显示和运行。当我切换回全屏模式时,该对话框将不会显示。 该对话框扩展了JDialog,仅包含一个JSlider和几个按钮。它是未经装饰的, 不是模态的 。(我出于测试目的禁用了模式- 每次对话框阻止输入时强制退出应用程序

  • 我想在引导模式中显示图表。代码在这里:但它不工作,图表不显示。如何解决这个问题? #button type=“button”class=“btn btn primary btn lg active”数据切换=“modal”数据目标=“#myModel”

  • 捕获支付(http://paypal.github.io/paypal-php-sdk/sample/doc/payments/ordercapture.html)。 所有步骤都是成功的,我没有抓到任何例外,并且支付和订单状态良好(订单为“完成”,支付为“批准”)。 交易正在发生,我可以看到钱是转移之间的测试买家帐户和卖家在沙盒帐户设置。 您向我的业务提交了金额为X.XX的订单 而且上面清楚地写着

  • 问题内容: 我正在尝试使用AngularJS bootstrap.ui显示模式对话框。当我执行$ modal.open(…)时,屏幕变灰,并且我的templateUrl中的html从服务器调用,但是没有模式显示。当我单击灰色区域时,模态“关闭”,即灰色区域消失,屏幕再次看起来正常。我无法弄清楚为什么看不到任何模态屏幕。 我正在尝试遵循本教程: Angular指令 我正在使用Visual Studi

  • 问题内容: 我以为Python交互模式下的显示总是等效的,但是事实并非如此。这是语言功能还是我缺少什么?谢谢 问题答案: 是的,此行为是故意的。 来自Python文档 7.1。表达陈述 Expression语句(通常是交互式地)用于计算和写入值,或(通常)用于调用过程(一个不返回有意义结果的函数;在Python中,过程返回value )。表达式语句的其他用法是允许的,有时是有用的。表达式语句的语法

  • 我正在维护一个使用Apache FOP打印PDF文档的程序。有一些关于汉字出现“####”的抱怨。我已经找到了一个关于这个问题的现有线程,并在我这边做了一些研究。 http://Apache-fop . 1065347 . n5 . nab ble . com/Chinese-Fonts-TD 10789 . html 我的系统上安装了uming.tff语言文件。不像这个线程中的人,我仍然得到 "