Re: generating pdf fails depending on page layout order

2012-06-05 Thread Pascal Sancho

Hi,

Thanks, Rob.
I've added minimal test case and ref. to this thread.

Le 05/06/2012 02:20, Rob Sargent a écrit :

I've added issue #53358 - Insufficient space for line break causes error
on zero-length region-body.  My work-around is to conditionally define
the region-body of the gallery pages as:

xsl:when test=@layout-id = $loGallery6
xsl:variable name=gallery-top-margin10.99in/xsl:variable
xsl:variable name=prevpage select=position() - 1/
fo:simple-page-master page-height=11in
page-width=8.5in
xsl:attribute name=master-name
xsl:value-of select=concat('gallery6-page-', position())/
/xsl:attribute
xsl:choose
xsl:when test=(position() mod 2) = 0
xsl:attribute name=margin
xsl:value-of select=$leftGalleryMargins/
/xsl:attribute
xsl:choose
!-- We need to fake out 3up-followed-by-gallery situation --
xsl:when test=//pages/page[@pos = $prevpage and @layout-id =
$loThreeSide]
fo:region-body column-count=1 margin-top={$gallery-top-margin}

margin-left={$columnWidth3up}/
/xsl:when
xsl:otherwise
fo:region-body column-count=2 column-gap={$twoColumnGap}
background-color=orange

margin-top={$gallery-top-margin} margin-bottom=0.0in

margin-left={$outerMargin}in/
/xsl:otherwise
/xsl:choose
/xsl:when
xsl:otherwise
xsl:attribute name=margin
xsl:value-of select=$rightGalleryMargins/
/xsl:attribute
xsl:choose
xsl:when test=//pages/page[@pos = $prevpage and @layout-id =
$loThreeSide]
fo:region-body column-count=1 margin-top={$gallery-top-margin}

margin-left={$columnWidth3up}/
/xsl:when
xsl:otherwise
fo:region-body column-count=2 column-gap={$twoColumnGap}
background-color=orange

margin-top={$gallery-top-margin} margin-bottom=0.0in

margin-right={$outerMargin}in/
/xsl:otherwise
/xsl:choose
/xsl:otherwise
/xsl:choose
fo:region-before extent=11in precedence=true  !--
background-color=green --
xsl:attribute name=region-name
xsl:value-of select=concat('header-gallery6-page-', position())/
/xsl:attribute
/fo:region-before
/fo:simple-page-master
/xsl:when




On 06/04/2012 05:45 PM, Glenn Adams wrote:

ok, thanks, just wanted to check, as 0.001pt is exactly 1 millipoint
which is a bit of magic number in FOP, as it uses an integer
representation of millipoints in many computations, including the
epsilon in the bug I referred to below

On Mon, Jun 4, 2012 at 4:10 PM, Rob Sargent rsarg...@xmission.com
mailto:rsarg...@xmission.com wrote:

If I'm following along correctly, I don't think my issue is one of
rounding, rather one of actual layout /style/.  I run into trouble
when the next page isn't of the same region-body definition AND
has no room for text.  So far, with my conditional region-body
definition I'm able to bypass the issue Pascal would have me report.

Standing by,

rjs


On 06/04/2012 03:13 PM, Glenn Adams wrote:

before filing a new bug, please review

https://issues.apache.org/bugzilla/show_bug.cgi?id=51043

to see if the patch to that bug introduced the problem you are seeing

On Mon, Jun 4, 2012 at 2:07 PM, Rob Sargent
rsarg...@xmission.com mailto:rsarg...@xmission.com wrote:

I ran your fo with and without the + 0.001pt and indeed it
fails and works as you said it would.

Good news, however.  Following up on your to arrange it such
that the computed i-p-d for the content equals the one of
the next page, I am now creating region-body definitions for
the gallery page conditional on the preceding page layout
(three-side or not).  This seems to be working very well so far.

Would you still like me to submit the bug report.  I don't
feel the thread title here would be appropriate. Perhaps
Insufficient space for line break causes error on
zero-length region-body would be closer to the truth.

Thanks a ton for the work-around!  Saved the day, to be sure.

rjs



On 06/04/2012 02:05 AM, Pascal Sancho wrote:

Hi,

I have focused on the 1st issue I found. May be there are
other issues behind.

Le 01/06/2012 18:13, Rob Sargent a écrit :

Thanks Pascal,

Sort of glad to know it's not just me! Unfortunately
I don't think you
example minimal fo actually recreates my problem. I'm
trying to get the
gallery page to have NO text at all, whereas you
working example has
two line of text on the gallery page. The best I
have attained is a
single line of text on my gallery page by dialing in
the margin-top to
10.82in (10.83in generates the same exception, using
10.5 pt
   

Re: generating pdf fails depending on page layout order

2012-06-05 Thread Rob Sargent
I'm sorry.  Did I not include your + 0.001pt example in my bug report? 
I certainly tried to...


rjs

On 06/05/2012 01:37 AM, Pascal Sancho wrote:

Hi,

Thanks, Rob.
I've added minimal test case and ref. to this thread.

Le 05/06/2012 02:20, Rob Sargent a écrit :

I've added issue #53358 - Insufficient space for line break causes error
on zero-length region-body.  My work-around is to conditionally define
the region-body of the gallery pages as:

xsl:when test=@layout-id = $loGallery6
xsl:variable name=gallery-top-margin10.99in/xsl:variable
xsl:variable name=prevpage select=position() - 1/
fo:simple-page-master page-height=11in
page-width=8.5in
xsl:attribute name=master-name
xsl:value-of select=concat('gallery6-page-', position())/
/xsl:attribute
xsl:choose
xsl:when test=(position() mod 2) = 0
xsl:attribute name=margin
xsl:value-of select=$leftGalleryMargins/
/xsl:attribute
xsl:choose
!-- We need to fake out 3up-followed-by-gallery situation --
xsl:when test=//pages/page[@pos = $prevpage and @layout-id =
$loThreeSide]
fo:region-body column-count=1 margin-top={$gallery-top-margin}

