← Prev in month
← Prev in thread
Next in thread →
Next in month →
Re: [docbook-apps] OPF file for EPUB is linking to images with differentroles
Thanks Bob,
I had a play around with the epub/docbook.xsl and managed to get it
working.
I am not sure if it's 100% correct, but below is my modified custom
template for handling mediaobject:
<xsl:template match="d:mediaobject|d:mediaobjectco|d:inlinemediaobject"
mode="opf.manifest">
<xsl:variable name="olist" select="d:imageobject|d:imageobjectco"/>
<!-- Glenn McDonald: Limit the mediaobject to the one that matches our
role -->
<xsl:variable name="object.index">
<xsl:call-template name="select.mediaobject.index">
<xsl:with-param name="olist" select="$olist"/>
<xsl:with-param name="count" select="1"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="object" select="$olist[position() = $object.index]"/>
<!-- Glenn McDonald: replaced d:imageobject with $object as defined
above -->
<xsl:choose>
<xsl:when test="$object/d:imagedata[@format = 'GIF' or
@format = 'GIF87a' or
@format = 'GIF89a' or
@format = 'JPEG' or
@format = 'JPG' or
@format = 'PNG' or
@format = 'SVG']">
<xsl:apply-templates select="$object[d:imagedata[@format = 'GIF' or
@format =
'GIF87a' or
@format =
'GIF89a' or
@format =
'JPEG' or
@format = 'JPG' or
@format = 'PNG' or
@format =
'SVG']][1]/d:imagedata"
mode="opf.manifest"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="$object/d:imagedata[1]" mode="opf.manifest"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Cheers,
Glenn
On 15/07/2010 2:47 AM, Bob Stayton wrote:
> Hi Glenn,
> I looked at the epub/docbook.xsl stylesheet, and it does have a custom
> template for handling mediaobject. Unfortunately, it does not run the
> selection routine to pick one of several imageobjects, so you get them
> all.
>
> To see how it should be handled, look in xhtml/graphic.xsl, at the
> template starting with:
>
> <xsl:template match="mediaobject|mediaobjectco">
>
> you will see that the first steps are to call the template named
> 'select.mediaobject.index', which should return one imageobject.
> That's where the role attribute is used to select one of the
> imageobjects.
>
> Out of the box, the supported values of role are 'html', 'xhtml', or
> 'fo', but you can easily add a new one like 'epub' by setting the
> 'preferred.mediaobject.role' stylesheet param. See this reference for
> more information.
>
> http://www.sagehill.net/docbookxsl/GraphicSelection.html
>
> Bob Stayton
> Sagehill Enterprises
>
>
>
> ----- Original Message ----- From: "Glenn McDonald"
> <>
> To: <>
> Sent: Tuesday, July 13, 2010 10:59 PM
> Subject: [docbook-apps] OPF file for EPUB is linking to images with
> different roles
>
>
>> For Docbook 4.x, I was able to use the following to force PDF's to
>> use SVG and HTML Books to use PNG's:
>>
>> <mediaobject>
>> <imageobject role="fo">
>> <imagedata fileref="screenshots/wizard_step_1.svg" scale="70"/>
>> </imageobject>
>> <imageobject role="html">
>> <imagedata fileref="screenshots/wizard_step_1.png" scale="70"/>
>> </imageobject>
>> </mediaobject>
>>
>> This still works for PDF and HTML documents, however, I am finding
>> that the epub translation causes both of these images to be
>> referenced in the OPF file:
>>
>> <manifest>
>> ...
>> <item id="d0e88" href="screenshots/wizard_step_1.svg"
>> media-type="image/svg+xml"/>
>> <item id="d0e94" href="screenshots/wizard_step_1.png"
>> media-type="image/png"/>
>> ...
>> </manifest>
>>
>> The raw html output of the translated epub is (correctly) only
>> referencing the .png file
>>
>> <div class="mediaobject"><img src="screenshots/wizard_step_1.png"
>> width="378" alt="Step 1 Image Data"/>
>>
>> Incidentally, what "role" should an epub document be? role="epub"
>> does not seem to work. Is it "xhtml"?
>>
>> Glenn
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> For additional commands, e-mail:
>>
>>
>>
>
← Prev in month
← Prev in thread
Next in thread →
Next in month →