xmlgraphics-fop-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michel Krämer <michel.krae...@googlemail.com>
Subject Re: Place image at top of page
Date Mon, 28 Nov 2016 15:32:38 GMT
Frank,

Thanks for your answer! I was thinking about this too, but the figure would overlay the text
(or the other way around). The text would not flow around the figure (or continue after the
figure in my case). 

That's why I was referring to <fo:float float="before"> in the first place. If I understand
it correctly this should be the element that does what I need, but it's not implemented in
FOP yet.

Michel


> On 28 Nov 2016, at 16:03, Frank Hirsch <frank.hirsch@mac.com> wrote:
> 
> What Szeak describes is a valid option - still it does require to „break“ the flow
if I well understand the requirement (based on master)?
> Maybe using an absolute positioned block element which is anchored to the related information
might as well be a possible option?
> https://www.data2type.de/xml/foref.html#absolute-position
> 
> Thus the figure should appear on whatever page the related text will be rendered…
> 
> Just an idea,
> Frank
> 
> 
>> Am 28.11.2016 um 15:51 schrieb Michel Krämer <michel.kraemer@googlemail.com>:
>> 
>> … You know, it would be great if there was something like a footnote, just for
the top of the page! :-) That would actually be what I need. :-)
>> 
>> Michel
>> 
>> 
>>> On 28 Nov 2016, at 15:44, Michel Krämer <michel.kraemer@googlemail.com>
wrote:
>>> 
>>> Hi Szeak!
>>> 
>>> This works! Thank you so much.
>>> 
>>> Do I understand it correctly that I need to know in advance on which page my
figure appears? So if I need it on page 100 I will have to repeat <fo:single-page-master-reference
master-reference="content"/> 99 times?
>>> 
>>> I'm asking because I'm generating a rather large document from DocBook using
XSLT. There are many figures on different pages and I want to put some of them to the top
of their respective page. I guess there is no easy solution for this with FOP, right?
>>> 
>>> Michel
>>> 
>>> 
>>>> On 28 Nov 2016, at 14:04, Szeak (Register Man) <szeak33@gmail.com>
wrote:
>>>> 
>>>> Hi,
>>>> 
>>>> My solution for your need is:
>>>> 
>>>> <fo:layout-master-set>
>>>>      <fo:simple-page-master master-name="content" page-height="297mm"
page-width="210mm" margin="0.2in">
>>>>          <fo:region-body>
>>>>          </fo:region-body>
>>>>      </fo:simple-page-master>
>>>>      <fo:simple-page-master master-name="content-with-header" page-height="297mm"
page-width="210mm" margin="0.2in">
>>>>          <fo:region-body margin-top="2.5in"/>
>>>>          <fo:region-before extent="2.5in"/>
>>>>      </fo:simple-page-master>
>>>> 
>>>>      <fo:page-sequence-master master-name="mixed-content">
>>>>          <fo:single-page-master-reference master-reference="content"/>
>>>>          <fo:single-page-master-reference master-reference="content-with-header"/>
>>>>          <fo:repeatable-page-master-reference master-reference="content"/>
>>>>      </fo:page-sequence-master>
>>>>  </fo:layout-master-set>
>>>>  <fo:page-sequence master-reference="mixed-content">
>>>>      <fo:static-content flow-name="xsl-region-before">
>>>>          <fo:block font-size="11pt" font-style="italic" font-weight="normal"
hyphenate="false" keep-with-previous.within-column="always" line-stacking-strategy="font-height"
space-after.maximum="1.7em" space-after.minimum="1.3em" space-after.optimum="1.5em" space-before.maximum="0em"
space-before.minimum="0em" space-before.optimum="0em" text-indent="0pt">
>>>>              Figure 3.1 Layers of code in a complex software architecture
>>>>          </fo:block>
>>>>          <fo:block background-color="red" id="img-layers-of-code" keep-together.within-column="always"
text-align="center">
>>>>              <fo:block id="d69e465" text-align="center">
>>>>                  <fo:external-graphic content-height="auto" content-width="66%"
height="auto" src="url(https://placeholdit.imgix.net/~text?txtsize=33&amp;txt=350%C3%97150&amp;w=350&amp;h=150&amp;fm=png)"
width="auto">
>>>>                  </fo:external-graphic>
>>>>              </fo:block>
>>>>              <fo:block font-size="11pt" font-style="italic" font-weight="normal"
hyphenate="false" keep-with-previous.within-column="always" line-stacking-strategy="font-height"
space-after.maximum="1.7em" space-after.minimum="1.3em" space-after.optimum="1.5em" space-before.maximum="0em"
space-before.minimum="0em" space-before.optimum="0em" text-indent="0pt">
>>>>                  Figure 1 Lorem ipsum dolor sit amet
>>>>              </fo:block>
>>>>          </fo:block>
>>>>      </fo:static-content>
>>>>      <fo:flow flow-name="xsl-region-body">
>>>> 
>>>> ....  the content of body
>>>> 
>>>> Bye
>>>> 
>>>> 2016-11-28 13:18 keltezéssel, Michel Krämer írta:
>>>>>> If you want displaying the image exactly on top of the second page?
>>>>> Yes, that's what I want! :-) I want to place an image at the top of a
page, no matter how many paragraphs I have. I want to place it at the top of the very page,
where I put the image, just like you do it in latex with
>>>>> 
>>>>> begin{figure}[t!]
>>>>> …
>>>>> \end{figure}
>>>>> 
>>>>>> I can help you in this.
>>>>> That's very much appreciated. Thank you so much!
>>>>> 
>>>>> Michel
>>>>> 
>>>>> 
>>>>>> On 28 Nov 2016, at 13:07, Szeak (Register Man) <szeak33@gmail.com>
wrote:
>>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> If you want placing the image after 20. paragraph, why define it
between 22. and 23?
>>>>>> Or
>>>>>> If you want displaying the image exactly on top of the second page?
>>>>>> 
>>>>>> So if you want displaying the image exactly on top of the second
page:
>>>>>> You need to define a bit more complex page-masters as now. I can
help you in this.
>>>>>> 
>>>>>> Don't hesitate to answer.
>>>>>> 
>>>>>> Bye, Szeak
>>>>>> 
>>>>>> 2016-11-28 12:21 keltezéssel, Michel Krämer írta:
>>>>>>> Hi Szeak,
>>>>>>> 
>>>>>>> Thanks a lot! This sounds very promising indeed. I can't get
it to work, however.
>>>>>>> 
>>>>>>> If I put <fo:flow flow-name="xsl-region-before"> inside
my page-sequence definition I get the following error:
>>>>>>> 
>>>>>>> org.apache.fop.fo.ValidationException: For "fo:page-sequence",
only one "fo:flow" may be declared. (See position 222:48)
>>>>>>> 
>>>>>>> If I create a new page-sequence and put it there FOP will end
up in an endless loop and won't stop generating pages.
>>>>>>> 
>>>>>>> I'm not sure this is the right way, although it really sounds
promising. Maybe I'm just missing something. I uploaded my small example here:
>>>>>>> 
>>>>>>> https://gist.github.com/michel-kraemer/af82f3e115afb877338a72fa34a539cf
>>>>>>> 
>>>>>>> If you render it you'll see that there is an image between paragraphs
22 and 23. You'll also see that paragraph 20 breaks at the end of page 1 and continues at
page 2. I want to place the image at the top of page two, so right in the middle of paragraph
20.
>>>>>>> 
>>>>>>> Any ideas?
>>>>>>> 
>>>>>>> Thanks for your help!
>>>>>>> 
>>>>>>> Michel
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>>> On 28 Nov 2016, at 11:48, Szeak (Register Man) <szeak33@gmail.com>
wrote:
>>>>>>>> 
>>>>>>>> Hi,
>>>>>>>> 
>>>>>>>> I don't think you need any code modifing in Java.
>>>>>>>> It seems, you need a header for the page, if i understand
good your needs..
>>>>>>>> 
>>>>>>>> So for display header correctly, you need to:
>>>>>>>> 1. define an ie.: <fo:region-before extent="1in"/>
in simple-page-master definiton
>>>>>>>>  you can define an exact name for it ie.: <fo:region-before
region-name="myHeader" extent="1in"/>
>>>>>>>> 2. define an <fo:flow flow-name="xsl-region-before">
in page-sequence definition
>>>>>>>>  you can use the named definition by: <fo:flow flow-name="myHeader">
>>>>>>>> 
>>>>>>>> That's it.
>>>>>>>> 
>>>>>>>> Bye, Szeak
>>>>>>>> 
>>>>>>>> 2016-11-25 17:11 keltezéssel, Michel Krämer írta:
>>>>>>>>> Hi!
>>>>>>>>> 
>>>>>>>>> I'm looking for a way to place an image at the top of
the page, just like you can do it in LaTeX:
>>>>>>>>> 
>>>>>>>>> \begin{figure}[t!]
>>>>>>>>> ...
>>>>>>>>> \end{figure}
>>>>>>>>> 
>>>>>>>>> If I understand it correctly, you should be able to do
this with the fo:float object:
>>>>>>>>> 
>>>>>>>>> <fo:float float="before">
>>>>>>>>> ...
>>>>>>>>> </fo:float>
>>>>>>>>> 
>>>>>>>>> I understand that FOP does not support the "before" value
yet.
>>>>>>>>> 
>>>>>>>>> Is there a workaround to achieve the same thing? For
example by placing the image absolutely or something like that?
>>>>>>>>> 
>>>>>>>>> I had a look at the code and it seems the feature is
almost implemented but not fully yet. There is a BeforeFloat class that is supposed to place
blocks in the before-float area, but even if I use <fo:float float="before"> this class
never receives any children. The float also disappears from the output PDF.
>>>>>>>>> 
>>>>>>>>> If there is no workaround for my problem I would be very
interested to implement the solution myself. I'm a Java programmer and if anyone could give
me some pointers on where to start and what is missing in the current code I'd probably be
able to fill the gaps.
>>>>>>>>> 
>>>>>>>>> Let me know what you think. Thank you so much!
>>>>>>>>> 
>>>>>>>>> Cheers,
>>>>>>>>> Michel
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>> 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
>>>>>>> 
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> 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
>>>> 
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> 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


Mime
View raw message