Re: Erratic behavior of keep-together.within-page=

2012-02-22 Thread Pascal Sancho
Hi,

there is no best method to insert line breaks; this depends on context.

If you have a text containing LF that must be preserved, it should be
nested in a single fo:block.
As a good practice, a fo:block with LF-treatment=preserve should not
contain extra fo:blocks.

Le 22/02/2012 06:29, Lal Mohanty a écrit :
 Pascal Sancho pascal.sancho at takoma.fr writes:
 
 Thanks Pascal. Great suggestion.
 The snippet I included earlier was formatted for better read. In real FO 
 there 
 is no LF. I use empty blocks to put line breaks. I am still struggling to 
 understand how the  IS there any better way to put a line breaks?
 Thanks in advance.

-- 
Pascal

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



Re: Erratic behavior of keep-together.within-page=

2012-02-21 Thread Lal Mohanty
Pascal Sancho pascal.sancho at takoma.fr writes:

Thanks Pascal. Great suggestion.
The snippet I included earlier was formatted for better read. In real FO there 
is no LF. I use empty blocks to put line breaks. I am still struggling to 
understand how the  IS there any better way to put a line breaks?
Thanks in advance.



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



Re: Erratic behavior of keep-together.within-page=

2012-02-20 Thread Pascal Sancho
Hi,

Your snippet gives me expected output, and *all* LF are taken into
account, comprising those between empty blocks, and those before and
after opening/closing tags.
Note that when LF-treatment is preserve, embedding multiple fo:block
can give unwanted output, hard to predict or understand.
You should replace empty blocks with explicit LF, that should give a
more readable code.
removing LF before, between and after tags can help too.

As a debug help, you can colorize your fo:blocks (using background-color
for filled blocks or border-after for empty blocks), this will give an
easy-to-understand output, that can help to debug XSL-FO or XSLT.

Le 18/02/2012 01:33, Lal Mohanty a écrit :
 Jonathan Levinson Jonathan.Levinson at intersystems.com writes:
 

 Hi Lal,

 You create an XSL-FO file by applying the XSLT transformation to your XML.  
 The result is XSL-FO.  You can
 generate the PDF from XSL-FO directly using FOP, for example:

 Here is an example:

 c:\fop\fop.bat -fo COSLinearGradient2.fo -pdf COSLinearGradient21.pdf

 Winnow your FO file down in size till you reach the minimum FO necessary to 
 show your problem.

 HTH,
 Jonathan Levinson

 -Original Message-
 From: Lal Mohanty [mailto:lmohanty at yahoo.com]
 Sent: Friday, February 17, 2012 4:09 PM

 Pascal Sancho pascal.sancho at takoma.fr writes:


 Hi,

 XSLT snippet is not appropriate to figure what you describe.
 You should a *short* XSL-FO to this thread, that demonstrates the
 issue you are describing.

 Le 17/02/2012 01:19, Lal Mohanty a écrit :
 I am having a problem with keep-together.within-page=always in Fop
 0.95/1.0.
 It behaves erratically depending on size of the content. I need to
 print a letter where all contents (Request/Data/Body/Para and
 Request/Data/Closure)
 need to be printed in one page. If it does not fit, I need to take
 the
 LAST
 paragraph of the Request/Data/Para and the Closure to the next page.
 This works in many cases, but sometimes, FOP squeezes the line-feeds
 (or takes
 away
 the empty lines) to accommodate the whole content in one page. If I
 have little larger contents, when it feels (I think) that it can not
 put all in
 a
 single page (even after squeezing), it works fine without trimming
 the
 line-
 feeds.

 Any help will be well appreciated. Thanks in advance.
 Here is a sample XSL -
 xsl:template name=LetterBody
 fo:block white-space-collapse=false linefeed-
 treatment=preserve
xsl:for-each select =Request/Data/Body/Para
   xsl:if test=position()!=last()
xsl:if test=Text
 fo:block font-size=10pt font-family=Courier
   xsl:call-template name=WriteASIS
xsl:with-param name=buffer
 select=string
 (.)/
  /xsl:call-template
 /fo:block
   /xsl:if
 /xsl:if
  /xsl:for-each
