xmlgraphics-fop-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Georg Datterl <georg.datt...@geneon.de>
Subject AW: AW: AW: AW: Identifying absolute position of a FO:Block
Date Thu, 07 Oct 2010 08:21:24 GMT
Hi mithunk,

After generating the area tree you know exactly on which page the signature block is. If you
get two pages with a block having your signature id, the signature block is obviously split.
In that case, the second block has to start at (0/0).

If you add bpda of ALL previous blocks, of course you get a wrong value, if one block contains
another block. If I were you, I'd build a test file with a few blocks with exactly known heights.
Then when adding, I would compare the results with the actual positions. From here I can't
tell you why you get wrong results.

Regards,

Georg Datterl

------ Kontakt ------

Georg Datterl

Geneon media solutions gmbh
Gutenstetter Straße 8a
90449 Nürnberg

HRB Nürnberg: 17193
Geschäftsführer: Yong-Harry Steiert

Tel.: 0911/36 78 88 - 26
Fax: 0911/36 78 88 - 20

www.geneon.de

Weitere Mitglieder der Willmy MediaGroup:

IRS Integrated Realization Services GmbH:    www.irs-nbg.de
Willmy PrintMedia GmbH:                            www.willmy.de
Willmy Consult & Content GmbH:                 www.willmycc.de


-----Ursprüngliche Nachricht-----
Von: mithunk [mailto:mithunakulkarni@yahoo.com]
Gesendet: Mittwoch, 6. Oktober 2010 23:16
An: fop-users@xmlgraphics.apache.org
Betreff: Re: AW: AW: AW: Identifying absolute position of a FO:Block


Hi Georg,
I have PDF with 2 pages, in that case. How do I calculate the position?
I should add blocks of second page only right? As the data in my case is
dynamic I wont know whether the signature block will be in first page or
second page.

Right now if I add bpda of all the previous blocks, I am getting wrong
position information.

Thanks,
MK


