我需要如何在氧气中使用名为 com.elovirta.ooxml 的 DITA OT 插件将 dita 转换为 word 的步骤

Posted

技术标签:

【中文标题】我需要如何在氧气中使用名为 com.elovirta.ooxml 的 DITA OT 插件将 dita 转换为 word 的步骤【英文标题】:I need steps how to convert dita to word using DITA OT plugin named com.elovirta.ooxml in oxygen 【发布时间】:2017-05-17 07:08:39 【问题描述】:

我需要通过使用名为 com.elovirta.ooxml 的插件名称使用 this 链接将 DITA 转换为氧气中的文字处理的步骤,

输入 Dita xml 文件为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
  PUBLIC "urn:pubid:doctypes:dita:topic" "topic.dtd">
<topic id="d63e3" xml:lang="en-US" outputclass="Student_Notebook">
  <title outputclass="Title">Student Notebook</title>
  <body>
    <section outputclass="Handout"><title>Labs Student Notebook
        1</title><p outputclass="SC_P_Large_Center">Module 1</p><p
        outputclass="SC_P_Large_Center">Literacy Labs</p><p outputclass="SC_P_Large_Center">Student
        Notebook</p><p outputclass="SC_P_Medium">________________ _______________ _______________
        _______________ </p></section>
  </body>
</topic>

我尝试通过 DITA-OT 2.1.0,在 dita ot 中安装了三个插件 com.elovirta.ooxml、org.dita.base、org.dita.pdf2 因为这三个插件相互依赖所以我安装了三个插件。在 com.elovirta.ooxml plugin.xml 代码中提到这样的:

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

所以我安装了三个插件。之后,我在命令提示符中运行了这样的命令:

C:\DITA-OT\dita-ot-2.1.0-dita2word>ant -f integrator.xml

Buildfile: C:\DITA-OT\dita-ot-2.1.0-dita2word\integrator.xml

strict:

integrate:
      [jar] Building jar: C:\DITA-OT\dita-ot-2.1.0-dita2word\lib\dost-configuration.jar

BUILD SUCCESSFUL
Total time: 0 seconds

之后

我已经在 Oxygen 中完成了这个过程:

在transformation Scenario中,我选择了DITA OT Transformation,

我选择的转换类型,

我没有更改任何参数

以下屏幕截图中显示的 3 个点

enter image description here

通过单击 ok 按钮,我在转换运行后创建了场景,但出现此错误:

Description: [DOTJ025E] The input to the "topic merge" transform process could not be found. Correct any earlier transform errors and try the build again, or see the DITA-OT User Guide for additional causes.

所以我在插件安装后尝试使用 dita-ot-2.4.1 更新版本,我已经运行了命令:

C:\DITA-OT\dita-ot-2.4.1>ant -f integrator.xml
Buildfile: C:\DITA-OT\dita-ot-2.4.1\integrator.xml

integrate:

BUILD FAILED
C:\DITA-OT\dita-ot-2.4.1\integrator.xml:43: java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableSet
        at org.dita.dost.platform.Integrator.<clinit>(Integrator.java:79)
        at org.dita.dost.platform.IntegratorTask.execute(IntegratorTask.java:32)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:435)
        at org.apache.tools.ant.Target.performTasks(Target.java:456)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
        at org.apache.tools.ant.Main.runBuild(Main.java:854)
        at org.apache.tools.ant.Main.startAnt(Main.java:236)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.ImmutableSet
        at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1388)
        at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1337)
        at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1089)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 19 more

Total time: 0 seconds

我收到此错误,所以我没有使用 DITA OT 较新版本。

git中做完这个命令之后

$ ./dita --input=/E/SampleFile.dita -f docx

我得到的错误是:

 [pipeline] Error at xsl:element on line 64 of topicmergeImpl.xsl:
 [pipeline]   XTDE0820: Invalid element name. Invalid QName 
 [pipeline]   in built-in template rule
Error: Failed to run pipeline: Failed to process merged topics: Invalid element name. Invalid QName 

请提供解决此错误的建议以及最多 dita2word 转换。

提前致谢

【问题讨论】:

【参考方案1】:

缺少一个 Java 类,可能是因为您混合了不兼容版本的工具包或其插件。

因为您使用的是 Windows 机器,所以您需要一个有效的命令行界面来执行以下命令。我推荐你安装Git,因为它带有Git Bash,它包含一个很好的命令行界面,可以让你执行基本的Unix命令,如lsvicurl

Git Bash 中, 执行:

    打开您的用户主目录。

    cd ~
    

    创建一个temp目录。

    mkdir temp
    

    转到 temp 目录。

    cd temp
    

    下载最新的 DITA-OT。

    curl -LO https://github.com/dita-ot/dita-ot/releases/download/2.4.1/dita-ot-2.4.1.zip
    

    解压 OT。

    unzip dita-ot-2.4.1.zip
    

    转到 bin 目录。

    cd dita-ot-2.4.1/bin/
    

    安装 com.elovirta.ooxml 插件。

    ./dita --install https://github.com/jelovirt/com.elovirta.ooxml/archive/master.zip
    

    从 DITA-OT 文档生成一个 docx。

    ./dita --input ../docsrc/userguide-book.ditamap -f docx
    

【讨论】:

'input' 格式我们可以这样添加吗? ./dita --E:/Batch_4.dita ../docsrc/userguide-book.ditamap -f docx 方法正确吗? 不,您可以在文档中找到参数参考:dita-ot.org/2.4/user-guide/build-using-dita-command.html 您的回答对我来说部分有效,但我在使用 DITA OT 2.1.0 时遇到了同样的错误如果可能,请帮助我解决在问题中编辑的错误 这个网站不是免费的编码服务,但是根据错误信息,你的内容(元素名称)有某种错误。 嗨@Stefan Eike “Dita to word”是否可以使用 Dita OT 1.8.5?

以上是关于我需要如何在氧气中使用名为 com.elovirta.ooxml 的 DITA OT 插件将 dita 转换为 word 的步骤的主要内容,如果未能解决你的问题,请参考以下文章

如何过滤掉或停止获取 Opendaylight(氧气)BGP-LS 数据更改事件中的数据字段

(Eclipse氧气/ Linux)链接器C / C ++ RAM使用情况

Eclipse 氧气找不到 IBM MobileFirst Studio

无法在 Eclipse(氧气)中编辑服务器运行时环境

BFS,优先队列优化

如何在没有动态 Web 模块 3.0 facet hacks 的情况下将 jdk 9 maven spring boot 2 项目导入 eclipse ee 氧气?