/fo:block
 /xsl:template
 ...
 xsl:template name=Closure
 fo:block space-before=5mm font-family=Courier
 keep-together.within- page=always
   xsl:for-each select=Request/Data/Body/Para[last()]/Text
xsl:call-template name=WriteASIS
 xsl:with-param name=buffer select=string(.)/
/xsl:call-template
  /xsl:for-each
  xsl:if test=NB21Request/Data/Closure/Text !=''
   xsl:for-each select=Request/Data/Closure/Text
   xsl:call-template name=WriteASIS
  xsl:with-param name=buffer select=string(.)/
   /xsl:call-template
   /xsl:for-each
  /xsl:if
 /fo:block
 /xsl:template



 Dear Pascal:
 I am sorry I could not make my issue clear. I am also not sure what you 
 mean by
 short XSL-FO. I wish I could attach an image to demonstrate the issue. I 
 have
 put some empty lines between each paragraph using empty fo:block. FOP is
 preserving these lines in many cases. However, in certain cases, it is 
 taking them
 out and squeezes the texts together.
 AAA

 BBB
 becomes
 AAA
 BBB
 This typically happens, when FOP tries to fit all the texts in the same 
 page.I
 have tried white-space-collapse=false linefeed-treatment=preserve, but 
 it
 does not help. I have a feeling that keep-together.within-page=always 
 might
 be overwriting the linefeed treatments. But keep-together.within-
 page=always
 and linefeed-treatment=preserve are in two different blocks. That's what 
 I
 had shown in my xsl-fo snippet.

 Please help me how I can preserve these linefeeds.
 Thanks
 Lal


 Thank you all for your patience (for a novice FOP builder). 
 Here is the snippet where I think FOP is being erratic. Typically, I see a 
 linefeed from TEXT 1  TEXT 2 in one page and LAST TEXT in a different page. 
 But sometimes, TEXT1, TEXT2  LAST TEXT appears in the same page w/o any 
 linefeed. Does it make any sense ?
 
 fo:block linefeed-treatment=preserve white-space-collapse=false
fo:block font-family=Courier font-size=10pt
  fo:block space-before.optimum=5pt space-after.optimum=10pt 
  padding-right=0.5in 

Re: Erratic behavior of keep-together.within-page=always

2012-02-17 Thread Pascal Sancho
Hi,

XSLT snippet is not appropriate to figure what you describe.
You should a *short* XSL-FO to this thread, that demonstrates the issue
you are describing.

Le 17/02/2012 01:19, Lal Mohanty a écrit :
 I am having a problem with keep-together.within-page=always in Fop 
 0.95/1.0. 
 It behaves erratically depending on size of the content. I need to print a 
 letter where all contents (Request/Data/Body/Para and Request/Data/Closure) 
 need to be printed in one page. If it does not fit, I need to take the LAST 
 paragraph of the Request/Data/Para and the Closure to the next page. This 
 works in many cases, but sometimes, FOP squeezes the line-feeds (or takes 
 away 
 the empty lines) to accommodate the whole content in one page. If I have 
 little larger contents, when it feels (I think) that it can not put all in a 
 single page (even after squeezing), it works fine without trimming the line-
 feeds.  
 
 Any help will be well appreciated. Thanks in advance.
 Here is a sample XSL -
 xsl:template name=LetterBody
 fo:block white-space-collapse=false linefeed-treatment=preserve
xsl:for-each select =Request/Data/Body/Para
   xsl:if test=position()!=last()
xsl:if test=Text
 fo:block font-size=10pt font-family=Courier
   xsl:call-template name=WriteASIS
xsl:with-param name=buffer select=string(.)/
  /xsl:call-template
 /fo:block
   /xsl:if
 /xsl:if
  /xsl:for-each
/fo:block
 /xsl:template
 ...
 xsl:template name=Closure
 fo:block space-before=5mm font-family=Courier keep-together.within-
 page=always
   xsl:for-each select=Request/Data/Body/Para[last()]/Text
xsl:call-template name=WriteASIS
 xsl:with-param name=buffer select=string(.)/
