divxml output and pickups v main text placement

Hi there.

Does anyone have any general, high level feedback on interpreting the placement of pickups from divxml output.

We are looking at divxml output for a 2 column page layout where a pickup with a textual annotation places at the top of the second column/main block. 

The y and x coordinates for the main block and the stream containing the pickup match up. From the divxml output, we are having a hard time determining 

that the main text follows the pickup, and not visa versa. 

We try looking down in the the <group> and <line> attributes, but there are a lot of those tags in there, and we can't rely on taking the values from line[1]/

Anyway, if anyone has general hits or ideas on determining from the divxml attributes if a pickup falls before or after main text in a column, I'd really appreciate the input.


John Hoffman 



  • Aren't the various streams processed in turn? I don't see how divxml would be able to determine the order of the output based on position on page. If divxml isn't outputting the necessary information, you could px/pa whatever information you need and see if that gets output via divxml. Alternatively, use frills processing to scan the page for pickup streams and output whatever missing information you need.

  • John,

    I am not sure I completely understand your problem.

    I just recently finished a project in which we go from xpp to word in which we had to output things in the same order as they were vertically positioned on the page (2 column job with frozen pickups and sometimes frozen main blocks next to each other). I was using the divxml output for that and found all the necessary information in there.

    divxml outputs the same information as you can find as system variables as compose.
    It will give you the starting x,y coordinates of the pickup stream, the x, y coordinates of each block inside the pickup and the y position of each line. And it does the same for the main text blocks and line.
    Using that information it should be perfectly possible to determine the exact position of each thing on the page.

    I am guessing that your problem is:

    We try looking down in the the <group> and <line> attributes, but there are a lot of those tags in there, and we can't rely on taking the values from line[1]/

    But isn't it possible to look inside the <line> and look at the <t> elements (which you have to do anyway as they contain another set of x and y coordinates) and find the first one that contains actual text?

    Can you explain why this is a problem to you (maybe with a small excerpt from the divxml result)?  

  • Thanks everyone! 
    And, Bart, my work here is related to converting divxml data to MSWORD. 
    I think I can simplify my question, which is related to merging text from a pickup with text from the main block in document order. 
    The question is this: when the x / y positions of a main block and pickup stream match, can we assume that the text of the pickup comes first, followed by that of the main block. 
    I have a two column page layout with a pickup/annotation containing a quote at the top of the second column. 
    In the divxml there is no real difference in the attributes values related to the positioning the main block and the pickup block. 
    The values are pretty much the same. See bx/sx and by/sy below:
    Main block
     <block type="main" bx="216" by="42" bsx="186" bsy="572" bisy="582" biy="42" rotate="0" ...>

    Pickup stream/block
    <stream type="pickup" id="fmquote95" sx="216" sy="42" ssx="186" ssy="92" ...>
     <block type="annotation" bx="0" by="0" bsx="186" bsy="92" bisy="92" biy="0" rotate="0"  xfloat="2" yfloat="1"  priority="0" ...>
    Given these values are the same, can we assume the text of the pickup come first? 
    Thanks all for your input on this.
  • Other than looking to the x/y location of the first real "text" in the main block versus the pickup to see which is "first", I think you're probably safe in assuming that if the x/y of the main block and pickup stream match then the pickup is first (and has effectively pushed the lines in the main block down below the pickup).

    Your kind of doing something outside of the "scope" of XML Export (divxml), which was designed to give enough information to duplicate pages, i.e. the "placement" and "characteristics" of the data. I don't think we considered anything specific about the "order" (e.g. of main text versus pickup text) in the design. There really isn't inherently any "order" of the two streams - they are somewhat independent (although they affect each other) and they are just "placed". And obviously which is "first" on a page (according to your definition) can vary.

    Jonathan Dagresta
    SDL XPP Engineering

  • I understand, so there is some risk in this that needs to be flushed out. 

    The primary intent of placing the text in document order is to support the conversion to MSWORD/HTML with formatting characteristics obtainable from the divxml markup.


    John Hoffman