# xmlgraphics-fop-users mailing list archives

##### Site index · List index
Message view
Top
From Frank Hirsch <frank.hir...@mac.com>
Subject Re: Place image at top of page
Date Mon, 28 Nov 2016 15:03:49 GMT
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 <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>
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: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}
>>>>
>>>> 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.
>>>>>
>>>>>
>>>>> 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?
>>>>>>
>>>>>>
>>>>>> 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
>>>>>>>
>>>>>>> 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
>>>>>>> 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
>


Mime
View raw message