You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by inferyes <ld...@gmail.com> on 2014/04/13 18:51:55 UTC

FOP can not create a special table?

Hi all,

I am using FOP 1.1 to create a special table as follow:
<http://apache-fop.1065347.n5.nabble.com/file/n40479/table.png> 

As you seen, the table header is at right, and the table content(Asian
characters) is displayed vertically. 
I have tried to use /writing-mode="rl-tb"/ in <fo:table>, but it is not work
as follow. 
<http://apache-fop.1065347.n5.nabble.com/file/n40479/table-1.png> 

My questions:
1. Does FOP support to use "rl-tb" writing-mode in fo:table to create table
like this? 
2. How to display the Asian characters in the vertical line?(Not just
rotate)

My code:

<?xml version="1.0" encoding="UTF-8" ?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  <fo:layout-master-set>
	<fo:simple-page-master master-name="content" page-height="29.7cm"
page-width="21cm" margin-top="0.5cm" margin-bottom="0.5cm"
margin-left="1.5cm" margin-right="1.5cm">
	  <fo:region-body margin-top="1.5cm" margin-bottom="2cm" column-count="2"
column-gap="0.25in"/>
	  <fo:region-before extent="2.5cm"/>
	  <fo:region-after extent="1.5cm"/>
	</fo:simple-page-master>
  </fo:layout-master-set>
  <fo:page-sequence master-reference="content">
  
  <fo:flow flow-name="xsl-region-body">
<fo:table writing-mode="rl-tb" inline-progression-dimension="60mm"
table-layout="fixed" space-before="10pt" space-after="10pt"
start-indent="5mm" end-indent="5mm" font-family="华文中宋">
<fo:table-column column-number="1" column-width="50pt"/>
<fo:table-column column-number="2" column-width="30pt"/>
<fo:table-column column-number="3" column-width="80pt"/>
<fo:table-body start-indent="0pt" end-indent="0pt">

<fo:table-row> 
<fo:table-cell border-style="solid" border-width="thin" padding="2pt 2pt"
background-color="yellow">
<fo:block>分類</fo:block>
</fo:table-cell>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt 2pt"
background-color="yellow"><fo:block>名前</fo:block></fo:table-cell>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt 2pt"
background-color="yellow"><fo:block>定義</fo:block></fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt 2pt"
number-rows-spanned="6"><fo:block>絶対単位</fo:block></fo:table-cell>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt
2pt"><fo:block>cm</fo:block></fo:table-cell>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt
2pt"><fo:block/></fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt
2pt"><fo:block>mm</fo:block></fo:table-cell>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt
2pt"><fo:block/></fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt
2pt"><fo:block>in</fo:block></fo:table-cell>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt
2pt"><fo:block>2.54cm</fo:block></fo:table-cell>
</fo:table-row>

<fo:table-row>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt
2pt"><fo:block>pt</fo:block></fo:table-cell><fo:table-cell
border-style="solid" border-width="thin" padding="2pt 2pt">
<fo:block>1/72in</fo:block></fo:table-cell></fo:table-row>
<fo:table-row><fo:table-cell border-style="solid" border-width="thin"
padding="2pt 2pt">
<fo:block>pc</fo:block></fo:table-cell><fo:table-cell border-style="solid"
border-width="thin" padding="2pt 2pt">
<fo:block>12pt</fo:block></fo:table-cell></fo:table-row><fo:table-row><fo:table-cell
border-style="solid" border-width="thin" padding="2pt 2pt">
<fo:block>px</fo:block></fo:table-cell><fo:table-cell border-style="solid"
border-width="thin" padding="2pt 2pt">
<fo:block>通常の距離で見られる印刷、ディスプレイ、ハンドヘルド機器では0.28mm(約1/90インチ)が望ましいが、1/92インチまたは1/72インチのような値にしても良い。</fo:block>
</fo:table-cell></fo:table-row>
<fo:table-row>
<fo:table-cell border-style="solid" border-width="thin" padding="2pt 2pt">
<fo:block>相対単位</fo:block></fo:table-cell><fo:table-cell border-style="solid"
border-width="thin" padding="2pt 2pt">
<fo:block>em</fo:block></fo:table-cell><fo:table-cell border-style="solid"
border-width="thin" padding="2pt 2pt">
<fo:block>現在のfont-size プロパティの値を単位とします。1emは現在のfont-sizeと同じです。</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>