margin-left={$columnWidth3up}/
/xsl:when
xsl:otherwise
fo:region-body column-count=2 column-gap={$twoColumnGap}
background-color=orange

margin-top={$gallery-top-margin} margin-bottom=0.0in

margin-left={$outerMargin}in/
/xsl:otherwise
/xsl:choose
/xsl:when
xsl:otherwise
xsl:attribute name=margin
xsl:value-of select=$rightGalleryMargins/
/xsl:attribute
xsl:choose
xsl:when test=//pages/page[@pos = $prevpage and @layout-id =
$loThreeSide]
fo:region-body column-count=1 margin-top={$gallery-top-margin}

margin-left={$columnWidth3up}/
/xsl:when
xsl:otherwise
fo:region-body column-count=2 column-gap={$twoColumnGap}
background-color=orange

margin-top={$gallery-top-margin} margin-bottom=0.0in

margin-right={$outerMargin}in/
/xsl:otherwise
/xsl:choose
/xsl:otherwise
/xsl:choose
fo:region-before extent=11in precedence=true  !--
background-color=green --
xsl:attribute name=region-name
xsl:value-of select=concat('header-gallery6-page-', position())/
/xsl:attribute
/fo:region-before
/fo:simple-page-master
/xsl:when




On 06/04/2012 05:45 PM, Glenn Adams wrote:

ok, thanks, just wanted to check, as 0.001pt is exactly 1 millipoint
which is a bit of magic number in FOP, as it uses an integer
representation of millipoints in many computations, including the
epsilon in the bug I referred to below

On Mon, Jun 4, 2012 at 4:10 PM, Rob Sargent rsarg...@xmission.com
mailto:rsarg...@xmission.com wrote:

If I'm following along correctly, I don't think my issue is one of
rounding, rather one of actual layout /style/.  I run into trouble
when the next page isn't of the same region-body definition AND
has no room for text.  So far, with my conditional region-body
definition I'm able to bypass the issue Pascal would have me 
report.


Standing by,

rjs


On 06/04/2012 03:13 PM, Glenn Adams wrote:

before filing a new bug, please review

https://issues.apache.org/bugzilla/show_bug.cgi?id=51043

to see if the patch to that bug introduced the problem you are 
seeing


On Mon, Jun 4, 2012 at 2:07 PM, Rob Sargent
rsarg...@xmission.com mailto:rsarg...@xmission.com wrote:

I ran your fo with and without the + 0.001pt and indeed it
fails and works as you said it would.

Good news, however.  Following up on your to arrange it such
that the computed i-p-d for the content equals the one of
the next page, I am now creating region-body definitions for
the gallery page conditional on the preceding page layout
(three-side or not).  This seems to be working very well so 
far.


Would you still like me to submit the bug report.  I don't
feel the thread title here would be appropriate. Perhaps
Insufficient space for line break causes error on
zero-length region-body would be closer to the truth.

Thanks a ton for the work-around!  Saved the day, to be sure.

rjs



On 06/04/2012 02:05 AM, Pascal Sancho wrote:

Hi,

I have focused on the 1st issue I found. May be there are
other issues behind.

Le 01/06/2012 18:13, Rob Sargent a écrit :

Thanks Pascal,