/xsl:call-template
  /xsl:for-each
  xsl:if test=NB21Request/Data/Closure/Text !=''
   xsl:for-each select=Request/Data/Closure/Text
   xsl:call-template name=WriteASIS
  xsl:with-param name=buffer select=string(.)/
   /xsl:call-template
   /xsl:for-each
  /xsl:if
 /fo:block
 /xsl:template


-- 
Pascal

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



Re: Erratic behavior of keep-together.within-page=

2012-02-17 Thread Lal Mohanty
Pascal Sancho pascal.sancho at takoma.fr writes:

 
 Hi,
 
 XSLT snippet is not appropriate to figure what you describe.
 You should a *short* XSL-FO to this thread, that demonstrates the issue
 you are describing.
 
 Le 17/02/2012 01:19, Lal Mohanty a écrit :
  I am having a problem with keep-together.within-page=always in Fop 
0.95/1.0. 
  It behaves erratically depending on size of the content. I need to print a 
  letter where all contents (Request/Data/Body/Para and 
Request/Data/Closure) 
  need to be printed in one page. If it does not fit, I need to take the 
LAST 
  paragraph of the Request/Data/Para and the Closure to the next page. This 
  works in many cases, but sometimes, FOP squeezes the line-feeds (or takes 
away 
  the empty lines) to accommodate the whole content in one page. If I have 
  little larger contents, when it feels (I think) that it can not put all in 
a 
  single page (even after squeezing), it works fine without trimming the 
line-
  feeds.  
  
  Any help will be well appreciated. Thanks in advance.
  Here is a sample XSL -
  xsl:template name=LetterBody
  fo:block white-space-collapse=false linefeed-treatment=preserve
 xsl:for-each select =Request/Data/Body/Para
xsl:if test=position()!=last()
 xsl:if test=Text
  fo:block font-size=10pt font-family=Courier
xsl:call-template name=WriteASIS
 xsl:with-param name=buffer select=string
(.)/
   /xsl:call-template
  /fo:block
/xsl:if
  /xsl:if
   /xsl:for-each
 /fo:block
  /xsl:template
  ...
  xsl:template name=Closure
  fo:block space-before=5mm font-family=Courier keep-together.within-
  page=always
xsl:for-each select=Request/Data/Body/Para[last()]/Text
 xsl:call-template name=WriteASIS
  xsl:with-param name=buffer select=string(.)/
 /xsl:call-template
   /xsl:for-each
   xsl:if test=NB21Request/Data/Closure/Text !=''
xsl:for-each select=Request/Data/Closure/Text
xsl:call-template name=WriteASIS
   xsl:with-param name=buffer select=string(.)/
/xsl:call-template
/xsl:for-each
   /xsl:if
  /fo:block
  /xsl:template
 


Dear Pascal:
I am sorry I could not make my issue clear. I am also not sure what you mean 
by short XSL-FO. I wish I could attach an image to demonstrate the issue. I 
have put some empty lines between each paragraph using empty fo:block. FOP 
is preserving these lines in many cases. However, in certain cases, it is 
taking them out and squeezes the texts together.  
AAA

BBB
becomes
AAA
BBB
This typically happens, when FOP tries to fit all the texts in the same page.I 
have tried white-space-collapse=false linefeed-treatment=preserve, but it 
does not help. I have a feeling that keep-together.within-page=always might 
be overwriting the linefeed treatments. But keep-together.within-page=always 
and linefeed-treatment=preserve are in two different blocks. That's what I 
had shown in my xsl-fo snippet.

Please help me how I can preserve these linefeeds. 
Thanks
Lal 




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



RE: Erratic behavior of keep-together.within-page=

2012-02-17 Thread Jonathan Levinson
Hi Lal,

You create an XSL-FO file by applying the XSLT transformation to your XML.  The 
result is XSL-FO.  You can generate the PDF from XSL-FO directly using FOP, for 
example:

Here is an example:

c:\fop\fop.bat -fo COSLinearGradient2.fo -pdf COSLinearGradient21.pdf

Winnow your FO file down in size till you reach the minimum FO necessary to 
show your problem.

