2016-12-13 33 views
1

我創建了一個插件並試圖生成我的輸出爲pdf。我的構建成功,但我的插件沒有運行。輸出是默認的pdf。我錯過了什麼?在dita-ot中生成默認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> 
+0

我想你混淆了一些事情。你可以添加你的'plugin.xml'文件嗎?如果您剛剛開始構建您的插件,請將其丟棄並使用dita-generator生成一個新插件:http://dita-generator.elovirta.com/這是一個更好的起點。 –

+0

此外,爲您的插件添加'integrator.xml'會很有幫助。 – tmakita

+0

@StefanEike肯定先生我加入我的插件xml。有一件事我沒有進入:dita-generator.elovirta.com是哪裏是生成後的生成/ ant文件? –

回答

0

你的plugin.xml看起來不錯,它直接引用「build.xml」,所以如果你有一個「integrator.xml」,那根本就沒有被調用。 在build.xml中,ANT目標「dita2pdf2w」在最後有一個antcall,因此它不好。 基本上構建文件應該是這個樣子的:

<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>

您還可以使用雅諾Elovirta的PDF插件生成器生成啓動自定義插件: http://dita-generator.elovirta.com/

+0

謝謝先生,先生,我根據我的螞蟻文件上的最新模式做了一些修改,如果它很好,請對其進行審覈。再次修改後,我遇到同樣的問題。 –

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

+0

謝謝,但是用於生成輸出的ant文件呢? http://www.dita-ot.org/2.3/user-guide/creating-an-ant-build-script.html –

+0

我想這是爲氧氣。我沒有使用氧氣。我也需要創建ant腳本。 –

+0

我按照你的和Radu的指示進入了這個錯誤點:-BUILD FAILED 'C:\ Program Files \ dita-ot-2.4 \ build.xml:45:執行這一行時發生以下錯誤: C: \ Program Files \ dita-ot-2.4 \ plugins \ org.dita.pdf2 \ build.xml:140:執行此行時出現以下錯誤: C:\ Program Files \ dita-ot-2.4 \ plugins \ org。 dita.pdf2.fop \ build_fop.xml:151:java.lang.NoSuchMethodError:org.apache.xmlgraphics.xmp.Metadata.mergeInto(Lorg/apache/xmlgraphics/xmp/Metadata;)' –