XSL FO inline alignment

人走茶凉 提交于 2019-12-18 11:05:13

问题


I need to get text aligned right and left on the same line. This should be possible, but i can't seem to find a way. I'm using Apache FOP to convert xml to pdf.

Can someone help me to get this right?


回答1:


Elegance wasn't a stated requirement, but this should fit the bill:

<fo:block text-align-last="justify">
  LEFT TEXT
  <fo:leader leader-pattern="space" />
  RIGHT TEXT
</fo:block>

This works by justifying the last line of text in the block, so that the text begins at the left of the line and ends at the right. The leader, which is usually used on Table of Contents pages, stretches to fill the space between the left and right text. Normally it is used as <fo:leader leader-pattern="dots" />, which produces a stretch of periods, but in this case it merely provides a gulf of space.




回答2:


This will do the trick:

<fo:table>
  <fo:table-column />
  <fo:table-column />

  <fo:table-body>
    <fo:table-row>
      <fo:table-cell>
        <fo:block>LEFT TEXT</fo:block>
      </fo:table-cell>
      <fo:table-cell>
        <fo:block text-align="right">RIGHT TEXT</fo:block>
      </fo:table-cell>
    </fo:table-row>
  </fo:table-body>
</fo:table>



回答3:


<fo:inline-container vertical-align="top" inline-progression-dimension="49.9%">
    <fo:block>left content</fo:block>
</fo:inline-container>
<fo:inline-container vertical-align="top" inline-progression-dimension="49.9%">
    <fo:block>right-content</fo:block>
</fo:inline-container>

Verified working with FOP 2.0




回答4:


I dont't have the time right now to test this but check out http://www.w3.org/TR/xsl/#fo_float

float one right float the other left - i'd give it a shot if I was looking to do what you are describing

you could also use a table

unless by aligned right AND left you mean justified...




回答5:


I create two blocks and on the second block I set this attribute:

margin-top="-4mm"

or what your font size and margin bottom are (just to look like they are on same line)




回答6:


This is possible i'm not sure what the exact output is but have you tried:

<fo:block-container>
   <fo:block text-align="left">text</fo:block>
   <fo:block text-align="right">text</fo:block>
</fo:block-container >

I haven't done XSLFO in a while but i can certainly recommend Stylus Studio for XSL-FO development (and in general XML), The in-app debugging and previewing saved my ass on finishing deadlines on time. You can make Stylus work with the Apache FOP processor as well.

PS: I would have double checked if i had Apache FOP etcetera set up correctly back at home as well.



来源:https://stackoverflow.com/questions/391759/xsl-fo-inline-alignment

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!