You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-users@xmlgraphics.apache.org by Alexey Neyman <st...@att.net> on 2010/09/13 22:39:06 UTC

FOP 0.95 - bug with tables?

Hi All,

I am trying to format a table with cells spanning as shown below:

AAB
AAC
DEC

To do this, I am using attached .fo file (it is actually a stripped-down 
DocBook-generated table). The essential piece is:

<fo:table>
 <fo:table-body>
  <fo:table-row>
   <fo:table-cell number-rows-spanned="2" number-columns-spanned="2">
    <fo:block>A</fo:block>
   </fo:table-cell>
   <fo:table-cell>
    <fo:block>B</fo:block>
   </fo:table-cell>
  </fo:table-row>
  <fo:table-row>
   <fo:table-cell number-rows-spanned="2">
    <fo:block>C</fo:block>
   </fo:table-cell>
  </fo:table-row>
  <fo:table-row>
   <fo:table-cell>
    <fo:block>D</fo:block>
   </fo:table-cell>
   <fo:table-cell>
    <fo:block>E</fo:block>
   </fo:table-cell>
  </fo:table-row>
 </fo:table-body>
</fo:table>

However, it gets rendered like this:

AAB
DEC

(there is no row that includes both A-cell and C-cell). See the attached PDF. 
It looks like a bug; could somebody confirm and suggest a fix/workaround?

PS. Using FOP 0.95, Ubuntu 10.04.

Regards,
Alexey.

Re: FOP 0.95 - bug with tables?

Posted by Jeremias Maerki <de...@jeremias-maerki.ch>.
There is indeed something not quite right, I think. As long as I play
with cell content or with min-height on table-cell (FOP Trunk/1.0), the
behaviour seems to be what's expected. However, if you start setting
min-height on the second table-row, nothing happens. The layouter
doesn't seem to allocate height for the "virtual" second row which
causes the "C" cell to begin at the same Y coordinate as the "D" row
which is probably undesired. I also think that if a
block-progression-dimension (or min/max-height) is on a table-row and
that has no effect, that could really be a bug. But without the height
constraint, I think the current result is correct.

To force what I think you expect, you can set min-height="2.4em" on the
"A" cell. (2.4em ~ 2 * line-height)