</fo:flow>
</fo:page-sequence>
  
</fo:root>

Thanks.



--
View this message in context: http://apache-fop.1065347.n5.nabble.com/FOP-can-not-create-a-special-table-tp40479.html
Sent from the FOP - Dev mailing list archive at Nabble.com.

Re: FOP can not create a special table?

Posted by Pascal Sancho <ps...@gmail.com>.
Hi,

1st, for FOP usage questions, please ask on fop-users list, fop-dev is
for fop internal questions.

That said, IIUC, you need writing-mode tb-rl for asian characters, right?
Unfortunately, FOP implements only horizontal left-to-right and
right-to-left modes.

As a workaround, you may use the newly implemented
fo:inline-container. While some required properties are not yet
implemented (see FOP-1524 at [1] for further details), you can use a
fo:block-container within the fo:inline-container:

<fo:block>
  line 1
  <fo:inline-container width="20mm" height="20mm">
    <fo:block-container reference-orientation="270" width="20mm" height="20mm">
      <fo:block>line 2</fo:block>
      <fo:block>line 3</fo:block>
    </fo:block-container>
  </fo:inline-container>
  line 4
</fo:block>

NOTE: since fo:inline-container is quite new in FOP, feedback is welcome.

[1] https://issues.apache.org/jira/browse/FOP-1524

2014-04-14 4:34 GMT+02:00 inferyes <ld...@gmail.com>:
> Now, I put the table in a block-container /<fo:block-container
> reference-orientation="270">/, the result is like that:
> <http://apache-fop.1065347.n5.nabble.com/file/n40480/table-rotate.png>
>
> Now, I want the text in table to arrange vertically as follow:
> T
> E
> S
> T
> NOT rotate the characters.
>
> Anybody have a method? Thanks very much.
>
>
>
> --
> View this message in context: http://apache-fop.1065347.n5.nabble.com/FOP-can-not-create-a-special-table-tp40479p40480.html
> Sent from the FOP - Dev mailing list archive at Nabble.com.



-- 
pascal

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org


Re: FOP can not create a special table?

Posted by Pascal Sancho <ps...@gmail.com>.
Hi,

1st, for FOP usage questions, please ask on fop-users list, fop-dev is
for fop internal questions.

That said, IIUC, you need writing-mode tb-rl for asian characters, right?
Unfortunately, FOP implements only horizontal left-to-right and
right-to-left modes.

As a workaround, you may use the newly implemented
fo:inline-container. While some required properties are not yet
implemented (see FOP-1524 at [1] for further details), you can use a
fo:block-container within the fo:inline-container:

<fo:block>
  line 1
  <fo:inline-container width="20mm" height="20mm">
    <fo:block-container reference-orientation="270" width="20mm" height="20mm">
      <fo:block>line 2</fo:block>
      <fo:block>line 3</fo:block>
    </fo:block-container>
  </fo:inline-container>
  line 4
</fo:block>

NOTE: since fo:inline-container is quite new in FOP, feedback is welcome.

[1] https://issues.apache.org/jira/browse/FOP-1524

2014-04-14 4:34 GMT+02:00 inferyes <ld...@gmail.com>:
> Now, I put the table in a block-container /<fo:block-container
> reference-orientation="270">/, the result is like that:
> <http://apache-fop.1065347.n5.nabble.com/file/n40480/table-rotate.png>
>
> Now, I want the text in table to arrange vertically as follow:
> T
> E
> S
> T
> NOT rotate the characters.
>
> Anybody have a method? Thanks very much.
>
>
>
> --
> View this message in context: http://apache-fop.1065347.n5.nabble.com/FOP-can-not-create-a-special-table-tp40479p40480.html
> Sent from the FOP - Dev mailing list archive at Nabble.com.



-- 
pascal

Re: FOP can not create a special table?

Posted by inferyes <ld...@gmail.com>.
Now, I put the table in a block-container /<fo:block-container
reference-orientation="270">/, the result is like that:
<http://apache-fop.1065347.n5.nabble.com/file/n40480/table-rotate.png> 

Now, I want the text in table to arrange vertically as follow:
T
E
S
T
NOT rotate the characters.

Anybody have a method? Thanks very much.



--
View this message in context: http://apache-fop.1065347.n5.nabble.com/FOP-can-not-create-a-special-table-tp40479p40480.html
Sent from the FOP - Dev mailing list archive at Nabble.com.