在dita-ot中生成默认pdf

时间:2016-12-13 12:00:52

标签: pdf ant dita

我创建了一个插件并尝试以pdf格式生成输出。我的构建成功,但我的插件没有运行。输出是默认的pdf。我错过了什么?

这是我的build_pdf2w_template / ant文件: -

    <?xml version="1.0" encoding="UTF-8"?>

<project name="org.dita.pdf2w" default="dita2pdf2w" basedir=".">

    <property name="transtype" location="C:\Program Files\dita-ot-2.4"/>


    <target name="dita2pdf2w"  description="build PDF" depends="pdf"/>

        <target name="pdf" description="build PDF">
        <ant antfile="C:\Program Files\dita-ot-2.4\plugins\org.dita.pdf2w\build_pdf2w_template.xml">
            <property name="args.input" value="D:\AutoCOM-Demo\AutoCOM.ditamap"/>
            <property name="args.gen.task.lbl" value="YES"/>   
            <property name="args.rellinks" value="nofamily"/>   
            <property name="output.dir" value="C:\"/>
            <property name="transtype" value="pdf"/>
        </ant>
    </target>

</project>

插件: -

<?xml version="1.0" encoding="UTF-8"?>


<plugin id="org.dita.pdf2w">
    <require plugin="org.dita.pdf2w"/>
    <feature extension="dita.conductor.transtype.check" value="pdf2w"/>
    <feature extension="dita.transtype.print" value="pdf2w"/>

    <feature extension="dita.conductor.target.relative" file="build.xml"/>
</plugin>

积分仪: -

<?xml version="1.0" encoding="UTF-8"?>




<project name="org.dita.pdf2w">
    <target name="dita2pdf2w.init">
        <property name="customization.dir" location="${dita.plugin.org.dita.pdf2w.dir}/cfg"/>
    </target>
    <target name="dita2pdf2w" depends="dita2pdf2w.init , dita2pdf2w"/>
</project>

构建: -

<?xml version="1.0" encoding="UTF-8"?>

<project>
    <import file="build_pdf2w_template.xml"/>
</project>

2 个答案:

答案 0 :(得分:0)

你的plugin.xml看起来不错,它直接引用了“build.xml”,所以如果你有一个“integrator.xml”,那就完全不会被调用了。 在build.xml中,ANT目标“dita2pdf2w”最后有一个自动调用,因此不好。 基本上你的构建文件应该是这样的:

NewLine

您还可以使用Jarno Elovirta的PDF插件生成器生成启动自定义插件: http://dita-generator.elovirta.com/

答案 1 :(得分:0)

根据@ RaduCoravu的建议,我修改了你的插件相关文件。

[pdf2w / plugin.xml中]

<?xml version="1.0" encoding="UTF-8"?>
<plugin id="org.dita.pdf2w">
    <feature extension="dita.conductor.transtype.check" value="pdf2w"/>
    <feature extension="dita.transtype.print" value="pdf2w"/>
    <feature extension="dita.conductor.target.relative" file="integrator.xml"/>
</plugin>

[pdf2w / integrator.xml]

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <import file="build.xml"/>
</project>

[pdf2w /的build.xml]

<?xml version="1.0" encoding="UTF-8"?>
<project name="org.dita.pdf2w">
    <target name="dita2pdf2w.init">
        <property location="${dita.plugin.org.dita.pdf2w.dir}/cfg" name="customization.dir"/>
    </target>
    <target depends="dita2pdf2w.init, dita2pdf2" name="dita2pdf2w"/>
</project>

如果您正确配置pdf2w / cfg目录,这肯定会有效。

以下文件是一个简单的自定义示例:

[pdf2w / cfg中/的catalog.xml]

<?xml version="1.0" encoding="utf-8"?>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">
   <!-- Custom XSL code entry.-->
   <uri name="cfg:fo/xsl/custom.xsl" uri="fo/xsl/custom.xsl"/>
</catalog>

[pdf2w / cfg中/ FO / XSL / custom.xsl]

<?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 match="*[contains(@class, ' task/cmd ')]" priority="1">
        <fo:block xsl:use-attribute-sets="cmd">
            <xsl:call-template name="commonattributes"/>
            <xsl:attribute name="color" select="'red'"/>
            <xsl:attribute name="font-size" select="'2em'"/>
            <xsl:attribute name="font-weight" select="'bold'"/>
            <xsl:if test="../@importance='optional'">
                <xsl:call-template name="getVariable">
                    <xsl:with-param name="id" select="'Optional Step'"/>
                </xsl:call-template>
                <xsl:text> </xsl:text>
            </xsl:if>
            <xsl:if test="../@importance='required'">
                <xsl:call-template name="getVariable">
                    <xsl:with-param name="id" select="'Required Step'"/>
                </xsl:call-template>
                <xsl:text> </xsl:text>
            </xsl:if>
            <xsl:apply-templates/>
        </fo:block>
    </xsl:template>
</xsl:stylesheet>

[Windows中的命令行]

D:\DITA-OT\dita-ot-2.4>bin\dita -i docsrc/samples/sequence.ditamap -f pdf2w -o out

[结果PDF]

Sample PDF