Sort of glad to know it's not just me! Unfortunately
I don't think you
example minimal fo actually recreates my problem. I'm
trying to get the
gallery page to have NO text at all, whereas you
working example has
two line of text on the gallery page. The best I
have attained is a
single line of text on my gallery page by dialing in
the margin-top to
10.82in (10.83in generates the same exception, using
10.5 pt

Re: generating pdf fails depending on page layout order

2012-06-04 Thread Rob Sargent
I ran your fo with and without the + 0.001pt and indeed it fails and 
works as you said it would.


Good news, however.  Following up on your to arrange it such that the 
computed i-p-d for the content equals the one of the next page, I am 
now creating region-body definitions for the gallery page conditional on 
the preceding page layout (three-side or not).  This seems to be working 
very well so far.


Would you still like me to submit the bug report.  I don't feel the 
thread title here would be appropriate. Perhaps Insufficient space for 
line break causes error on zero-length region-body would be closer to 
the truth.


Thanks a ton for the work-around!  Saved the day, to be sure.

rjs


On 06/04/2012 02:05 AM, Pascal Sancho wrote:

Hi,

I have focused on the 1st issue I found. May be there are other issues 
behind.


Le 01/06/2012 18:13, Rob Sargent a écrit :

Thanks Pascal,

Sort of glad to know it's not just me! Unfortunately I don't think you
example minimal fo actually recreates my problem. I'm trying to get the
gallery page to have NO text at all, whereas you working example has
two line of text on the gallery page. The best I have attained is a
single line of text on my gallery page by dialing in the margin-top to
10.82in (10.83in generates the same exception, using 10.5 pt
TimesNewRomanPSMT).


Hmm?
With the XSL-FO attached to my previous email FOP throws a 
FOPException, and produces no output.
I've set both font-size and line-height to 1in (on fo:root), and the 
available b-p-d of the 1st page body is less than 2in 
(page-height=11in - body/@margin-top=9in + 0.001pt), so there is 
no place for line break. Can you check again that you tried that example?



I should mention that in our production situation the textless gallery
pages work just fine, except when preceded by our three-side layout.
We have two symptoms: aside from the FOPException reported, in some
cases a single line of text appears on the gallery page. Since, as I've
said, I believe these two cases are related I have not generate the
'single line of text' example. That has it's own interesting story which
I will refrain from telling at this time, except to confess the actual
page-layout dimensions for the gallery pages:

fo:simple-page-master page-width=8.5in page-height=11in
master-name=gallery6-page-3 margin=0.0in 0.0in 0.6in 0.833in
fo:region-body margin-top=10.0in margin-right=0.70in
margin-bottom=0.40in column-gap=0.40in column-count=2 /
fo:region-before precedence=true extent=9.0in
region-name=header-gallery6-page-3 /
/fo:simple-page-master


for the body of gallery6-page-3:
b-p-d is 11in - 0 - 0.6in - 10in - 0.4in = 0,
so, in case of multi-line content, there is no room for line-break, 
that cause a FOP exception if i-p-d changes on next page (this is a 
FOP bug).


for each column:
i-p-d = (8.5in - 0 - 0.833in - -0.7in - 0.4in) / 2 = 3.2865in

If you leave a 0 b-p-d to force an empty page, you should ensure that 
computed i-p-d for the content (here each column) equals the one of 
the next page, the issue you are facing should not occur.



fo:simple-page-master page-width=8.5in page-height=11in
master-name=three-side-page-11 margin=0.0in 0.0in 0.6in 0.833in
fo:region-body margin-top=0.75in margin-right=4.3585in
column-count=1 /
fo:region-before region-name=default-right-header precedence=true
extent=0.50in /
fo:region-end extent=3.465in region-name=three-side-start-11 /
/fo:simple-page-master


Please advise as to how to procede. Happy to register the failure you've
isolated (though I don't understand why the fail case doesn't generate
one-line of text on the first page?).Should I enter another on the
negative interplay of the two page layouts?


On 06/01/2012 03:15 AM, Pascal Sancho wrote:

Hi Rob,

sure you are facing a bug:
when there is no room on 1 page to insert a line-break, then, if IPD
change on next page, the described FOPException is thrown.

See the attached minimal XSL-FO: when you remove the expression
 + 0.001pt from the margin-top value, it works like charm.

Can you please fill in a bug on FOP bug list, attaching this minimal
XSL-FO?

As a workaround, you should decrease the margin-top of your
simple-page-master gallery6-page-3 (leaving room for 2 * line-height,
and/or add a break-before on the %block% that come in 1st place of
your page 4.

Le 01/06/2012 04:00, Rob Sargent a écrit :

We're using FOP-1.0.

Admittedly it may be a stretch to call these simple page layouts but
the attached FOs show that the ordering of the page layouts can cause
the generation of the pdf to fail. The fo-fails.xml exists with

Caused by: java.lang.UnsupportedOperationException: Don't know how
to restart at positionNonLeafPos:927(Flow@61f93f69[@id=]],
NonLeafPos:399(BlockContainer@52ab9d99[@id=group-Normal Development
and Anatomy of the Cerebral Commissures]],
NonLeafPos:106(BlockContainer@e09d7b9[@id=]],
NonLeafPos:7(Block@58a2b90b[@id=]], LeafPos:-1(pos=29,
lm=Block@58a2b90b[@id=]])
at

Re: generating pdf fails depending on page layout order

2012-06-04 Thread Glenn Adams
before filing a new bug, please review

https://issues.apache.org/bugzilla/show_bug.cgi?id=51043

to see if the patch to that bug introduced the problem you are seeing

On Mon, Jun 4, 2012 at 2:07 PM, Rob Sargent rsarg...@xmission.com wrote:

 I ran your fo with and without the + 0.001pt and indeed it fails and
 works as you said it would.

 Good news, however.  Following up on your to arrange it such that the
 computed i-p-d for the content equals the one of the next page, I am now
 creating region-body definitions for the gallery page conditional on the
 preceding page layout (three-side or not).  This seems to be working very
 well so far.

 Would you still like me to submit the bug report.  I don't feel the thread
 title here would be appropriate. Perhaps Insufficient space for line break
 causes error on zero-length region-body would be closer to the truth.

 Thanks a ton for the work-around!  Saved the day, to be sure.

 rjs



 On 06/04/2012 02:05 AM, Pascal Sancho wrote:

 Hi,

 I have focused on the 1st issue I found. May be there are other issues
 behind.

 Le 01/06/2012 18:13, Rob Sargent a écrit :

 Thanks Pascal,

 Sort of glad to know it's not just me! Unfortunately I don't think you
 example minimal fo actually recreates my problem. I'm trying to get the
 gallery page to have NO text at all, whereas you working example has
 two line of text on the gallery page. The best I have attained is a
 single line of text on my gallery page by dialing in the margin-top to
 10.82in (10.83in generates the same exception, using 10.5 pt
 TimesNewRomanPSMT).


 Hmm?
 With the XSL-FO attached to my previous email FOP throws a FOPException,
 and produces no output.
 I've set both font-size and line-height to 1in (on fo:root), and the
 available b-p-d of the 1st page body is less than 2in (page-height=11in -
 body/@margin-top=9in + 0.001pt), so there is no place for line break. Can
 you check again that you tried that example?

  I should mention that in our production situation the textless gallery
 pages work just fine, except when preceded by our three-side layout.
 We have two symptoms: aside from the FOPException reported, in some
 cases a single line of text appears on the gallery page. Since, as I've
 said, I believe these two cases are related I have not generate the
 'single line of text' example. That has it's own interesting story which
 I will refrain from telling at this time, except to confess the actual
 page-layout dimensions for the gallery pages:

 fo:simple-page-master page-width=8.5in page-height=11in
 master-name=gallery6-page-3 margin=0.0in 0.0in 0.6in 0.833in
 fo:region-body margin-top=10.0in margin-right=0.70in
 margin-bottom=0.40in column-gap=0.40in column-count=2 /
 fo:region-before precedence=true extent=9.0in
 region-name=header-gallery6-**page-3 /
 /fo:simple-page-master


 for the body of gallery6-page-3:
 b-p-d is 11in - 0 - 0.6in - 10in - 0.4in = 0,
 so, in case of multi-line content, there is no room for line-break, that
 cause a FOP exception if i-p-d changes on next page (this is a FOP bug).

 for each column:
 i-p-d = (8.5in - 0 - 0.833in - -0.7in - 0.4in) / 2 = 3.2865in

 If you leave a 0 b-p-d to force an empty page, you should ensure that
 computed i-p-d for the content (here each column) equals the one of the
 next page, the issue you are facing should not occur.

  fo:simple-page-master page-width=8.5in page-height=11in
 master-name=three-side-page-**11 margin=0.0in 0.0in 0.6in 0.833in
 fo:region-body margin-top=0.75in margin-right=4.3585in
 column-count=1 /
 fo:region-before region-name=default-right-**header precedence=true
 extent=0.50in /
 fo:region-end extent=3.465in region-name=three-side-start-**11 /
 /fo:simple-page-master


 Please advise as to how to procede. Happy to register the failure you've
 isolated (though I don't understand why the fail case doesn't generate
 one-line of text on the first page?).Should I enter another on the
 negative interplay of the two page layouts?


 On 06/01/2012 03:15 AM, Pascal Sancho wrote:

 Hi Rob,

 sure you are facing a bug:
 when there is no room on 1 page to insert a line-break, then, if IPD
 change on next page, the described FOPException is thrown.

 See the attached minimal XSL-FO: when you remove the expression
  + 0.001pt from the margin-top value, it works like charm.

 Can you please fill in a bug on FOP bug list, attaching this minimal
 XSL-FO?

 As a workaround, you should decrease the margin-top of your
 simple-page-master gallery6-page-3 (leaving room for 2 * line-height,
 and/or add a break-before on the %block% that come in 1st place of
 your page 4.

 Le 01/06/2012 04:00, Rob Sargent a écrit :

 We're using FOP-1.0.

 Admittedly it may be a stretch to call these simple page layouts but
 the attached FOs show that the ordering of the page layouts can cause
 the generation of the pdf to fail. The fo-fails.xml exists with

 Caused by: java.lang.**UnsupportedOperationException: Don't know how
 to restart at 

Re: generating pdf fails depending on page layout order

2012-06-04 Thread Rob Sargent
If I'm following along correctly, I don't think my issue is one of 
rounding, rather one of actual layout /style/.  I run into trouble when 
the next page isn't of the same region-body definition AND has no room 
for text.  So far, with my conditional region-body definition I'm able 
to bypass the issue Pascal would have me report.


Standing by,

rjs

On 06/04/2012 03:13 PM, Glenn Adams wrote:

before filing a new bug, please review

https://issues.apache.org/bugzilla/show_bug.cgi?id=51043

to see if the patch to that bug introduced the problem you are seeing

On Mon, Jun 4, 2012 at 2:07 PM, Rob Sargent rsarg...@xmission.com 
mailto:rsarg...@xmission.com wrote:


I ran your fo with and without the + 0.001pt and indeed it fails
and works as you said it would.

Good news, however.  Following up on your to arrange it such that
the computed i-p-d for the content equals the one of the next
page, I am now creating region-body definitions for the gallery
page conditional on the preceding page layout (three-side or not).
 This seems to be working very well so far.

Would you still like me to submit the bug report.  I don't feel
the thread title here would be appropriate. Perhaps Insufficient
space for line break causes error on zero-length region-body
would be closer to the truth.

Thanks a ton for the work-around!  Saved the day, to be sure.

rjs



On 06/04/2012 02:05 AM, Pascal Sancho wrote:

Hi,

I have focused on the 1st issue I found. May be there are
other issues behind.

Le 01/06/2012 18:13, Rob Sargent a écrit :

Thanks Pascal,

Sort of glad to know it's not just me! Unfortunately I
don't think you
example minimal fo actually recreates my problem. I'm
trying to get the
gallery page to have NO text at all, whereas you working
example has
two line of text on the gallery page. The best I have
attained is a
single line of text on my gallery page by dialing in the
margin-top to
10.82in (10.83in generates the same exception, using 10.5 pt
TimesNewRomanPSMT).


Hmm?
With the XSL-FO attached to my previous email FOP throws a
FOPException, and produces no output.
I've set both font-size and line-height to 1in (on fo:root),
and the available b-p-d of the 1st page body is less than 2in
(page-height=11in - body/@margin-top=9in + 0.001pt), so
there is no place for line break. Can you check again that you
tried that example?

I should mention that in our production situation the
textless gallery
pages work just fine, except when preceded by our
three-side layout.
We have two symptoms: aside from the FOPException
reported, in some
cases a single line of text appears on the gallery page.
Since, as I've
said, I believe these two cases are related I have not
generate the
'single line of text' example. That has it's own
interesting story which
I will refrain from telling at this time, except to
confess the actual
page-layout dimensions for the gallery pages:

fo:simple-page-master page-width=8.5in page-height=11in
master-name=gallery6-page-3 margin=0.0in 0.0in 0.6in
0.833in
fo:region-body margin-top=10.0in margin-right=0.70in
margin-bottom=0.40in column-gap=0.40in column-count=2 /
fo:region-before precedence=true extent=9.0in
region-name=header-gallery6-page-3 /
/fo:simple-page-master


for the body of gallery6-page-3:
b-p-d is 11in - 0 - 0.6in - 10in - 0.4in = 0,
so, in case of multi-line content, there is no room for
line-break, that cause a FOP exception if i-p-d changes on
next page (this is a FOP bug).

for each column:
i-p-d = (8.5in - 0 - 0.833in - -0.7in - 0.4in) / 2 = 3.2865in

If you leave a 0 b-p-d to force an empty page, you should
ensure that computed i-p-d for the content (here each column)
equals the one of the next page, the issue you are facing
should not occur.

fo:simple-page-master page-width=8.5in page-height=11in
master-name=three-side-page-11 margin=0.0in 0.0in 0.6in
0.833in
fo:region-body margin-top=0.75in margin-right=4.3585in
column-count=1 /
fo:region-before region-name=default-right-header
precedence=true
extent=0.50in /
fo:region-end extent=3.465in
region-name=three-side-start-11 /
/fo:simple-page-master


Please advise as to how to procede. Happy to register the
failure you've

Re: generating pdf fails depending on page layout order

2012-06-04 Thread Glenn Adams
ok, thanks, just wanted to check, as 0.001pt is exactly 1 millipoint which
is a bit of magic number in FOP, as it uses an integer representation of
millipoints in many computations, including the epsilon in the bug I
referred to below

On Mon, Jun 4, 2012 at 4:10 PM, Rob Sargent rsarg...@xmission.com wrote:

  If I'm following along correctly, I don't think my issue is one of
 rounding, rather one of actual layout /style/.  I run into trouble when the
 next page isn't of the same region-body definition AND has no room for
 text.  So far, with my conditional region-body definition I'm able to
 bypass the issue Pascal would have me report.

 Standing by,

 rjs


 On 06/04/2012 03:13 PM, Glenn Adams wrote:

 before filing a new bug, please review

  https://issues.apache.org/bugzilla/show_bug.cgi?id=51043

  to see if the patch to that bug introduced the problem you are seeing

 On Mon, Jun 4, 2012 at 2:07 PM, Rob Sargent rsarg...@xmission.com wrote:

 I ran your fo with and without the + 0.001pt and indeed it fails and
 works as you said it would.

 Good news, however.  Following up on your to arrange it such that the
 computed i-p-d for the content equals the one of the next page, I am now
 creating region-body definitions for the gallery page conditional on the
 preceding page layout (three-side or not).  This seems to be working very
 well so far.

 Would you still like me to submit the bug report.  I don't feel the
 thread title here would be appropriate. Perhaps Insufficient space for
 line break causes error on zero-length region-body would be closer to the
 truth.

 Thanks a ton for the work-around!  Saved the day, to be sure.

 rjs



 On 06/04/2012 02:05 AM, Pascal Sancho wrote:

 Hi,

 I have focused on the 1st issue I found. May be there are other issues
 behind.

 Le 01/06/2012 18:13, Rob Sargent a écrit :

 Thanks Pascal,

 Sort of glad to know it's not just me! Unfortunately I don't think you
 example minimal fo actually recreates my problem. I'm trying to get the
 gallery page to have NO text at all, whereas you working example has
 two line of text on the gallery page. The best I have attained is a
 single line of text on my gallery page by dialing in the margin-top to
 10.82in (10.83in generates the same exception, using 10.5 pt
 TimesNewRomanPSMT).


 Hmm?
 With the XSL-FO attached to my previous email FOP throws a FOPException,
 and produces no output.
 I've set both font-size and line-height to 1in (on fo:root), and the
 available b-p-d of the 1st page body is less than 2in (page-height=11in -
 body/@margin-top=9in + 0.001pt), so there is no place for line break. Can
 you check again that you tried that example?

  I should mention that in our production situation the textless gallery
 pages work just fine, except when preceded by our three-side layout.
 We have two symptoms: aside from the FOPException reported, in some
 cases a single line of text appears on the gallery page. Since, as I've
 said, I believe these two cases are related I have not generate the
 'single line of text' example. That has it's own interesting story which
 I will refrain from telling at this time, except to confess the actual
 page-layout dimensions for the gallery pages:

 fo:simple-page-master page-width=8.5in page-height=11in
 master-name=gallery6-page-3 margin=0.0in 0.0in 0.6in 0.833in
 fo:region-body margin-top=10.0in margin-right=0.70in
 margin-bottom=0.40in column-gap=0.40in column-count=2 /
 fo:region-before precedence=true extent=9.0in
 region-name=header-gallery6-page-3 /
 /fo:simple-page-master


 for the body of gallery6-page-3:
 b-p-d is 11in - 0 - 0.6in - 10in - 0.4in = 0,
 so, in case of multi-line content, there is no room for line-break, that
 cause a FOP exception if i-p-d changes on next page (this is a FOP bug).

 for each column:
 i-p-d = (8.5in - 0 - 0.833in - -0.7in - 0.4in) / 2 = 3.2865in

 If you leave a 0 b-p-d to force an empty page, you should ensure that
 computed i-p-d for the content (here each column) equals the one of the
 next page, the issue you are facing should not occur.

  fo:simple-page-master page-width=8.5in page-height=11in
 master-name=three-side-page-11 margin=0.0in 0.0in 0.6in 0.833in
 fo:region-body margin-top=0.75in margin-right=4.3585in
 column-count=1 /
 fo:region-before region-name=default-right-header precedence=true
 extent=0.50in /
 fo:region-end extent=3.465in region-name=three-side-start-11 /
 /fo:simple-page-master


 Please advise as to how to procede. Happy to register the failure you've
 isolated (though I don't understand why the fail case doesn't generate
 one-line of text on the first page?).Should I enter another on the
 negative interplay of the two page layouts?


 On 06/01/2012 03:15 AM, Pascal Sancho wrote:

 Hi Rob,

 sure you are facing a bug:
 when there is no room on 1 page to insert a line-break, then, if IPD
 change on next page, the described FOPException is thrown.

 See the attached minimal XSL-FO: when you remove the expression
  + 

Re: generating pdf fails depending on page layout order

2012-06-04 Thread Rob Sargent
I've added issue #53358 - Insufficient space for line break causes error 
on zero-length region-body.  My work-around is to conditionally define 
the region-body of the gallery pages as:


   xsl:when test=@layout-id = $loGallery6
   xsl:variable name=gallery-top-margin10.99in/xsl:variable
   xsl:variable name=prevpage select=position() - 1/
   fo:simple-page-master page-height=11in
   page-width=8.5in
   xsl:attribute name=master-name
   xsl:value-of select=concat('gallery6-page-', position())/
   /xsl:attribute
   xsl:choose
   xsl:when test=(position() mod 2) = 0
   xsl:attribute name=margin
   xsl:value-of select=$leftGalleryMargins/
   /xsl:attribute
   xsl:choose
   !-- We need to fake out 3up-followed-by-gallery situation --
   xsl:when test=//pages/page[@pos = $prevpage and @layout-id =
   $loThreeSide]
   fo:region-body column-count=1 margin-top={$gallery-top-margin}
   
   margin-left={$columnWidth3up}/

   /xsl:when
   xsl:otherwise
   fo:region-body column-count=2 column-gap={$twoColumnGap}
   background-color=orange
   
   margin-top={$gallery-top-margin} margin-bottom=0.0in
   
   margin-left={$outerMargin}in/

   /xsl:otherwise
   /xsl:choose
   /xsl:when
   xsl:otherwise
   xsl:attribute name=margin
   xsl:value-of select=$rightGalleryMargins/
   /xsl:attribute
   xsl:choose
   xsl:when test=//pages/page[@pos = $prevpage and @layout-id =
   $loThreeSide]
   fo:region-body column-count=1 margin-top={$gallery-top-margin}
   
   margin-left={$columnWidth3up}/

   /xsl:when
   xsl:otherwise
   fo:region-body column-count=2 column-gap={$twoColumnGap}
   background-color=orange
   
   margin-top={$gallery-top-margin} margin-bottom=0.0in
   
   margin-right={$outerMargin}in/

   /xsl:otherwise
   /xsl:choose
   /xsl:otherwise
   /xsl:choose
   fo:region-before extent=11in precedence=true  !--
   background-color=green --
   xsl:attribute name=region-name
   xsl:value-of select=concat('header-gallery6-page-', position())/
   /xsl:attribute
   /fo:region-before
   /fo:simple-page-master
   /xsl:when




