Embedding a Company Logo
The following procedure explains how to embed a company logo image in the
front matter of the book for the DITA Map PDF - based on XSL-FO transformation scenario.
- Create a customization directory (if you have not already done so).
- Create a cfg\common\artwork directory structure
in your customization directory and copy your logo to that directory (for example,
[C:\Customization\common\artwork\logo.png).Important: Make sure that your logo image is named: logo.png.
- Rename Customization\catalog.xml.orig to: Customization\catalog.xml.
-
Open the catalog.xml in Oxygen XML Editor and uncomment this line:
<!--uri name="cfg:fo/xsl/custom.xsl" uri="fo/xsl/custom.xsl"/-->
It now looks like this:<uri name="cfg:fo/xsl/custom.xsl" uri="fo/xsl/custom.xsl"/>
- Rename the file Customization\fo\xsl\custom.xsl.orig to: C:\Customization\fo\xsl\custom.xsl
-
Open the custom.xsl file in Oxygen XML Editor and create the template called
createFrontCoverContents
for DITA-OT 4.1.2.Tip: You can copy the same template from DITA-OT-DIR\plugins\org.dita.pdf2\xsl\fo\front-matter.xsl and modify it in whatever way necessary to achieve your specific goal. This new template in the custom.xsl file will override the same template from DITA-OT-DIR\plugins\org.dita.pdf2\xsl\fo\front-matter.xsl.Example:
For example, the custom.xsl could look like this:<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="2.0"> <xsl:template name="createFrontCoverContents"> <!-- set the title --> <fo:block xsl:use-attribute-sets="__frontmatter__title"> <xsl:choose> <xsl:when test="$map/*[contains(@class,' topic/title ')][1]"> <xsl:apply-templates select="$map/*[contains(@class,' topic/title ')][1]"/> </xsl:when> <xsl:when test="$map//*[contains(@class,' bookmap/mainbooktitle ')][1]"> <xsl:apply-templates select="$map//*[contains (@class,' bookmap/mainbooktitle ')][1]"/> </xsl:when> <xsl:when test="//*[contains(@class, ' map/map ')]/@title"> <xsl:value-of select="//*[contains(@class, ' map/map ')]/@title"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="/descendant::*[contains (@class, ' topic/topic ')][1]/*[contains(@class, ' topic/title ')]"/> </xsl:otherwise> </xsl:choose> </fo:block> <!-- set the subtitle --> <xsl:apply-templates select="$map//*[contains (@class,' bookmap/booktitlealt ')]"/> <fo:block xsl:use-attribute-sets="__frontmatter__owner"> <xsl:apply-templates select="$map//*[contains(@class,' bookmap/bookmeta ')]"/> </fo:block> <!-- Load the image logo --> <fo:block text-align="center" width="100%"> <fo:external-graphic src="url({concat($artworkPrefix, 'Customization/OpenTopic/common/artwork/logo.png')})" /> </fo:block> </xsl:template> </xsl:stylesheet>
- Edit the DITA Map PDF - based on XSL-FO transformation scenario, go to the
Parameters tab, and set the
customization.dir
parameter to point to the location of your customization directory.
Tip: For other specific examples, see DITA-OT Documentation -
Customizing PDF Output.