On 20.09.2010 09:17:29 Pascal Sancho wrote:
>  Hi,
> height applies to fo:table-row, and FOP is compliant with that, but...
> 
> as said in FO-REC 1.1, §3.7.9 (see [1]):
> "The fo:table-row formatting object does not generate any areas. The
> fo:table-row formatting object returns the sequence of areas created by
> concatenating the sequences of areas returned by each of the children of
> the fo:table-row".
> IMHO:
> According to that, while there is a fo:table-cell [child of the
> fo:table-row] that has the wished height, then the behavior conforms to
> spec.
> Other FOP guy can confirm?
> 
> That can make some unexpected behavior like this you described. Expected
> behavior should be: a rows-spanned cell should have the height equal to
> the sum of spanned rows heights.
> 
> [1] http://www.w3.org/TR/xsl/#fo_table-row
> --
> Pascal
> 
> Le 18/09/2010 02:44, Alexey Neyman a écrit :
> > Hi Pascal,
> >
> > So, is "height" property supported on fo:table-row by FOP?
> >
> > FOP compliance page says "yes" (not "partial") on "height" support, and XSL-FO
> > specification says this property is applicable to fo:table-row. Yet, I cannot
> > get it to work. Am I doing something wrong?
> >
> > Regards,
> > Alexey.
> >
> > On Wednesday, September 15, 2010 10:08:29 am Alexey Neyman wrote:
> >> Hi Pascal,
> >>
> >> Just tried. While there is no exception, <fo:table-row min-height="1em">
> >> still does not work in FOP 1.0 (still no effect whatsoever). See quoted
> >> email as to why <fo:table-cell height="..."> is not sufficient to solve
> >> this issue.
> >>
> >> Regards,
> >> Alexey.
> >>
> >> On Wednesday, September 15, 2010 12:35:00 am Pascal Sancho wrote:
> >>>  Hi Alexey
> >>>
> >>> this Exception issue seems to be fixed in FOP 1.0 (I've noticed in the
> >>> pdf attached to your initial post that you used FOP 0.95).
> >>> I suggest you to upgrade, at least min-height will work as expected
> >>> without any Exception.
> >>>
> >>> Pascal
> >>>
> >>> Le 14/09/2010 22:10, Alexey Neyman a écrit :
> >>>> Hi Pascal,
> >>>>
> >>>> I see your point, although this advice is not particularly useful to
> >>>> what I am doing. As I mentioned, this table is generated by DocBook,
> >>>> and its templates for tables are probably the most convoluted in the
> >>>> whole stylesheet. I was trying to avoid heavy customizations of these
> >>>> templates.
> >>>>
> >>>> Another issue is that what I really want is "min-height" property in
> >>>> this case: at XSLT stage, it is not known whether text inside the
> >>>> table cell will occupy 1, 2, 3 or 15 rows. I tried using min-height in
> >>>> the test case I posted before, but this causes an exception in FOP
> >>>> (see below). According to spec, using min-height is perfectly legal:
> >>>> it should set minimum height, while retaining optimum and maximum
> >>>> height as "auto".
> >>>>
> >>>> An finally, what you suggested won't work if another cell is more than
> >>>> 1 row. With the example I posted:
> >>>>
> >>>> AB
> >>>> AC
> >>>> DC
> >>>>
> >>>> If I set height to 2em, it looks okay. But, if cell B contains a text
> >>>> that wraps into 2nd line, the table again looks as
> >>>>
> >>>> AB
> >>>> DC
> >>>>
> >>>> but now the whole row containing C and D cells is 2em in height. Given
> >>>> that DocBook stylesheet does not know how many lines of text there will
> >>>> be in each cell - that is determined by FO processor - I cannot
> >>>> calculate the height value beforehand.
> >>>>
> >>>> So, I tried to set height/min-height on a fo:table-row instead. Setting
> >>>> min-height= on fo:table-row results in a different exception (also, see
> >>>> below). Setting height= on fo:table-row does not have any effect at
> >>>> all. According to XSL-FO spec, block-progression-dimension property
> >>>> (that is set through height property) is allowed on fo:table-row. Is
> >>>> this a FOP bug/missing feature?
> >>>>
> >>>> Regards,
> >>>> Alexey.
> >>>>
> >>>> Exception with min-height= on fo:table-cell:
> >>>> ---->8----->8----->8----->8----->8----->8----->8
> >>>> Sep 14, 2010 12:37:47 PM org.apache.fop.cli.Main startFOP
> >>>> SEVERE: Exception
> >>>> java.lang.NullPointerException
> >>>>
> >>>>         at
> >>>>         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
> >>>>         1 7) at
> >>>>         org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
> >>>>         at org.apache.fop.cli.Main.startFOP(Main.java:166)
> >>>>         at org.apache.fop.cli.Main.main(Main.java:197)
> >>>>
> >>>> Caused by: java.lang.NullPointerException
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(
> >>>> Ro wGroupLayoutManager.java:165)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForR
> >>>> ow Group(RowGroupLayoutManager.java:127)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElemen
> >>>> ts (RowGroupLayoutManager.java:60)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElemen
> >>>> ts ForRowIterator(TableContentLayoutManager.java:220)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthEl
> >>>> em ents(TableContentLayoutManager.java:172)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(
> >>>> Ta bleLayoutManager.java:247)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElement
> >>>> s( BlockStackingLayoutManager.java:294)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockL
> >>>> ay outManager.java:116)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLay
> >>>> ou tManager.java:107)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.j
> >>>> av a:145)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreak
> >>>> er .java:552)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:
> >>>> 13 7)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
> >>>> 30 2)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
> >>>> 26 4)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageS
> >>>> eq uenceLayoutManager.java:106)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.jav
> >>>> a: 234)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:1
> >>>> 23 )
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.
> >>>> ja va:340)
> >>>>
> >>>>         at
> >>>>         org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:1
> >>>>         6 9) at
> >>>>
> >>>> org.apache.xalan.transformer.TransformerIdentityImpl.endElement(Transfo
> >>>> rm erIdentityImpl.java:1102)
> >>>>
> >>>>         at
> >>>>         org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> >>>>
> >>>> Source)
> >>>>
> >>>>         at
> >>>>         org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown
> >>>>
> >>>> Source)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
> >>>> Source)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDi
> >>>> sp atcher.dispatch(Unknown Source)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkn
> >>>> ow n Source)
> >>>>
> >>>>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> >>>>         Source) at
> >>>>         org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> >>>>         Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown
> >>>>         Source) at
> >>>>         org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> >>>>         Source) at
> >>>>         org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknow
> >>>>         n
> >>>>
> >>>> Source)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transfor
> >>>> me rIdentityImpl.java:485)
> >>>>
> >>>>         at
> >>>>         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
> >>>>         1 4) ... 3 more
> >>>>
> >>>> ---->8----->8----->8----->8----->8----->8----->8
> >>>>
> >>>>
> >>>> Exception with min-height= on fo:table-row:
> >>>> ---->8----->8----->8----->8----->8----->8----->8
> >>>> Sep 14, 2010 12:53:10 PM org.apache.fop.cli.Main startFOP
> >>>> SEVERE: Exception
> >>>> java.lang.NullPointerException
> >>>>
> >>>>         at
> >>>>         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
> >>>>         1 7) at
> >>>>         org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
> >>>>         at org.apache.fop.cli.Main.startFOP(Main.java:166)
> >>>>         at org.apache.fop.cli.Main.main(Main.java:197)
> >>>>
> >>>> Caused by: java.lang.NullPointerException
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.MinOptMaxUtil.toMinOptMax(MinOptMaxUtil.java:1
> >>>> 06 )
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(
> >>>> Ro wGroupLayoutManager.java:155)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForR
> >>>> ow Group(RowGroupLayoutManager.java:127)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElemen
> >>>> ts (RowGroupLayoutManager.java:60)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElemen
> >>>> ts ForRowIterator(TableContentLayoutManager.java:220)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthEl
> >>>> em ents(TableContentLayoutManager.java:172)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(
> >>>> Ta bleLayoutManager.java:247)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElement
> >>>> s( BlockStackingLayoutManager.java:294)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockL
> >>>> ay outManager.java:116)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLay
> >>>> ou tManager.java:107)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.j
> >>>> av a:145)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreak
> >>>> er .java:552)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:
> >>>> 13 7)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
> >>>> 30 2)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
> >>>> 26 4)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageS
> >>>> eq uenceLayoutManager.java:106)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.jav
> >>>> a: 234)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:1
> >>>> 23 )
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.
> >>>> ja va:340)
> >>>>
> >>>>         at
> >>>>         org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:1
> >>>>         6 9) at
> >>>>
> >>>> org.apache.xalan.transformer.TransformerIdentityImpl.endElement(Transfo
> >>>> rm erIdentityImpl.java:1102)
> >>>>
> >>>>         at
> >>>>         org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> >>>>
> >>>> Source)
> >>>>
> >>>>         at
> >>>>         org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown
> >>>>
> >>>> Source)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
> >>>> Source)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDi
> >>>> sp atcher.dispatch(Unknown Source)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkn
> >>>> ow n Source)
> >>>>
> >>>>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> >>>>         Source) at
> >>>>         org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> >>>>         Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown
> >>>>         Source) at
> >>>>         org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> >>>>         Source) at
> >>>>         org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknow
> >>>>         n
> >>>>
> >>>> Source)
> >>>>
> >>>>         at
> >>>>
> >>>> org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transfor
> >>>> me rIdentityImpl.java:485)
> >>>>
> >>>>         at
> >>>>         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
> >>>>         1 4) ... 3 more
> >>>>
> >>>> ---->8----->8----->8----->8----->8----->8----->8
> >>>>
> >>>> On Tuesday, September 14, 2010 01:04:02 am Pascal Sancho wrote:
> >>>>>  Hi,
> >>>>>
> >>>>> I think the behaviour is correct here:
> >>>>> Cells height is not sufficient to see the effect you want.
> >>>>> try to increase the height of vertically spanned cells (by setting the
> >>>>> height property to 2em) and you will see what I mean.
> >>>>>
> >>>>> Pascal
> >>>>>
> >>>>> Le 13/09/2010 22:39, Alexey Neyman a écrit :
> >>>>>>     <fo:table table-layout="fixed" width="100%"
> >>>>>>
> >>>>>>       border-top="solid black 0.5pt" border-left="solid black 0.5pt">
> >>>>>>
> >>>>>>      <fo:table-body>
> >>>>>>
> >>>>>>       <fo:table-row>
> >>>>>>
> >>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>>>>>
> >>>>>>          border-right="solid black 0.5pt"
> >>>>>>          number-rows-spanned="2"
> >>>>>>          number-columns-spanned="2">
> >>>>>>
> >>>>>>         <fo:block>A</fo:block>
> >>>>>>
> >>>>>>        </fo:table-cell>
> >>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>>>>>
> >>>>>>          border-right="solid black 0.5pt">
> >>>>>>
> >>>>>>         <fo:block>B</fo:block>
> >>>>>>
> >>>>>>        </fo:table-cell>
> >>>>>>
> >>>>>>       </fo:table-row>
> >>>>>>       <fo:table-row>
> >>>>>>
> >>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>>>>>
> >>>>>>          border-right="solid black 0.5pt" number-rows-spanned="2">
> >>>>>>
> >>>>>>         <fo:block>C</fo:block>
> >>>>>>
> >>>>>>        </fo:table-cell>
> >>>>>>
> >>>>>>       </fo:table-row>
> >>>>>>       <fo:table-row>
> >>>>>>
> >>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>>>>>
> >>>>>>          border-right="solid black 0.5pt">
> >>>>>>
> >>>>>>         <fo:block>D</fo:block>
> >>>>>>
> >>>>>>        </fo:table-cell>
> >>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>>>>>
> >>>>>>          border-right="solid black 0.5pt">
> >>>>>>
> >>>>>>         <fo:block>E</fo:block>
> >>>>>>
> >>>>>>        </fo:table-cell>
> >>>>>>
> >>>>>>       </fo:table-row>
> >>>>>>
> >>>>>>      </fo:table-body>
> >>>>>>
> >>>>>>     </fo:table>



Jeremias Maerki


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


Re: FOP 0.95 - bug with tables?

Posted by Pascal Sancho <pa...@takoma.fr>.
 Hi,
height applies to fo:table-row, and FOP is compliant with that, but...

as said in FO-REC 1.1, §3.7.9 (see [1]):
"The fo:table-row formatting object does not generate any areas. The
fo:table-row formatting object returns the sequence of areas created by
concatenating the sequences of areas returned by each of the children of
the fo:table-row".
IMHO:
According to that, while there is a fo:table-cell [child of the
fo:table-row] that has the wished height, then the behavior conforms to
spec.
Other FOP guy can confirm?

That can make some unexpected behavior like this you described. Expected
behavior should be: a rows-spanned cell should have the height equal to
the sum of spanned rows heights.

[1] http://www.w3.org/TR/xsl/#fo_table-row
--
Pascal