On 06/04/2012 05:45 PM, Glenn Adams wrote:
ok, thanks, just wanted to check, as 0.001pt is exactly 1 millipoint 
which is a bit of magic number in FOP, as it uses an integer 
representation of millipoints in many computations, including the 
epsilon in the bug I referred to below


On Mon, Jun 4, 2012 at 4:10 PM, Rob Sargent rsarg...@xmission.com 
mailto:rsarg...@xmission.com wrote:


If I'm following along correctly, I don't think my issue is one of
rounding, rather one of actual layout /style/.  I run into trouble
when the next page isn't of the same region-body definition AND
has no room for text.  So far, with my conditional region-body
definition I'm able to bypass the issue Pascal would have me report.

Standing by,

rjs


On 06/04/2012 03:13 PM, Glenn Adams wrote:

before filing a new bug, please review

https://issues.apache.org/bugzilla/show_bug.cgi?id=51043

to see if the patch to that bug introduced the problem you are seeing

On Mon, Jun 4, 2012 at 2:07 PM, Rob Sargent
rsarg...@xmission.com mailto:rsarg...@xmission.com wrote:

I ran your fo with and without the + 0.001pt and indeed it
fails and works as you said it would.

Good news, however.  Following up on your to arrange it such
that the computed i-p-d for the content equals the one of
the next page, I am now creating region-body definitions for
the gallery page conditional on the preceding page layout
(three-side or not).  This seems to be working very well so far.