HTH,
Jonathan Levinson

 -Original Message-
 From: Lal Mohanty [mailto:lmoha...@yahoo.com]
 Sent: Friday, February 17, 2012 4:09 PM
 To: fop-users@xmlgraphics.apache.org
 Subject: Re: Erratic behavior of keep-together.within-page=
 
 Pascal Sancho pascal.sancho at takoma.fr writes:
 
 
  Hi,
 
  XSLT snippet is not appropriate to figure what you describe.
  You should a *short* XSL-FO to this thread, that demonstrates the
  issue you are describing.
 
  Le 17/02/2012 01:19, Lal Mohanty a écrit :
   I am having a problem with keep-together.within-page=always in Fop
 0.95/1.0.
   It behaves erratically depending on size of the content. I need to
   print a letter where all contents (Request/Data/Body/Para and
 Request/Data/Closure)
   need to be printed in one page. If it does not fit, I need to take
   the
 LAST
   paragraph of the Request/Data/Para and the Closure to the next page.
   This works in many cases, but sometimes, FOP squeezes the line-feeds
   (or takes
 away
   the empty lines) to accommodate the whole content in one page. If I
   have little larger contents, when it feels (I think) that it can not
   put all in
 a
   single page (even after squeezing), it works fine without trimming
   the
 line-
   feeds.
  
   Any help will be well appreciated. Thanks in advance.
   Here is a sample XSL -
   xsl:template name=LetterBody
   fo:block white-space-collapse=false linefeed-treatment=preserve
  xsl:for-each select =Request/Data/Body/Para
 xsl:if test=position()!=last()
  xsl:if test=Text
   fo:block font-size=10pt font-family=Courier
 xsl:call-template name=WriteASIS
  xsl:with-param name=buffer
   select=string
 (.)/
/xsl:call-template
   /fo:block
 /xsl:if
   /xsl:if
/xsl:for-each
  /fo:block
   /xsl:template
   ...
   xsl:template name=Closure
   fo:block space-before=5mm font-family=Courier
   keep-together.within- page=always
 xsl:for-each select=Request/Data/Body/Para[last()]/Text
  xsl:call-template name=WriteASIS
   xsl:with-param name=buffer select=string(.)/
  /xsl:call-template
/xsl:for-each
xsl:if test=NB21Request/Data/Closure/Text !=''
 xsl:for-each select=Request/Data/Closure/Text
 xsl:call-template name=WriteASIS
xsl:with-param name=buffer select=string(.)/
 /xsl:call-template
 /xsl:for-each
/xsl:if
   /fo:block
   /xsl:template
 
 
 
 Dear Pascal:
 I am sorry I could not make my issue clear. I am also not sure what you mean 
 by
 short XSL-FO. I wish I could attach an image to demonstrate the issue. I 
 have
 put some empty lines between each paragraph using empty fo:block. FOP is
 preserving these lines in many cases. However, in certain cases, it is taking 
 them
 out and squeezes the texts together.
 AAA
 
 BBB
 becomes
 AAA
 BBB
 This typically happens, when FOP tries to fit all the texts in the same page.I
 have tried white-space-collapse=false linefeed-treatment=preserve, but it
 does not help. I have a feeling that keep-together.within-page=always might
 be overwriting the linefeed treatments. But keep-together.within-
 page=always
 and linefeed-treatment=preserve are in two different blocks. That's what I
 had shown in my xsl-fo snippet.
 
 Please help me how I can preserve these linefeeds.
 Thanks
 Lal
 
 
 
 
 -
 To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
 For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org



Re: Erratic behavior of keep-together.within-page=

2012-02-17 Thread Lal Mohanty
Jonathan Levinson Jonathan.Levinson at intersystems.com writes:

 
 Hi Lal,
 
 You create an XSL-FO file by applying the XSLT transformation to your XML.  
The result is XSL-FO.  You can
 generate the PDF from XSL-FO directly using FOP, for example:
 
 Here is an example:
 
 c:\fop\fop.bat -fo COSLinearGradient2.fo -pdf COSLinearGradient21.pdf
 
 Winnow your FO file down in size till you reach the minimum FO necessary to 