Le 18/09/2010 02:44, Alexey Neyman a écrit :
> Hi Pascal,
>
> So, is "height" property supported on fo:table-row by FOP?
>
> FOP compliance page says "yes" (not "partial") on "height" support, and XSL-FO
> specification says this property is applicable to fo:table-row. Yet, I cannot
> get it to work. Am I doing something wrong?
>
> Regards,
> Alexey.
>
> On Wednesday, September 15, 2010 10:08:29 am Alexey Neyman wrote:
>> Hi Pascal,
>>
>> Just tried. While there is no exception, <fo:table-row min-height="1em">
>> still does not work in FOP 1.0 (still no effect whatsoever). See quoted
>> email as to why <fo:table-cell height="..."> is not sufficient to solve
>> this issue.
>>
>> Regards,
>> Alexey.
>>
>> On Wednesday, September 15, 2010 12:35:00 am Pascal Sancho wrote:
>>>  Hi Alexey
>>>
>>> this Exception issue seems to be fixed in FOP 1.0 (I've noticed in the
>>> pdf attached to your initial post that you used FOP 0.95).
>>> I suggest you to upgrade, at least min-height will work as expected
>>> without any Exception.
>>>
>>> Pascal
>>>
>>> Le 14/09/2010 22:10, Alexey Neyman a écrit :
>>>> Hi Pascal,
>>>>
>>>> I see your point, although this advice is not particularly useful to
>>>> what I am doing. As I mentioned, this table is generated by DocBook,
>>>> and its templates for tables are probably the most convoluted in the
>>>> whole stylesheet. I was trying to avoid heavy customizations of these
>>>> templates.
>>>>
>>>> Another issue is that what I really want is "min-height" property in
>>>> this case: at XSLT stage, it is not known whether text inside the
>>>> table cell will occupy 1, 2, 3 or 15 rows. I tried using min-height in
>>>> the test case I posted before, but this causes an exception in FOP
>>>> (see below). According to spec, using min-height is perfectly legal:
>>>> it should set minimum height, while retaining optimum and maximum
>>>> height as "auto".
>>>>
>>>> An finally, what you suggested won't work if another cell is more than
>>>> 1 row. With the example I posted:
>>>>
>>>> AB
>>>> AC
>>>> DC
>>>>
>>>> If I set height to 2em, it looks okay. But, if cell B contains a text
>>>> that wraps into 2nd line, the table again looks as
>>>>
>>>> AB
>>>> DC
>>>>
>>>> but now the whole row containing C and D cells is 2em in height. Given
>>>> that DocBook stylesheet does not know how many lines of text there will
>>>> be in each cell - that is determined by FO processor - I cannot
>>>> calculate the height value beforehand.
>>>>
>>>> So, I tried to set height/min-height on a fo:table-row instead. Setting
>>>> min-height= on fo:table-row results in a different exception (also, see
>>>> below). Setting height= on fo:table-row does not have any effect at
>>>> all. According to XSL-FO spec, block-progression-dimension property
>>>> (that is set through height property) is allowed on fo:table-row. Is
>>>> this a FOP bug/missing feature?
>>>>
>>>> Regards,
>>>> Alexey.
>>>>
>>>> Exception with min-height= on fo:table-cell:
>>>> ---->8----->8----->8----->8----->8----->8----->8
>>>> Sep 14, 2010 12:37:47 PM org.apache.fop.cli.Main startFOP
>>>> SEVERE: Exception
>>>> java.lang.NullPointerException
>>>>
>>>>         at
>>>>         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
>>>>         1 7) at
>>>>         org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
>>>>         at org.apache.fop.cli.Main.startFOP(Main.java:166)
>>>>         at org.apache.fop.cli.Main.main(Main.java:197)
>>>>
>>>> Caused by: java.lang.NullPointerException
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(
>>>> Ro wGroupLayoutManager.java:165)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForR
>>>> ow Group(RowGroupLayoutManager.java:127)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElemen
>>>> ts (RowGroupLayoutManager.java:60)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElemen
>>>> ts ForRowIterator(TableContentLayoutManager.java:220)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthEl
>>>> em ents(TableContentLayoutManager.java:172)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(
>>>> Ta bleLayoutManager.java:247)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElement
>>>> s( BlockStackingLayoutManager.java:294)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockL
>>>> ay outManager.java:116)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLay
>>>> ou tManager.java:107)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.j
>>>> av a:145)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreak
>>>> er .java:552)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:
>>>> 13 7)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
>>>> 30 2)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
>>>> 26 4)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageS
>>>> eq uenceLayoutManager.java:106)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.jav
>>>> a: 234)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:1
>>>> 23 )
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.
>>>> ja va:340)
>>>>
>>>>         at
>>>>         org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:1
>>>>         6 9) at
>>>>
>>>> org.apache.xalan.transformer.TransformerIdentityImpl.endElement(Transfo
>>>> rm erIdentityImpl.java:1102)
>>>>
>>>>         at
>>>>         org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>>
>>>> Source)
>>>>
>>>>         at
>>>>         org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown
>>>>
>>>> Source)
>>>>
>>>>         at
>>>>
>>>> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
>>>> Source)
>>>>
>>>>         at
>>>>
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDi
>>>> sp atcher.dispatch(Unknown Source)
>>>>
>>>>         at
>>>>
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkn
>>>> ow n Source)
>>>>
>>>>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
>>>>         Source) at
>>>>         org.apache.xerces.parsers.XML11Configuration.parse(Unknown
>>>>         Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown
>>>>         Source) at
>>>>         org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
>>>>         Source) at
>>>>         org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknow
>>>>         n
>>>>
>>>> Source)
>>>>
>>>>         at
>>>>
>>>> org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transfor
>>>> me rIdentityImpl.java:485)
>>>>
>>>>         at
>>>>         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
>>>>         1 4) ... 3 more
>>>>
>>>> ---->8----->8----->8----->8----->8----->8----->8
>>>>
>>>>
>>>> Exception with min-height= on fo:table-row:
>>>> ---->8----->8----->8----->8----->8----->8----->8
>>>> Sep 14, 2010 12:53:10 PM org.apache.fop.cli.Main startFOP
>>>> SEVERE: Exception
>>>> java.lang.NullPointerException
>>>>
>>>>         at
>>>>         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
>>>>         1 7) at
>>>>         org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
>>>>         at org.apache.fop.cli.Main.startFOP(Main.java:166)
>>>>         at org.apache.fop.cli.Main.main(Main.java:197)
>>>>
>>>> Caused by: java.lang.NullPointerException
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.MinOptMaxUtil.toMinOptMax(MinOptMaxUtil.java:1
>>>> 06 )
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(
>>>> Ro wGroupLayoutManager.java:155)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForR
>>>> ow Group(RowGroupLayoutManager.java:127)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElemen
>>>> ts (RowGroupLayoutManager.java:60)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElemen
>>>> ts ForRowIterator(TableContentLayoutManager.java:220)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthEl
>>>> em ents(TableContentLayoutManager.java:172)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(
>>>> Ta bleLayoutManager.java:247)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElement
>>>> s( BlockStackingLayoutManager.java:294)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockL
>>>> ay outManager.java:116)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLay
>>>> ou tManager.java:107)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.j
>>>> av a:145)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreak
>>>> er .java:552)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:
>>>> 13 7)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
>>>> 30 2)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
>>>> 26 4)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageS
>>>> eq uenceLayoutManager.java:106)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.jav
>>>> a: 234)
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:1
>>>> 23 )
>>>>
>>>>         at
>>>>
>>>> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.
>>>> ja va:340)
>>>>
>>>>         at
>>>>         org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:1
>>>>         6 9) at
>>>>
>>>> org.apache.xalan.transformer.TransformerIdentityImpl.endElement(Transfo
>>>> rm erIdentityImpl.java:1102)
>>>>
>>>>         at
>>>>         org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>>
>>>> Source)
>>>>
>>>>         at
>>>>         org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown
>>>>
>>>> Source)
>>>>
>>>>         at
>>>>
>>>> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
>>>> Source)
>>>>
>>>>         at
>>>>
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDi
>>>> sp atcher.dispatch(Unknown Source)
>>>>
>>>>         at
>>>>
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkn
>>>> ow n Source)
>>>>
>>>>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
>>>>         Source) at
>>>>         org.apache.xerces.parsers.XML11Configuration.parse(Unknown
>>>>         Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown
>>>>         Source) at
>>>>         org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
>>>>         Source) at
>>>>         org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknow
>>>>         n
>>>>
>>>> Source)
>>>>
>>>>         at
>>>>
>>>> org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transfor
>>>> me rIdentityImpl.java:485)
>>>>
>>>>         at
>>>>         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
>>>>         1 4) ... 3 more
>>>>
>>>> ---->8----->8----->8----->8----->8----->8----->8
>>>>
>>>> On Tuesday, September 14, 2010 01:04:02 am Pascal Sancho wrote:
>>>>>  Hi,
>>>>>
>>>>> I think the behaviour is correct here:
>>>>> Cells height is not sufficient to see the effect you want.
>>>>> try to increase the height of vertically spanned cells (by setting the
>>>>> height property to 2em) and you will see what I mean.
>>>>>
>>>>> Pascal
>>>>>
>>>>> Le 13/09/2010 22:39, Alexey Neyman a écrit :
>>>>>>     <fo:table table-layout="fixed" width="100%"
>>>>>>
>>>>>>       border-top="solid black 0.5pt" border-left="solid black 0.5pt">
>>>>>>
>>>>>>      <fo:table-body>
>>>>>>
>>>>>>       <fo:table-row>
>>>>>>
>>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>>>>>
>>>>>>          border-right="solid black 0.5pt"
>>>>>>          number-rows-spanned="2"
>>>>>>          number-columns-spanned="2">
>>>>>>
>>>>>>         <fo:block>A</fo:block>
>>>>>>
>>>>>>        </fo:table-cell>
>>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>>>>>
>>>>>>          border-right="solid black 0.5pt">
>>>>>>
>>>>>>         <fo:block>B</fo:block>
>>>>>>
>>>>>>        </fo:table-cell>
>>>>>>
>>>>>>       </fo:table-row>
>>>>>>       <fo:table-row>
>>>>>>
>>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>>>>>
>>>>>>          border-right="solid black 0.5pt" number-rows-spanned="2">
>>>>>>
>>>>>>         <fo:block>C</fo:block>
>>>>>>
>>>>>>        </fo:table-cell>
>>>>>>
>>>>>>       </fo:table-row>
>>>>>>       <fo:table-row>
>>>>>>
>>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>>>>>
>>>>>>          border-right="solid black 0.5pt">
>>>>>>
>>>>>>         <fo:block>D</fo:block>
>>>>>>
>>>>>>        </fo:table-cell>
>>>>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>>>>>
>>>>>>          border-right="solid black 0.5pt">
>>>>>>
>>>>>>         <fo:block>E</fo:block>
>>>>>>
>>>>>>        </fo:table-cell>
>>>>>>
>>>>>>       </fo:table-row>
>>>>>>
>>>>>>      </fo:table-body>
>>>>>>
>>>>>>     </fo:table>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
>>> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
>> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
> .
>


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