Would you still like me to submit the bug report.  I don't
feel the thread title here would be appropriate. Perhaps
Insufficient space for line break causes error on
zero-length region-body would be closer to the truth.

Thanks a ton for the work-around!  Saved the day, to be sure.

rjs



On 06/04/2012 02:05 AM, Pascal Sancho wrote:

Hi,

I have focused on the 1st issue I found. May be there are
other issues behind.

Le 01/06/2012 18:13, Rob Sargent a écrit :

Thanks Pascal,

Sort of glad to know it's not just me! Unfortunately
I don't think you
example minimal fo actually recreates my problem. I'm
trying to get the
gallery page to have NO text at all, whereas you
working example has
two line of text on the gallery page. The best I
have attained is a
single line of text on my gallery page by dialing in
the margin-top to
   

Re: generating pdf fails depending on page layout order

2012-06-01 Thread Pascal Sancho

Hi Rob,

sure you are facing a bug:
when there is no room on 1 page to insert a line-break, then, if IPD 
change on next page, the described FOPException is thrown.


See the attached minimal XSL-FO: when you remove the expression
  + 0.001pt from the margin-top value, it works like charm.

Can you please fill in a bug on FOP bug list, attaching this minimal XSL-FO?

As a workaround, you should decrease the margin-top of your 
simple-page-master gallery6-page-3 (leaving room for 2 * line-height,
and/or add a break-before on the %block% that come in 1st place of your 
page 4.


Le 01/06/2012 04:00, Rob Sargent a écrit :

We're using FOP-1.0.

Admittedly it may be a stretch to call these simple page layouts but
the attached FOs show that the ordering of the page layouts can cause
the generation of the pdf to fail. The fo-fails.xml exists with

Caused by: java.lang.UnsupportedOperationException: Don't know how
to restart at positionNonLeafPos:927(Flow@61f93f69[@id=]],
NonLeafPos:399(BlockContainer@52ab9d99[@id=group-Normal Development
and Anatomy of the Cerebral Commissures]],
NonLeafPos:106(BlockContainer@e09d7b9[@id=]],
NonLeafPos:7(Block@58a2b90b[@id=]], LeafPos:-1(pos=29,
lm=Block@58a2b90b[@id=]])
at
org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:377)
at org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:85)
at