Georg Datterl wrote:
>
> Hi mithunk,
>
> Two things I can think of given your description:
> The measurements are in milipoints. Divide by 1000 when finished to get
> points.
> Only add relevant blocks. Given a structure like
>
> <block A>
>         <block B />
>         <block C />
> </block A>
> <block D>
>         <block E />
>         <block F />
> </block D>
>
> to get the position of block F you add the height of blocks E and A.
> Basically: previous siblings of targetnode and all of its parent nodes are
> interesting.
>
> Regards,
>
> Georg Datterl
>
> ------ Kontakt ------
>
> Georg Datterl
>
> Geneon media solutions gmbh
> Gutenstetter Straße 8a
> 90449 Nürnberg
>
> HRB Nürnberg: 17193
> Geschäftsführer: Yong-Harry Steiert
>
> Tel.: 0911/36 78 88 - 26
> Fax: 0911/36 78 88 - 20
>
> www.geneon.de
>
> Weitere Mitglieder der Willmy MediaGroup:
>
> IRS Integrated Realization Services GmbH:    www.irs-nbg.de
> Willmy PrintMedia GmbH:                            www.willmy.de
> Willmy Consult & Content GmbH:                 www.willmycc.de
>
> -----Ursprüngliche Nachricht-----
> Von: mithunk [mailto:mithunakulkarni@yahoo.com]
> Gesendet: Dienstag, 5. Oktober 2010 22:14
> An: fop-users@xmlgraphics.apache.org
> Betreff: Re: AW: AW: Identifying absolute position of a FO:Block
>
>
> Hi,
>
> I tried creating AreaTree for my XSL-FO. And as you suggested added bpda
> of
> all the block elements in the area tree (untill my block is hit). But the
> y
> position that I get after adding all these is wrong. I want to calculate
> the
> absolute position of this block (x and y coordinates). Please help, as I
> need to finish this POC in another day.
> Please also mention if it not possible in FOP.
>
> Thanks,
> Mithun
>
>
> Georg Datterl wrote:
>>
>> Hi,
>>
>> First: I had a look at IF, but AT is better suited for the task, IMHO.
>>
>> Now for some details:
>>
>> Here's a simple fo file with a named block:
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
>>         <fo:layout-master-set>
>>                 <fo:simple-page-master master-name="x">
>>                         <fo:region-body/>
>>                 </fo:simple-page-master>
>>         </fo:layout-master-set>
>>         <fo:page-sequence master-reference="x">
>>                 <fo:flow flow-name="xsl-region-body">
>>                         <fo:block>
>>                                 <fo:block id="block-to-find">
>>                                         <fo:inline>testtext </fo:inline>
>>                                 </fo:block>
>>                         </fo:block>
>>                 </fo:flow>
>>         </fo:page-sequence>
>> </fo:root>
>>
>> Here's the area tree for this fo (fop test.fo -at test.xml):
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <!--Produced by Apache FOP Version svn-trunk-->
>> <areaTree>
>>         <pageSequence>
>>                 <pageViewport bounds="0 0 594720 792000" key="P1" nr="1"
>> formatted-nr="1" simple-page-master-name="x">
>>                         <page>
>>                                 <regionViewport ipd="594720" bpd="792000"
>> ipda="594720" bpda="792000" bap="0 0 0 0" is-viewport-area="true" rect="0
>> 0 594720 792000">
>>                                         <regionBody ipd="594720"
>> bpd="792000" ipda="594720" bpda="792000" bap="0 0 0 0"
>> is-reference-area="true" name="xsl-region-body" ctm="[1.0 0.0 0.0 1.0 0.0
>> 0.0]">
>>                                                 <beforeFloat/>
>>                                                 <mainReference ipd="0"
>> bpd="0" bap="0 0 0 0" is-reference-area="true">
>>
>>                                                                 <flow
>> ipd="594720" bpd="14400" ipda="594720" bpda="14400" bap="0 0 0 0"
>> is-reference-area="true">
>>
>> <block ipd="594720" bpd="14400" ipda="594720" bpda="14400" bap="0 0 0 0">
>>
>> <block ipd="594720" bpd="14400" ipda="594720" bpda="14400" bap="0 0 0 0"
>> prod-id="block-to-find">
>>
>> <lineArea ipd="594720" bpd="11100" ipda="594720" bpda="14400" bap="0 0 0
>> 0" space-before="1650" space-after="1650">
>>
>> <inlineparent ipd="38688" bpd="11100" ipda="38688" bpda="11100" bap="0 0
>> 0
>> 0" offset="0">
>>
>> <text offset="0" baseline="8616" ipd="38688" bpd="11100" ipda="38688"
>> bpda="11100" bap="0 0 0 0" font-name="sans-serif" font-style="normal"
>> font-weight="400" font-size="12000" color="#000000">
>>
>> <word offset="0">testtext</word>
>>
>> </text>
>>
>> </inlineparent>
>>
>> </lineArea>
>>
>> </block>
>>
>> </block>
>>                                                                 </flow>
>>
>>                                                 </mainReference>
>>                                                 <footnote
>> top-offset="0"/>
>>                                         </regionBody>
>>                                 </regionViewport>
>>                         </page>
>>                 </pageViewport>
>>         </pageSequence>
>> </areaTree>
>>
>> Now look for the block element with attribute prod-id="block-to-find".
>> That's your target block. As Craig said, if the block spans more pages,
>> there may be more than one block with this attribute.
>>
>> Now you can get the width of the block (attribute ipd) and the height
>> (attribute bpd). Use ipda and bpda if you need the padding, too. Also see
>> http://wiki.apache.org/xmlgraphics-fop/AreaTreeXMLDocumentation or search
>> this mailing list for "area tree".
>> For the block's position in the page, add the height of all previous
>> blocks in the page.
>>
>> Regards,
>>
>> Georg Datterl
>>
>> ------ Kontakt ------
>>
>> Georg Datterl
>>
>> Geneon media solutions gmbh
>> Gutenstetter Straße 8a
>> 90449 Nürnberg
>>
>> HRB Nürnberg: 17193
>> Geschäftsführer: Yong-Harry Steiert
>>
>> Tel.: 0911/36 78 88 - 26
>> Fax: 0911/36 78 88 - 20
>>
>> www.geneon.de
>>
>> Weitere Mitglieder der Willmy MediaGroup:
>>
>> IRS Integrated Realization Services GmbH:    www.irs-nbg.de
>> Willmy PrintMedia GmbH:                            www.willmy.de
>> Willmy Consult & Content GmbH:                 www.willmycc.de
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Craig Ringer [mailto:craig@postnewspapers.com.au]
>> Gesendet: Dienstag, 5. Oktober 2010 02:35
>> An: fop-users@xmlgraphics.apache.org
>> Cc: mithunk
>> Betreff: Re: AW: Identifying absolute position of a FO:Block
>>
>> On 4/10/2010 11:28 PM, mithunk wrote:
>>>
>>> Thanks Georg,
>>>
>>> I am new to FOP. Can you please help me with how to calculate the
>>> position
>>> by giving a block id.
>>> I modified my XSL with a block id (for a field), now dont know how to
>>> calculate the position.
>>
>> METHOD 1:
>>
>> Use fop to produce the intermediate "area tree" output from your XSL-FO.
>> See the documentation for details on that.
>>
>> Once you have the area tree, use xpath to find the block. IIRC the id
>> will be in the 'prod-id' attribute of the block(s) generated. If it's
>> broken across a page, column, etc there may be more than one element
>> generated.
>>
>> Once you've found the element(s) you should be able to work out the
>> position from the positioning attributes them and their parent elements.
>>
>> It's possible that the new intermediate format ("IF") is better than the
>> area tree for this, but I haven't worked with it much so all I can
>> suggest is generating it, looking at it, and seeing if it's useful. I
>> have the feeling the new IF doesn't include element IDs, but I may be
>> misremembering.
>>
>> --
>> Craig Ringer
>>
>> Tech-related writing at http://soapyfrogs.blogspot.com/
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
>> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
>>
>>
>>
>
> --
> View this message in context:
> http://old.nabble.com/Identifying-absolute-position-of-a-FO%3ABlock-tp29858679p29890837.html
> Sent from the FOP - Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org
>
>
>

--
View this message in context: http://old.nabble.com/Identifying-absolute-position-of-a-FO%3ABlock-tp29858679p29900934.html
Sent from the FOP - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
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