Re: FOP 0.95 - bug with tables?

Posted by Alexey Neyman <st...@att.net>.
Hi Pascal,

So, is "height" property supported on fo:table-row by FOP?

FOP compliance page says "yes" (not "partial") on "height" support, and XSL-FO 
specification says this property is applicable to fo:table-row. Yet, I cannot 
get it to work. Am I doing something wrong?

Regards,
Alexey.

On Wednesday, September 15, 2010 10:08:29 am Alexey Neyman wrote:
> Hi Pascal,
> 
> Just tried. While there is no exception, <fo:table-row min-height="1em">
> still does not work in FOP 1.0 (still no effect whatsoever). See quoted
> email as to why <fo:table-cell height="..."> is not sufficient to solve
> this issue.
> 
> Regards,
> Alexey.
> 
> On Wednesday, September 15, 2010 12:35:00 am Pascal Sancho wrote:
> >  Hi Alexey
> > 
> > this Exception issue seems to be fixed in FOP 1.0 (I've noticed in the
> > pdf attached to your initial post that you used FOP 0.95).
> > I suggest you to upgrade, at least min-height will work as expected
> > without any Exception.
> > 
> > Pascal
> > 
> > Le 14/09/2010 22:10, Alexey Neyman a écrit :
> > > Hi Pascal,
> > > 
> > > I see your point, although this advice is not particularly useful to
> > > what I am doing. As I mentioned, this table is generated by DocBook,
> > > and its templates for tables are probably the most convoluted in the
> > > whole stylesheet. I was trying to avoid heavy customizations of these
> > > templates.
> > > 
> > > Another issue is that what I really want is "min-height" property in
> > > this case: at XSLT stage, it is not known whether text inside the
> > > table cell will occupy 1, 2, 3 or 15 rows. I tried using min-height in
> > > the test case I posted before, but this causes an exception in FOP
> > > (see below). According to spec, using min-height is perfectly legal:
> > > it should set minimum height, while retaining optimum and maximum
> > > height as "auto".
> > > 
> > > An finally, what you suggested won't work if another cell is more than
> > > 1 row. With the example I posted:
> > > 
> > > AB
> > > AC
> > > DC
> > > 
> > > If I set height to 2em, it looks okay. But, if cell B contains a text
> > > that wraps into 2nd line, the table again looks as
> > > 
> > > AB
> > > DC
> > > 
> > > but now the whole row containing C and D cells is 2em in height. Given
> > > that DocBook stylesheet does not know how many lines of text there will
> > > be in each cell - that is determined by FO processor - I cannot
> > > calculate the height value beforehand.
> > > 
> > > So, I tried to set height/min-height on a fo:table-row instead. Setting
> > > min-height= on fo:table-row results in a different exception (also, see
> > > below). Setting height= on fo:table-row does not have any effect at
> > > all. According to XSL-FO spec, block-progression-dimension property
> > > (that is set through height property) is allowed on fo:table-row. Is
> > > this a FOP bug/missing feature?
> > > 
> > > Regards,
> > > Alexey.
> > > 
> > > Exception with min-height= on fo:table-cell:
> > > ---->8----->8----->8----->8----->8----->8----->8
> > > Sep 14, 2010 12:37:47 PM org.apache.fop.cli.Main startFOP
> > > SEVERE: Exception
> > > java.lang.NullPointerException
> > > 
> > >         at
> > >         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
> > >         1 7) at
> > >         org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
> > >         at org.apache.fop.cli.Main.startFOP(Main.java:166)
> > >         at org.apache.fop.cli.Main.main(Main.java:197)
> > > 
> > > Caused by: java.lang.NullPointerException
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(
> > > Ro wGroupLayoutManager.java:165)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForR
> > > ow Group(RowGroupLayoutManager.java:127)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElemen
> > > ts (RowGroupLayoutManager.java:60)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElemen
> > > ts ForRowIterator(TableContentLayoutManager.java:220)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthEl
> > > em ents(TableContentLayoutManager.java:172)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(
> > > Ta bleLayoutManager.java:247)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElement
> > > s( BlockStackingLayoutManager.java:294)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockL
> > > ay outManager.java:116)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLay
> > > ou tManager.java:107)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.j
> > > av a:145)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreak
> > > er .java:552)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:
> > > 13 7)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
> > > 30 2)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
> > > 26 4)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageS
> > > eq uenceLayoutManager.java:106)
> > > 
> > >         at
> > > 
> > > org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.jav
> > > a: 234)
> > > 
> > >         at
> > > 
> > > org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:1
> > > 23 )
> > > 
> > >         at
> > > 
> > > org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.
> > > ja va:340)
> > > 
> > >         at
> > >         org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:1
> > >         6 9) at
> > > 
> > > org.apache.xalan.transformer.TransformerIdentityImpl.endElement(Transfo
> > > rm erIdentityImpl.java:1102)
> > > 
> > >         at
> > >         org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> > > 
> > > Source)
> > > 
> > >         at
> > >         org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown
> > > 
> > > Source)
> > > 
> > >         at
> > > 
> > > org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
> > > Source)
> > > 
> > >         at
> > > 
> > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDi
> > > sp atcher.dispatch(Unknown Source)
> > > 
> > >         at
> > > 
> > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkn
> > > ow n Source)
> > > 
> > >         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > >         Source) at
> > >         org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > >         Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown
> > >         Source) at
> > >         org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > >         Source) at
> > >         org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknow
> > >         n
> > > 
> > > Source)
> > > 
> > >         at
> > > 
> > > org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transfor
> > > me rIdentityImpl.java:485)
> > > 
> > >         at
> > >         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
> > >         1 4) ... 3 more
> > > 
> > > ---->8----->8----->8----->8----->8----->8----->8
> > > 
> > > 
> > > Exception with min-height= on fo:table-row:
> > > ---->8----->8----->8----->8----->8----->8----->8
> > > Sep 14, 2010 12:53:10 PM org.apache.fop.cli.Main startFOP
> > > SEVERE: Exception
> > > java.lang.NullPointerException
> > > 
> > >         at
> > >         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
> > >         1 7) at
> > >         org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
> > >         at org.apache.fop.cli.Main.startFOP(Main.java:166)
> > >         at org.apache.fop.cli.Main.main(Main.java:197)
> > > 
> > > Caused by: java.lang.NullPointerException
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.MinOptMaxUtil.toMinOptMax(MinOptMaxUtil.java:1
> > > 06 )
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(
> > > Ro wGroupLayoutManager.java:155)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForR
> > > ow Group(RowGroupLayoutManager.java:127)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElemen
> > > ts (RowGroupLayoutManager.java:60)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElemen
> > > ts ForRowIterator(TableContentLayoutManager.java:220)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthEl
> > > em ents(TableContentLayoutManager.java:172)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(
> > > Ta bleLayoutManager.java:247)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElement
> > > s( BlockStackingLayoutManager.java:294)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockL
> > > ay outManager.java:116)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLay
> > > ou tManager.java:107)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.j
> > > av a:145)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreak
> > > er .java:552)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:
> > > 13 7)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
> > > 30 2)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:
> > > 26 4)
> > > 
> > >         at
> > > 
> > > org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageS
> > > eq uenceLayoutManager.java:106)
> > > 
> > >         at
> > > 
> > > org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.jav
> > > a: 234)
> > > 
> > >         at
> > > 
> > > org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:1
> > > 23 )
> > > 
> > >         at
> > > 
> > > org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.
> > > ja va:340)
> > > 
> > >         at
> > >         org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:1
> > >         6 9) at
> > > 
> > > org.apache.xalan.transformer.TransformerIdentityImpl.endElement(Transfo
> > > rm erIdentityImpl.java:1102)
> > > 
> > >         at
> > >         org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> > > 
> > > Source)
> > > 
> > >         at
> > >         org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown
> > > 
> > > Source)
> > > 
> > >         at
> > > 
> > > org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
> > > Source)
> > > 
> > >         at
> > > 
> > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDi
> > > sp atcher.dispatch(Unknown Source)
> > > 
> > >         at
> > > 
> > > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkn
> > > ow n Source)
> > > 
> > >         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > >         Source) at
> > >         org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> > >         Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown
> > >         Source) at
> > >         org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> > >         Source) at
> > >         org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknow
> > >         n
> > > 
> > > Source)
> > > 
> > >         at
> > > 
> > > org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transfor
> > > me rIdentityImpl.java:485)
> > > 
> > >         at
> > >         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:2
> > >         1 4) ... 3 more
> > > 
> > > ---->8----->8----->8----->8----->8----->8----->8
> > > 
> > > On Tuesday, September 14, 2010 01:04:02 am Pascal Sancho wrote:
> > >>  Hi,
> > >> 
> > >> I think the behaviour is correct here:
> > >> Cells height is not sufficient to see the effect you want.
> > >> try to increase the height of vertically spanned cells (by setting the
> > >> height property to 2em) and you will see what I mean.
> > >> 
> > >> Pascal
> > >> 
> > >> Le 13/09/2010 22:39, Alexey Neyman a écrit :
> > >>>     <fo:table table-layout="fixed" width="100%"
> > >>>     
> > >>>       border-top="solid black 0.5pt" border-left="solid black 0.5pt">
> > >>>      
> > >>>      <fo:table-body>
> > >>>      
> > >>>       <fo:table-row>
> > >>>       
> > >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> > >>> 	 
> > >>> 	 border-right="solid black 0.5pt"
> > >>> 	 number-rows-spanned="2"
> > >>> 	 number-columns-spanned="2">
> > >>> 	
> > >>> 	<fo:block>A</fo:block>
> > >>> 	
> > >>>        </fo:table-cell>
> > >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> > >>> 	 
> > >>> 	 border-right="solid black 0.5pt">
> > >>> 	
> > >>> 	<fo:block>B</fo:block>
> > >>> 	
> > >>>        </fo:table-cell>
> > >>>       
> > >>>       </fo:table-row>
> > >>>       <fo:table-row>
> > >>>       
> > >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> > >>> 	 
> > >>> 	 border-right="solid black 0.5pt" number-rows-spanned="2">
> > >>> 	
> > >>> 	<fo:block>C</fo:block>
> > >>> 	
> > >>>        </fo:table-cell>
> > >>>       
> > >>>       </fo:table-row>
> > >>>       <fo:table-row>
> > >>>       
> > >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> > >>> 	 
> > >>> 	 border-right="solid black 0.5pt">
> > >>> 	
> > >>> 	<fo:block>D</fo:block>
> > >>> 	
> > >>>        </fo:table-cell>
> > >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> > >>> 	 
> > >>> 	 border-right="solid black 0.5pt">
> > >>> 	
> > >>> 	<fo:block>E</fo:block>
> > >>> 	
> > >>>        </fo:table-cell>
> > >>>       
> > >>>       </fo:table-row>
> > >>>      
> > >>>      </fo:table-body>
> > >>>     
> > >>>     </fo:table>
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
> > For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

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