org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:107)
at

org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:238)
at
org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:120)
at

org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:349)
at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:177)
at

com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:261)
at org.jdom.output.SAXOutputter.endElement(SAXOutputter.java:1046)
at org.jdom.output.SAXOutputter.element(SAXOutputter.java:903)
at org.jdom.output.SAXOutputter.elementContent(SAXOutputter.java:1093)
at org.jdom.output.SAXOutputter.elementContent(SAXOutputter.java:1067)
at org.jdom.output.SAXOutputter.element(SAXOutputter.java:897)
at org.jdom.output.SAXOutputter.output(SAXOutputter.java:621)
at
org.jdom.transform.JDOMSource$DocumentReader.parse(JDOMSource.java:476)
at

com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:636)
at

com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:707)
... 7 more

Some explaintion of the intent: The three-side-page-* s-m-ps usurp a
two-column text xsl-region body placing a static region over one of the
columns and the gallery6-page-* attempt to set the size of the
region-body to zero (creating a 'text-less' page).

Note that the gallery6-page-* layout was recently reworked to be
textless. Prior to that (developed originally in FOP-0.95) we had an
inch of text available and detected no order dependency amongst the
orderings of layouts.

And yes the s-m-ps are generated on the fly by the xsl translation,
whereby a static page definitions is loaded into a page-number specific
master, also left/right adjusted.