show your problem.
 
 HTH,
 Jonathan Levinson
 
  -Original Message-
  From: Lal Mohanty [mailto:lmohanty at yahoo.com]
  Sent: Friday, February 17, 2012 4:09 PM
  To: fop-users at xmlgraphics.apache.org
  Subject: Re: Erratic behavior of keep-together.within-page=
  
  Pascal Sancho pascal.sancho at takoma.fr writes:
  
  
   Hi,
  
   XSLT snippet is not appropriate to figure what you describe.
   You should a *short* XSL-FO to this thread, that demonstrates the
   issue you are describing.
  
   Le 17/02/2012 01:19, Lal Mohanty a écrit :
I am having a problem with keep-together.within-page=always in Fop
  0.95/1.0.
It behaves erratically depending on size of the content. I need to
print a letter where all contents (Request/Data/Body/Para and
  Request/Data/Closure)
need to be printed in one page. If it does not fit, I need to take
the
  LAST
paragraph of the Request/Data/Para and the Closure to the next page.
This works in many cases, but sometimes, FOP squeezes the line-feeds
(or takes
  away
the empty lines) to accommodate the whole content in one page. If I
have little larger contents, when it feels (I think) that it can not
put all in
  a
single page (even after squeezing), it works fine without trimming
the
  line-
feeds.
   
Any help will be well appreciated. Thanks in advance.
Here is a sample XSL -
xsl:template name=LetterBody
fo:block white-space-collapse=false linefeed-
treatment=preserve
   xsl:for-each select =Request/Data/Body/Para
  xsl:if test=position()!=last()
   xsl:if test=Text
fo:block font-size=10pt font-family=Courier
  xsl:call-template name=WriteASIS
   xsl:with-param name=buffer
select=string
  (.)/
 /xsl:call-template
/fo:block
  /xsl:if
/xsl:if
 /xsl:for-each
   /fo:block
/xsl:template
...
xsl:template name=Closure
fo:block space-before=5mm font-family=Courier
keep-together.within- page=always
  xsl:for-each select=Request/Data/Body/Para[last()]/Text
   xsl:call-template name=WriteASIS
xsl:with-param name=buffer select=string(.)/
   /xsl:call-template
 /xsl:for-each
 xsl:if test=NB21Request/Data/Closure/Text !=''
  xsl:for-each select=Request/Data/Closure/Text
  xsl:call-template name=WriteASIS
 xsl:with-param name=buffer select=string(.)/
  /xsl:call-template
  /xsl:for-each
 /xsl:if
/fo:block
/xsl:template
  
  
  
  Dear Pascal:
  I am sorry I could not make my issue clear. I am also not sure what you 
mean by
  short XSL-FO. I wish I could attach an image to demonstrate the issue. I 
have
  put some empty lines between each paragraph using empty fo:block. FOP is
  preserving these lines in many cases. However, in certain cases, it is 
taking them
  out and squeezes the texts together.
  AAA
  
  BBB
  becomes
  AAA
  BBB
  This typically happens, when FOP tries to fit all the texts in the same 
page.I
  have tried white-space-collapse=false linefeed-treatment=preserve, but 
it
  does not help. I have a feeling that keep-together.within-page=always 
might
  be overwriting the linefeed treatments. But keep-together.within-
  page=always
  and linefeed-treatment=preserve are in two different blocks. That's what 
I
  had shown in my xsl-fo snippet.
  
  Please help me how I can preserve these linefeeds.
  Thanks
  Lal
  
  
  
  
  -
  To unsubscribe, e-mail: fop-users-unsubscribe at xmlgraphics.apache.org
  For additional commands, e-mail: fop-users-help at xmlgraphics.apache.org
 
 
Thank you all for your patience (for a novice FOP builder). 
Here is the snippet where I think FOP is being erratic. Typically, I see a 
linefeed from TEXT 1  TEXT 2 in one page and LAST TEXT in a different page. 
But sometimes, TEXT1, TEXT2  LAST TEXT appears in the same page w/o any 
linefeed. Does it make any sense ?

fo:block linefeed-treatment=preserve white-space-collapse=false
   fo:block font-family=Courier font-size=10pt
 fo:block space-before.optimum=5pt space-after.optimum=10pt 
 padding-right=0.5in padding-left=0.5in text-align=left 
 line-height=12pt
TEXT  1...
fo:block white-space=pre white-space-collapse=false 
linefeed