Re: FOP 0.95 - bug with tables?

Posted by Alexey Neyman <st...@att.net>.
Hi Pascal,

Just tried. While there is no exception, <fo:table-row min-height="1em"> still 
does not work in FOP 1.0 (still no effect whatsoever). See quoted email as to 
why <fo:table-cell height="..."> is not sufficient to solve this issue.

Regards,
Alexey.

On Wednesday, September 15, 2010 12:35:00 am Pascal Sancho wrote:
>  Hi Alexey
> this Exception issue seems to be fixed in FOP 1.0 (I've noticed in the
> pdf attached to your initial post that you used FOP 0.95).
> I suggest you to upgrade, at least min-height will work as expected
> without any Exception.
> 
> Pascal
> 
> Le 14/09/2010 22:10, Alexey Neyman a écrit :
> > Hi Pascal,
> > 
> > I see your point, although this advice is not particularly useful to what
> > I am doing. As I mentioned, this table is generated by DocBook, and its
> > templates for tables are probably the most convoluted in the whole
> > stylesheet. I was trying to avoid heavy customizations of these
> > templates.
> > 
> > Another issue is that what I really want is "min-height" property in this
> > case: at XSLT stage, it is not known whether text inside the table cell
> > will occupy 1, 2, 3 or 15 rows. I tried using min-height in the test
> > case I posted before, but this causes an exception in FOP (see below).
> > According to spec, using min-height is perfectly legal: it should set
> > minimum height, while retaining optimum and maximum height as "auto".
> > 
> > An finally, what you suggested won't work if another cell is more than 1
> > row. With the example I posted:
> > 
> > AB
> > AC
> > DC
> > 
> > If I set height to 2em, it looks okay. But, if cell B contains a text
> > that wraps into 2nd line, the table again looks as
> > 
> > AB
> > DC
> > 
> > but now the whole row containing C and D cells is 2em in height. Given
> > that DocBook stylesheet does not know how many lines of text there will
> > be in each cell - that is determined by FO processor - I cannot
> > calculate the height value beforehand.
> > 
> > So, I tried to set height/min-height on a fo:table-row instead. Setting
> > min-height= on fo:table-row results in a different exception (also, see
> > below). Setting height= on fo:table-row does not have any effect at all.
> > According to XSL-FO spec, block-progression-dimension property (that is
> > set through height property) is allowed on fo:table-row. Is this a FOP
> > bug/missing feature?
> > 
> > Regards,
> > Alexey.
> > 
> > Exception with min-height= on fo:table-cell:
> > ---->8----->8----->8----->8----->8----->8----->8
> > Sep 14, 2010 12:37:47 PM org.apache.fop.cli.Main startFOP
> > SEVERE: Exception
> > java.lang.NullPointerException
> > 
> >         at
> >         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:21
> >         7) at
> >         org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
> >         at org.apache.fop.cli.Main.startFOP(Main.java:166)
> >         at org.apache.fop.cli.Main.main(Main.java:197)
> > 
> > Caused by: java.lang.NullPointerException
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(Ro
> > wGroupLayoutManager.java:165)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForRow
> > Group(RowGroupLayoutManager.java:127)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElements
> > (RowGroupLayoutManager.java:60)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElements
> > ForRowIterator(TableContentLayoutManager.java:220)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthElem
> > ents(TableContentLayoutManager.java:172)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(Ta
> > bleLayoutManager.java:247)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(
> > BlockStackingLayoutManager.java:294)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLay
> > outManager.java:116)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayou
> > tManager.java:107)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.jav
> > a:145)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker
> > .java:552)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:13
> > 7)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:30
> > 2)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:26
> > 4)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSeq
> > uenceLayoutManager.java:106)
> > 
> >         at
> > 
> > org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:
> > 234)
> > 
> >         at
> > 
> > org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:123
> > )
> > 
> >         at
> > 
> > org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.ja
> > va:340)
> > 
> >         at
> >         org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:16
> >         9) at
> > 
> > org.apache.xalan.transformer.TransformerIdentityImpl.endElement(Transform
> > erIdentityImpl.java:1102)
> > 
> >         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> > 
> > Source)
> > 
> >         at org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown
> > 
> > Source)
> > 
> >         at
> > 
> > org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
> > Source)
> > 
> >         at
> > 
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDisp
> > atcher.dispatch(Unknown Source)
> > 
> >         at
> > 
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknow
> > n Source)
> > 
> >         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> >         Source) at
> >         org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> >         Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown
> >         Source) at
> >         org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> >         Source) at
> >         org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
> > 
> > Source)
> > 
> >         at
> > 
> > org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transforme
> > rIdentityImpl.java:485)
> > 
> >         at
> >         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:21
> >         4) ... 3 more
> > 
> > ---->8----->8----->8----->8----->8----->8----->8
> > 
> > 
> > Exception with min-height= on fo:table-row:
> > ---->8----->8----->8----->8----->8----->8----->8
> > Sep 14, 2010 12:53:10 PM org.apache.fop.cli.Main startFOP
> > SEVERE: Exception
> > java.lang.NullPointerException
> > 
> >         at
> >         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:21
> >         7) at
> >         org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
> >         at org.apache.fop.cli.Main.startFOP(Main.java:166)
> >         at org.apache.fop.cli.Main.main(Main.java:197)
> > 
> > Caused by: java.lang.NullPointerException
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.MinOptMaxUtil.toMinOptMax(MinOptMaxUtil.java:106
> > )
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(Ro
> > wGroupLayoutManager.java:155)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForRow
> > Group(RowGroupLayoutManager.java:127)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElements
> > (RowGroupLayoutManager.java:60)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElements
> > ForRowIterator(TableContentLayoutManager.java:220)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthElem
> > ents(TableContentLayoutManager.java:172)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(Ta
> > bleLayoutManager.java:247)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(
> > BlockStackingLayoutManager.java:294)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLay
> > outManager.java:116)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayou
> > tManager.java:107)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.jav
> > a:145)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker
> > .java:552)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:13
> > 7)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:30
> > 2)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:26
> > 4)
> > 
> >         at
> > 
> > org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSeq
> > uenceLayoutManager.java:106)
> > 
> >         at
> > 
> > org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:
> > 234)
> > 
> >         at
> > 
> > org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:123
> > )
> > 
> >         at
> > 
> > org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.ja
> > va:340)
> > 
> >         at
> >         org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:16
> >         9) at
> > 
> > org.apache.xalan.transformer.TransformerIdentityImpl.endElement(Transform
> > erIdentityImpl.java:1102)
> > 
> >         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> > 
> > Source)
> > 
> >         at org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown
> > 
> > Source)
> > 
> >         at
> > 
> > org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
> > Source)
> > 
> >         at
> > 
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDisp
> > atcher.dispatch(Unknown Source)
> > 
> >         at
> > 
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknow
> > n Source)
> > 
> >         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> >         Source) at
> >         org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> >         Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown
> >         Source) at
> >         org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
> >         Source) at
> >         org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
> > 
> > Source)
> > 
> >         at
> > 
> > org.apache.xalan.transformer.TransformerIdentityImpl.transform(Transforme
> > rIdentityImpl.java:485)
> > 
> >         at
> >         org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:21
> >         4) ... 3 more
> > 
> > ---->8----->8----->8----->8----->8----->8----->8
> > 
> > On Tuesday, September 14, 2010 01:04:02 am Pascal Sancho wrote:
> >>  Hi,
> >> 
> >> I think the behaviour is correct here:
> >> Cells height is not sufficient to see the effect you want.
> >> try to increase the height of vertically spanned cells (by setting the
> >> height property to 2em) and you will see what I mean.
> >> 
> >> Pascal
> >> 
> >> Le 13/09/2010 22:39, Alexey Neyman a écrit :
> >>>     <fo:table table-layout="fixed" width="100%"
> >>>     
> >>>       border-top="solid black 0.5pt" border-left="solid black 0.5pt">
> >>>      
> >>>      <fo:table-body>
> >>>      
> >>>       <fo:table-row>
> >>>       
> >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>> 	 
> >>> 	 border-right="solid black 0.5pt"
> >>> 	 number-rows-spanned="2"
> >>> 	 number-columns-spanned="2">
> >>> 	
> >>> 	<fo:block>A</fo:block>
> >>> 	
> >>>        </fo:table-cell>
> >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>> 	 
> >>> 	 border-right="solid black 0.5pt">
> >>> 	
> >>> 	<fo:block>B</fo:block>
> >>> 	
> >>>        </fo:table-cell>
> >>>       
> >>>       </fo:table-row>
> >>>       <fo:table-row>
> >>>       
> >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>> 	 
> >>> 	 border-right="solid black 0.5pt" number-rows-spanned="2">
> >>> 	
> >>> 	<fo:block>C</fo:block>
> >>> 	
> >>>        </fo:table-cell>
> >>>       
> >>>       </fo:table-row>
> >>>       <fo:table-row>
> >>>       
> >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>> 	 
> >>> 	 border-right="solid black 0.5pt">
> >>> 	
> >>> 	<fo:block>D</fo:block>
> >>> 	
> >>>        </fo:table-cell>
> >>>        <fo:table-cell border-bottom="solid black 0.5pt"
> >>> 	 
> >>> 	 border-right="solid black 0.5pt">
> >>> 	
> >>> 	<fo:block>E</fo:block>
> >>> 	
> >>>        </fo:table-cell>
> >>>       
> >>>       </fo:table-row>
> >>>      
> >>>      </fo:table-body>
> >>>     
> >>>     </fo:table>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

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