Furthermore, in other we also experience a single line of text on the
gallery6-page-*s only when preceded by a three-side-page-* s-m-p. If
necessary I will report that as a separate issue, but at this point I'm
hoping both symptoms are tightly related.

Any work-around much appreciated. If requested, I'm more than willing to
report this as a bug. Unfortunately we cannot wait for FOP-1.1 but we
could run off the trunk.

As I see it the diffs in the two attached FO's are entirely in the
static-regions as one would expect.

We're at crunch time and could go back to the original definition of
gallery6-page* but would /really/ rather not.

Cheers,

rjs



--
Pascal
?xml version=1.0 encoding=UTF-8?
fo:root xmlns:fo=http://www.w3.org/1999/XSL/Format; font-size=1in line-height=1
  fo:layout-master-set
fo:simple-page-master page-width=8.5in page-height=11in master-name=gallery6-page-3
  fo:region-body margin-right=0.1in margin-top=9in + 0.001pt/
/fo:simple-page-master
fo:simple-page-master page-width=8.5in page-height=11in master-name=three-side-page-4
  fo:region-body/
/fo:simple-page-master
fo:page-sequence-master master-name=document-sequence
  fo:single-page-master-reference master-reference=gallery6-page-3 /
  fo:single-page-master-reference master-reference=three-side-page-4 /
