OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] rotate figures with a pi


Hi Benno,
I think this is an issue with FOP.  The output looks correct when processed with RenderX's XEP and Antenna House XSL Formatter.
 
I'm still not quite clear on what you mean when you say that "some of the attributes are not reached through".  Exactly which attributes and where did you expect them to appear?  You mentioned start-indent, but I would not have expected the start-indent="0" from pgwide="1" to be put on your fo:block-container since that is a customization you added.  Your customization needs to add any properties it needs.  Nothing inherits outward, only inward in the hierarchy. 
 
I don't see any other attributes that are not properly passed though.  In your original mail, you highlighted the content-width="scale-to-fit" property in your FO output, but that actually is being output by the stylesheet.
 
You might try using the free version of XEP to see if produces the results you want, and then raise the issue with the FOP group if it cannot duplicate that result.
 
Bob Stayton
Sagehill Enterprises
bobs@sagehill.net
 
 
----- Original Message -----
From: Benno Wolf
Sent: Wednesday, November 02, 2011 9:13 AM
Subject: Re: [docbook-apps] rotate figures with a pi

Hi,
thanks for the replies, unfortunately Dean Nelsons solution did not work either.
So here is what I use and get out of it:

Input.xml:
<figure pgwide="1">
            <?landscapeFigure?>
            <title>Message Flow</title>
            <mediaobject>
               <imageobject>
                  <imagedata fileref="Pictures/MessageFlow.png" width="100%" contentdepth="100%" scalefit="1"/>
               </imageobject>
            </mediaobject> 
</figure>


Customization.xsl:
<xsl:template match="d:figure[processing-instruction('landscapeFigure')]">
        <fo:block-container
            reference-orientation="90"
            start-indent="0"
            width="100%"
            height="auto">
        <xsl:apply-imports/>
        </fo:block-container> 
</xsl:template>

Input.fo:
<fo:block-container reference-orientation="90" start-indent="0" width="100%" height="auto">
                <fo:block start-indent="0pt">
                    <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em"
                        space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="auto" id="d0e172">
                        <fo:block
                            space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt"
                            hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" font-family="inherit"
                            keep-with-next.within-column="always">
                            Figure 2. Message Flow
                        </fo:block>
                        <fo:block id="d0e179">
                            <fo:external-graphic src="" width="100%" height="auto" content-width="scale-to-fit"
                                content-height="100%"/>
                        </fo:block>
                    </fo:block>
                </fo:block>
</fo:block-container>


As I said, the problem is that some of the attributes are not reached through, which is why I had to put the fo-attribute

start-indent="0"

in my customized template to make sure the fo:block-container gets this information as well (one can see that the original fo:block still has it, but it has no effect since fo:block-container is wrapped around).

Somehow, these attributes have no effect, at least not with my setup, which is:

DocBook XSL 1.75.2
Saxon 6.5.5
FOP 1.0

Don't know if it is important, but I use
oXygen 11.2
to process the docs.

Since technical documentation tend to have more big pictures like flow charts, toolchains and such, I think it would make sense to put in a landscape attribute, like the one for tables, for pictures as well.

Anyway, many thanks for any help.

Regards,
Benno

 

2011/11/1 Bob Stayton <bobs@sagehill.net>
Hi Benno,
Not sure what is going on here.
Can you show exactly what the <figure> element with its <imagedata> element looks like (including all input attributes), as well as the fo output that you are getting that is not correct?  Also, what version of the stylesheets are you using?  Thanks.
 
Bob Stayton
Sagehill Enterprises
bobs@sagehill.net
 
 
----- Original Message -----
From: Benno Wolf
Sent: Thursday, October 27, 2011 1:45 AM
Subject: [docbook-apps] rotate figures with a pi

Hi,
I have a couple of big pictures which would fit nicely on a a4-page in landscape - orientation. To do so, I used a processing instruction as described in Mr. Stayton's book here. The problem seems that some attributes given to <figure> and <imageobject> does not have an effect to the rendered PDF. I even managed to replace the attribute to figure, pgwide="1", which seems to be ineffective because it's is going to the <fo:block> but not to the <fo:block-container>. That was easy since you just have to put the start-indent="0" attribute to this wrapper in the customization layer like that:

<xsl:template match="d:figure[processing-instruction('landscapeFigure')]">
     <fo:block-container reference-orientation="90" start-indent="0" width="100%" height="auto">
        <xsl:apply-imports/>
     </fo:block-container>
</xsl:template>

Problem is now that the scalefit="1" - attribute to the <imagedata> - element does not go through to the generated .fo so the picture is still far to big. If the fo file would look like that:


 <fo:block-container reference-orientation="90" start-indent="0" width="100%" height="auto"><fo:block start-indent="0pt">
 <fo:block space-before.minimum="0.5em" space-before.optimum="1em" space-before.maximum="2em" space-after.minimum="0.5em" space-after.optimum="1em" space-after.maximum="2em" keep-together.within-column="auto" id="d0e159">
 <fo:block space-before.optimum="1em" space-before.minimum="0.8em" space-before.maximum="1.2em" font-weight="bold" font-size="12pt" hyphenate="false" space-after.minimum="0.4em" space-after.optimum="0.6em" space-after.maximum="0.8em" font-family="inherit" keep-with-next.within-column="always">Description</fo:block>
 <fo:block id="d0e166"><fo:external-graphic src="" width="100%" height="auto" content-width="scale-to-fit" content-height="100%"/></fo:block></fo:block></fo:block></fo:block-container>

then the picture would fit on the page perfectly.
Is there a possibility to reach the scale-to-fit - instruction through or give it in the customization layer?

Any answer is appreciated.

Regards,
Benno



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]