Re: FOP 0.95 - bug with tables?

Posted by Pascal Sancho <pa...@takoma.fr>.
 Hi Alexey
this Exception issue seems to be fixed in FOP 1.0 (I've noticed in the
pdf attached to your initial post that you used FOP 0.95).
I suggest you to upgrade, at least min-height will work as expected
without any Exception.

Pascal

Le 14/09/2010 22:10, Alexey Neyman a écrit :
> Hi Pascal,
>
> I see your point, although this advice is not particularly useful to what I am 
> doing. As I mentioned, this table is generated by DocBook, and its templates 
> for tables are probably the most convoluted in the whole stylesheet. I was 
> trying to avoid heavy customizations of these templates.
>
> Another issue is that what I really want is "min-height" property in this 
> case: at XSLT stage, it is not known whether text inside the table cell will 
> occupy 1, 2, 3 or 15 rows. I tried using min-height in the test case I posted 
> before, but this causes an exception in FOP (see below). According to spec, 
> using min-height is perfectly legal: it should set minimum height, while 
> retaining optimum and maximum height as "auto".
>
> An finally, what you suggested won't work if another cell is more than 1 row. 
> With the example I posted:
>
> AB
> AC
> DC
>
> If I set height to 2em, it looks okay. But, if cell B contains a text that 
> wraps into 2nd line, the table again looks as
>
> AB
> DC
>
> but now the whole row containing C and D cells is 2em in height. Given that 
> DocBook stylesheet does not know how many lines of text there will be in each 
> cell - that is determined by FO processor - I cannot calculate the height 
> value beforehand.
>
> So, I tried to set height/min-height on a fo:table-row instead. Setting
> min-height= on fo:table-row results in a different exception (also, see 
> below). Setting height= on fo:table-row does not have any effect at all. 
> According to XSL-FO spec, block-progression-dimension property (that is set 
> through height property) is allowed on fo:table-row. Is this a FOP bug/missing 
> feature?
>
> Regards,
> Alexey.
>
> Exception with min-height= on fo:table-cell:
> ---->8----->8----->8----->8----->8----->8----->8
> Sep 14, 2010 12:37:47 PM org.apache.fop.cli.Main startFOP
> SEVERE: Exception
> java.lang.NullPointerException
>         at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:217)
>         at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
>         at org.apache.fop.cli.Main.startFOP(Main.java:166)
>         at org.apache.fop.cli.Main.main(Main.java:197)
> Caused by: java.lang.NullPointerException
>         at 
> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(RowGroupLayoutManager.java:165)
>         at 
> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForRowGroup(RowGroupLayoutManager.java:127)
>         at 
> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElements(RowGroupLayoutManager.java:60)
>         at 
> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElementsForRowIterator(TableContentLayoutManager.java:220)
>         at 
> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthElements(TableContentLayoutManager.java:172)
>         at 
> org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(TableLayoutManager.java:247)
>         at 
> org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:294)
>         at 
> org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:116)
>         at 
> org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:107)
>         at 
> org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:145)
>         at 
> org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:552)
>         at 
> org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:137)
>         at 
> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:302)
>         at 
> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:264)
>         at 
> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:106)
>         at 
> org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:234)
>         at 
> org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:123)
>         at 
> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:340)
>         at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:169)
>         at 
> org.apache.xalan.transformer.TransformerIdentityImpl.endElement(TransformerIdentityImpl.java:1102)
>         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>         at org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>         at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
> Source)
>         at 
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
>         at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
>         ... 3 more
> ---->8----->8----->8----->8----->8----->8----->8
>
>
> Exception with min-height= on fo:table-row:
> ---->8----->8----->8----->8----->8----->8----->8
> Sep 14, 2010 12:53:10 PM org.apache.fop.cli.Main startFOP
> SEVERE: Exception
> java.lang.NullPointerException
>         at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:217)
>         at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
>         at org.apache.fop.cli.Main.startFOP(Main.java:166)
>         at org.apache.fop.cli.Main.main(Main.java:197)
> Caused by: java.lang.NullPointerException
>         at 
> org.apache.fop.layoutmgr.MinOptMaxUtil.toMinOptMax(MinOptMaxUtil.java:106)
>         at 
> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(RowGroupLayoutManager.java:155)
>         at 
> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForRowGroup(RowGroupLayoutManager.java:127)
>         at 
> org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElements(RowGroupLayoutManager.java:60)
>         at 
> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElementsForRowIterator(TableContentLayoutManager.java:220)
>         at 
> org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthElements(TableContentLayoutManager.java:172)
>         at 
> org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(TableLayoutManager.java:247)
>         at 
> org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:294)
>         at 
> org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:116)
>         at 
> org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:107)
>         at 
> org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:145)
>         at 
> org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:552)
>         at 
> org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:137)
>         at 
> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:302)
>         at 
> org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:264)
>         at 
> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:106)
>         at 
> org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:234)
>         at 
> org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:123)
>         at 
> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:340)
>         at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:169)
>         at 
> org.apache.xalan.transformer.TransformerIdentityImpl.endElement(TransformerIdentityImpl.java:1102)
>         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>         at org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>         at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
> Source)
>         at 
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
>         at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
>         ... 3 more
> ---->8----->8----->8----->8----->8----->8----->8
>
> On Tuesday, September 14, 2010 01:04:02 am Pascal Sancho wrote:
>>  Hi,
>> I think the behaviour is correct here:
>> Cells height is not sufficient to see the effect you want.
>> try to increase the height of vertically spanned cells (by setting the
>> height property to 2em) and you will see what I mean.
>>
>> Pascal
>>
>> Le 13/09/2010 22:39, Alexey Neyman a écrit :
>>>     <fo:table table-layout="fixed" width="100%"
>>>     
>>>       border-top="solid black 0.5pt" border-left="solid black 0.5pt">
>>>      
>>>      <fo:table-body>
>>>      
>>>       <fo:table-row>
>>>       
>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>> 	 
>>> 	 border-right="solid black 0.5pt"
>>> 	 number-rows-spanned="2"
>>> 	 number-columns-spanned="2">
>>> 	
>>> 	<fo:block>A</fo:block>
>>> 	
>>>        </fo:table-cell>
>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>> 	 
>>> 	 border-right="solid black 0.5pt">
>>> 	
>>> 	<fo:block>B</fo:block>
>>> 	
>>>        </fo:table-cell>
>>>       
>>>       </fo:table-row>
>>>       <fo:table-row>
>>>       
>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>> 	 
>>> 	 border-right="solid black 0.5pt" number-rows-spanned="2">
>>> 	
>>> 	<fo:block>C</fo:block>
>>> 	
>>>        </fo:table-cell>
>>>       
>>>       </fo:table-row>
>>>       <fo:table-row>
>>>       
>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>> 	 
>>> 	 border-right="solid black 0.5pt">
>>> 	
>>> 	<fo:block>D</fo:block>
>>> 	
>>>        </fo:table-cell>
>>>        <fo:table-cell border-bottom="solid black 0.5pt"
>>> 	 
>>> 	 border-right="solid black 0.5pt">
>>> 	
>>> 	<fo:block>E</fo:block>
>>> 	
>>>        </fo:table-cell>
>>>       
>>>       </fo:table-row>
>>>      
>>>      </fo:table-body>
>>>     
>>>     </fo:table>


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