/fo:page-sequence-master
  /fo:layout-master-set
  fo:page-sequence master-reference=document-sequence
fo:flow flow-name=xsl-region-body
  fo:block
text text text text text text text text text text text text text text
  /fo:block
/fo:flow
  /fo:page-sequence

Re: generating pdf fails depending on page layout order

2012-06-01 Thread Rob Sargent

Thanks Pascal,

Sort of glad to know it's not just me!  Unfortunately I don't think you 
example minimal fo actually recreates my problem.  I'm trying to get the 
gallery page to have NO text at all, whereas you working example has 
two line of text on the gallery page.   The best I have attained is a 
single line of text on my gallery page by dialing in the margin-top to 
10.82in (10.83in generates the same exception, using 10.5 pt 
TimesNewRomanPSMT).


I should mention that in our production situation the textless gallery 
pages work just fine, except when preceded by our three-side layout.  
We have two symptoms: aside from the FOPException reported, in some 
cases a  single line of text appears on the gallery page.  Since, as 
I've said, I believe these two cases are related I have not generate the 
'single line of text' example.  That has it's own interesting story 
which I will refrain from telling at this time, except to confess the 
actual page-layout dimensions for the gallery pages:


fo:simple-page-master page-width=8.5in page-height=11in 
master-name=gallery6-page-3 margin=0.0in 0.0in 0.6in 0.833in
fo:region-body margin-top=10.0in margin-right=0.70in 
margin-bottom=0.40in column-gap=0.40in column-count=2 /
fo:region-before precedence=true extent=9.0in 
region-name=header-gallery6-page-3 /

/fo:simple-page-master

fo:simple-page-master page-width=8.5in page-height=11in 
master-name=three-side-page-11 margin=0.0in 0.0in 0.6in 0.833in
fo:region-body margin-top=0.75in margin-right=4.3585in 
column-count=1 /
fo:region-before region-name=default-right-header precedence=true 
extent=0.50in /

fo:region-end extent=3.465in region-name=three-side-start-11 /
/fo:simple-page-master


Please advise as to how to procede.  Happy to register the failure 
you've isolated (though I don't understand why the fail case doesn't 
generate one-line of text on the first page?).Should I enter another on 
the negative interplay of the two page layouts?



On 06/01/2012 03:15 AM, Pascal Sancho wrote:

Hi Rob,

sure you are facing a bug:
when there is no room on 1 page to insert a line-break, then, if IPD 
change on next page, the described FOPException is thrown.


See the attached minimal XSL-FO: when you remove the expression
  + 0.001pt from the margin-top value, it works like charm.

Can you please fill in a bug on FOP bug list, attaching this minimal 
XSL-FO?


As a workaround, you should decrease the margin-top of your 
simple-page-master gallery6-page-3 (leaving room for 2 * line-height,
and/or add a break-before on the %block% that come in 1st place of 
your page 4.


Le 01/06/2012 04:00, Rob Sargent a écrit :

We're using FOP-1.0.

Admittedly it may be a stretch to call these simple page layouts but
the attached FOs show that the ordering of the page layouts can cause
the generation of the pdf to fail. The fo-fails.xml exists with

Caused by: java.lang.UnsupportedOperationException: Don't know how
to restart at positionNonLeafPos:927(Flow@61f93f69[@id=]],
NonLeafPos:399(BlockContainer@52ab9d99[@id=group-Normal Development
and Anatomy of the Cerebral Commissures]],
NonLeafPos:106(BlockContainer@e09d7b9[@id=]],
NonLeafPos:7(Block@58a2b90b[@id=]], LeafPos:-1(pos=29,
lm=Block@58a2b90b[@id=]])
at

org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:377)
at 
org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:85)

at

org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:107)

at

org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:238)

at

org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:120)

at

org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:349)
at 
org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:177)

at

com.sun.org.apache.xml.internal.serializer.ToXMLSAXHandler.endElement(ToXMLSAXHandler.java:261)

at org.jdom.output.SAXOutputter.endElement(SAXOutputter.java:1046)
at org.jdom.output.SAXOutputter.element(SAXOutputter.java:903)
at 
org.jdom.output.SAXOutputter.elementContent(SAXOutputter.java:1093)
at 
org.jdom.output.SAXOutputter.elementContent(SAXOutputter.java:1067)

at org.jdom.output.SAXOutputter.element(SAXOutputter.java:897)
at org.jdom.output.SAXOutputter.output(SAXOutputter.java:621)
at

org.jdom.transform.JDOMSource$DocumentReader.parse(JDOMSource.java:476)

at

com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:636)

at

com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:707)

... 7 more

Some explaintion of the intent: The three-side-page-* s-m-ps usurp a
two-column text xsl-region body placing a static region over one of the
columns and the gallery6-page-* attempt to set the size of the
region-body to zero (creating