Re: FOP 0.95 - bug with tables?

Posted by Alexey Neyman <st...@att.net>.
Hi Pascal,

I see your point, although this advice is not particularly useful to what I am 
doing. As I mentioned, this table is generated by DocBook, and its templates 
for tables are probably the most convoluted in the whole stylesheet. I was 
trying to avoid heavy customizations of these templates.

Another issue is that what I really want is "min-height" property in this 
case: at XSLT stage, it is not known whether text inside the table cell will 
occupy 1, 2, 3 or 15 rows. I tried using min-height in the test case I posted 
before, but this causes an exception in FOP (see below). According to spec, 
using min-height is perfectly legal: it should set minimum height, while 
retaining optimum and maximum height as "auto".

An finally, what you suggested won't work if another cell is more than 1 row. 
With the example I posted:

AB
AC
DC

If I set height to 2em, it looks okay. But, if cell B contains a text that 
wraps into 2nd line, the table again looks as

AB
DC

but now the whole row containing C and D cells is 2em in height. Given that 
DocBook stylesheet does not know how many lines of text there will be in each 
cell - that is determined by FO processor - I cannot calculate the height 
value beforehand.

So, I tried to set height/min-height on a fo:table-row instead. Setting
min-height= on fo:table-row results in a different exception (also, see 
below). Setting height= on fo:table-row does not have any effect at all. 
According to XSL-FO spec, block-progression-dimension property (that is set 
through height property) is allowed on fo:table-row. Is this a FOP bug/missing 
feature?

Regards,
Alexey.

Exception with min-height= on fo:table-cell:
---->8----->8----->8----->8----->8----->8----->8
Sep 14, 2010 12:37:47 PM org.apache.fop.cli.Main startFOP
SEVERE: Exception
java.lang.NullPointerException
        at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:217)
        at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
        at org.apache.fop.cli.Main.startFOP(Main.java:166)
        at org.apache.fop.cli.Main.main(Main.java:197)
Caused by: java.lang.NullPointerException
        at 
org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(RowGroupLayoutManager.java:165)
        at 
org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForRowGroup(RowGroupLayoutManager.java:127)
        at 
org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElements(RowGroupLayoutManager.java:60)
        at 
org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElementsForRowIterator(TableContentLayoutManager.java:220)
        at 
org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthElements(TableContentLayoutManager.java:172)
        at 
org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(TableLayoutManager.java:247)
        at 
org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:294)
        at 
org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:116)
        at 
org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:107)
        at 
org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:145)
        at 
org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:552)
        at 
org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:137)
        at 
org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:302)
        at 
org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:264)
        at 
org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:106)
        at 
org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:234)
        at 
org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:123)
        at 
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:340)
        at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:169)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.endElement(TransformerIdentityImpl.java:1102)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
        at org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown 
Source)
        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
Source)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
        at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
        ... 3 more
---->8----->8----->8----->8----->8----->8----->8


Exception with min-height= on fo:table-row:
---->8----->8----->8----->8----->8----->8----->8
Sep 14, 2010 12:53:10 PM org.apache.fop.cli.Main startFOP
SEVERE: Exception
java.lang.NullPointerException
        at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:217)
        at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:125)
        at org.apache.fop.cli.Main.startFOP(Main.java:166)
        at org.apache.fop.cli.Main.main(Main.java:197)
Caused by: java.lang.NullPointerException
        at 
org.apache.fop.layoutmgr.MinOptMaxUtil.toMinOptMax(MinOptMaxUtil.java:106)
        at 
org.apache.fop.layoutmgr.table.RowGroupLayoutManager.computeRowHeights(RowGroupLayoutManager.java:155)
        at 
org.apache.fop.layoutmgr.table.RowGroupLayoutManager.createElementsForRowGroup(RowGroupLayoutManager.java:127)
        at 
org.apache.fop.layoutmgr.table.RowGroupLayoutManager.getNextKnuthElements(RowGroupLayoutManager.java:60)
        at 
org.apache.fop.layoutmgr.table.TableContentLayoutManager.getKnuthElementsForRowIterator(TableContentLayoutManager.java:220)
        at 
org.apache.fop.layoutmgr.table.TableContentLayoutManager.getNextKnuthElements(TableContentLayoutManager.java:172)
        at 
org.apache.fop.layoutmgr.table.TableLayoutManager.getNextKnuthElements(TableLayoutManager.java:247)
        at 
org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:294)
        at 
org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:116)
        at 
org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:107)
        at 
org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:145)
        at 
org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:552)
        at 
org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:137)
        at 
org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:302)
        at 
org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:264)
        at 
org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:106)
        at 
org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:234)
        at 
org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:123)
        at 
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:340)
        at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:169)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.endElement(TransformerIdentityImpl.java:1102)
        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
        at org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown 
Source)
        at 
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
        at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
Source)
        at 
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
        at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:214)
        ... 3 more
---->8----->8----->8----->8----->8----->8----->8

On Tuesday, September 14, 2010 01:04:02 am Pascal Sancho wrote:
>  Hi,
> I think the behaviour is correct here:
> Cells height is not sufficient to see the effect you want.
> try to increase the height of vertically spanned cells (by setting the
> height property to 2em) and you will see what I mean.
> 
> Pascal
> 
> Le 13/09/2010 22:39, Alexey Neyman a écrit :
> >     <fo:table table-layout="fixed" width="100%"
> >     
> >       border-top="solid black 0.5pt" border-left="solid black 0.5pt">
> >      
> >      <fo:table-body>
> >      
> >       <fo:table-row>
> >       
> >        <fo:table-cell border-bottom="solid black 0.5pt"
> > 	 
> > 	 border-right="solid black 0.5pt"
> > 	 number-rows-spanned="2"
> > 	 number-columns-spanned="2">
> > 	
> > 	<fo:block>A</fo:block>
> > 	
> >        </fo:table-cell>
> >        <fo:table-cell border-bottom="solid black 0.5pt"
> > 	 
> > 	 border-right="solid black 0.5pt">
> > 	
> > 	<fo:block>B</fo:block>
> > 	
> >        </fo:table-cell>
> >       
> >       </fo:table-row>
> >       <fo:table-row>
> >       
> >        <fo:table-cell border-bottom="solid black 0.5pt"
> > 	 
> > 	 border-right="solid black 0.5pt" number-rows-spanned="2">
> > 	
> > 	<fo:block>C</fo:block>
> > 	
> >        </fo:table-cell>
> >       
> >       </fo:table-row>
> >       <fo:table-row>
> >       
> >        <fo:table-cell border-bottom="solid black 0.5pt"
> > 	 
> > 	 border-right="solid black 0.5pt">
> > 	
> > 	<fo:block>D</fo:block>
> > 	
> >        </fo:table-cell>
> >        <fo:table-cell border-bottom="solid black 0.5pt"
> > 	 
> > 	 border-right="solid black 0.5pt">
> > 	
> > 	<fo:block>E</fo:block>
> > 	
> >        </fo:table-cell>
> >       
> >       </fo:table-row>
> >      
> >      </fo:table-body>
> >     
> >     </fo:table>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

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


Re: FOP 0.95 - bug with tables?

Posted by Pascal Sancho <pa...@takoma.fr>.
 Hi,
I think the behaviour is correct here:
Cells height is not sufficient to see the effect you want.
try to increase the height of vertically spanned cells (by setting the
height property to 2em) and you will see what I mean.

Pascal

Le 13/09/2010 22:39, Alexey Neyman a écrit :
>     <fo:table table-layout="fixed" width="100%"
>       border-top="solid black 0.5pt" border-left="solid black 0.5pt">
>      <fo:table-body>
>       <fo:table-row>
>        <fo:table-cell border-bottom="solid black 0.5pt"
> 	 border-right="solid black 0.5pt"
> 	 number-rows-spanned="2"
> 	 number-columns-spanned="2">
> 	<fo:block>A</fo:block>
>        </fo:table-cell>
>        <fo:table-cell border-bottom="solid black 0.5pt"
> 	 border-right="solid black 0.5pt">
> 	<fo:block>B</fo:block>
>        </fo:table-cell>
>       </fo:table-row>
>       <fo:table-row>
>        <fo:table-cell border-bottom="solid black 0.5pt"
> 	 border-right="solid black 0.5pt" number-rows-spanned="2">
> 	<fo:block>C</fo:block>
>        </fo:table-cell>
>       </fo:table-row>
>       <fo:table-row>
>        <fo:table-cell border-bottom="solid black 0.5pt"
> 	 border-right="solid black 0.5pt">
> 	<fo:block>D</fo:block>
>        </fo:table-cell>
>        <fo:table-cell border-bottom="solid black 0.5pt"
> 	 border-right="solid black 0.5pt">
> 	<fo:block>E</fo:block>
>        </fo:table-cell>
>       </fo:table-row>
>      </fo:table-body>
>     </fo:table>


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


Re: FOP 0.95 - bug with tables?

Posted by Alexey Neyman <an...@lnxw.com>.
Actually, test case can be reduced even more. Desired result:

AB
AC
DC

Essential XSL-FO code:

<fo:table>
 <fo:table-body>
  <fo:table-row>
   <fo:table-cell number-rows-spanned="2">
    <fo:block>A</fo:block>
   </fo:table-cell>
   <fo:table-cell>
    <fo:block>B</fo:block>
   </fo:table-cell>
  </fo:table-row>
  <fo:table-row>
   <fo:table-cel number-rows-spanned="2">
    <fo:block>C</fo:block>
   </fo:table-cell>
  </fo:table-row>
  <fo:table-row>
   <fo:table-cell>
    <fo:block>D</fo:block>
   </fo:table-cell>
  </fo:table-row>
 </fo:table-body>
</fo:table>

Got result (see attached 1.fo and 1.pdf):

AB
DC

Is it a bug?

Regards,
Alexey.


On Monday, September 13, 2010 01:39:06 pm Alexey Neyman wrote:
> Hi All,
> 
> I am trying to format a table with cells spanning as shown below:
> 
> AAB
> AAC
> DEC
> 
> To do this, I am using attached .fo file (it is actually a stripped-down
> DocBook-generated table). The essential piece is:
> 
> <fo:table>
>  <fo:table-body>
>   <fo:table-row>
>    <fo:table-cell number-rows-spanned="2" number-columns-spanned="2">
>     <fo:block>A</fo:block>
>    </fo:table-cell>
>    <fo:table-cell>
>     <fo:block>B</fo:block>
>    </fo:table-cell>
>   </fo:table-row>
>   <fo:table-row>
>    <fo:table-cell number-rows-spanned="2">
>     <fo:block>C</fo:block>
>    </fo:table-cell>
>   </fo:table-row>
>   <fo:table-row>
>    <fo:table-cell>
>     <fo:block>D</fo:block>
>    </fo:table-cell>
>    <fo:table-cell>
>     <fo:block>E</fo:block>
>    </fo:table-cell>
>   </fo:table-row>
>  </fo:table-body>
> </fo:table>
> 
> However, it gets rendered like this:
> 
> AAB
> DEC
> 
> (there is no row that includes both A-cell and C-cell). See the attached
> PDF. It looks like a bug; could somebody confirm and suggest a
> fix/workaround?
> 
> PS. Using FOP 0.95, Ubuntu 10.04.
> 
> Regards,
> Alexey.