当前位置: 首页 > 知识库问答 >
问题:

使用插件com.elovirta将DITA转换为DOCX。DITA OT 1.8.5中的ooxml

楚嘉
2023-03-14

在DITA OT 1.8.5中,可以使用插件com.elovirta.ooxml将DITA转换为DOCX吗

输入dita映射文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map PUBLIC "urn:pubid:org:doctypes:dita:map" "map.dtd">
<map>
    <title>This is a test DITA Map</title>
    <topicref href="Bank.dita"/>
</map>

并输入dita文件:

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

docx转换运行后,我得到的错误日志如下:

docx.convert:

 >[xslt] Processing E:\Vinod\2017\Jan\4-1\temp\docx\oxygen_dita_temp\Test_MERGED.xml to E:\Vinod\2017\Jan\4-1\temp\docx\oxygen_dita_temp\Test_CLEANED.xml
 [xslt] Loading stylesheet C:\DITA-OT\DITA-OT1.8.5-ELED\plugins\com.elovirta.ooxml\docx\word\document.flat.xsl
 [xslt] Processing E:\Vinod\2017\Jan\4-1\temp\docx\oxygen_dita_temp\Test_CLEANED.xml to E:\Vinod\2017\Jan\4-1\temp\docx\oxygen_dita_temp\docx\docProps\core.xml
 [xslt] Loading stylesheet C:\DITA-OT\DITA-OT1.8.5-ELED\plugins\com.elovirta.ooxml\docx\docProps\core.xsl
 [xslt] Processing E:\Vinod\2017\Jan\4-1\temp\docx\oxygen_dita_temp\Test_CLEANED.xml to E:\Vinod\2017\Jan\4-1\temp\docx\oxygen_dita_temp\docx\word\document.xml
 [xslt] Loading stylesheet C:\DITA-OT\DITA-OT1.8.5-ELED\plugins\com.elovirta.ooxml\docx\word\document.xsl
 [xslt] C:\DITA-OT\DITA-OT1.8.5-ELED\plugins\com.elovirta.ooxml\docx\word\document.topic.xsl:22:30: Warning! Stylesheet module file:/C:/DITA-OT/DITA-OT1.8.5-ELED/plugins/com.elovirta.ooxml/docx/word/document.topic.xsl is included or imported more than once. This is permitted, but may lead to errors or unexpected behavior
 [xslt] C:\DITA-OT\DITA-OT1.8.5-ELED\plugins\com.elovirta.ooxml\docx\word\document.topic.xsl:604:47: Fatal Error! No template exists named getVariable
 [xslt] Failed to process E:\Vinod\2017\Jan\4-1\temp\docx\oxygen_dita_temp\Test_CLEANED.xml

在C:\DITA-OT\DITA-OT1.8.5-ELED\BUILD中生成失败。xml:44:执行此行时发生以下错误:C:\DITA-OT\DITA-OT1.8.5-ELED\plugins\com.elovirta.ooxml\build。xml:74:javax.xml.transform。TransformerConfiguration异常:net.sf.saxon.s9api。SaxonApiException:样式表编译失败:net.sf.saxon.jaxp.SaxonTransformerFactory报告了1个错误。newTemplates(未知来源)位于org.apache.tools.ant.taskdefs.optional.TraXLiaison.readTemplates.traxlianison.java:300,位于org.apache.tools.ant.taskdefs.opt.traxlia ison.createTransformer(traxliason.java:317),位于org.apache.tools.ant.taskdefs.optional.traxlian ison.transform(traxlia.java:178),位于org.apache.tools.ant.taskdefs.XSLTProcess.execute(xsltprocesss.java:414)位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)位于sun.reflect.delegatingMethodAccesserImpl的org.apa.tool.ant.unknowneElement.exece(Unknowneelement.java:292)。在java.lang.reflect.Method中调用(未知源)。调用(未知源)org.apache.tools.ant.DispatchUtils.execute(dispatchtils.java:106)org.apache.tools.ant.Task.perform(Task.java:348)org.apache.tools.ant.Target.executive(Target.java:435)org.apche.tools.ant.Target.performTasks(Target.java:456)org.pacche.Tool.ant.Project.ExecutedTargets(Project.java:1393)org.apache.tools.ant.helper.SingleCheckExecutor.Executetarets(singlecheckeExecutor.java:38)位于org.apach.tools.ant.Project.ExecuteGets(Project.java:1248)位于org.apache.tools.ant.taskdefs.ant.execute(ant.java:440),位于org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105),位于org.apache.tools.ant.UnknowneElement.Execut(UnknownElement.java:292)位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)位于sun.reflect.DelegatingMethodAccesserImpl。在java.lang.reflect.Method中调用(未知源)。在处调用(未知源)

net.sf.saxon.s9api。SaxonApiException:样式表编译失败:在net.sf.saxon.s9api.XsltCompiler.compiler(xsltcompler.java:546)和net.sf.saxn.jaxp.saxtransformerFactory报告了1个错误。newTemplates(未知来源)位于org.apache.tools.ant.taskdefs.optional.TraXLiaison.readTemplates.traxlianison.java:300,位于org.apache.tools.ant.taskdefs.opt.traxlia ison.createTransformer(traxliason.java:317),位于org.apache.tools.ant.taskdefs.optional.traxlian ison.transform(traxlia.java:178),位于org.apache.tools.ant.taskdefs.XSLTProcess.execute(xsltprocesss.java:414)位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)位于sun.reflect.delegatingMethodAccesserImpl的org.apa.tool.ant.unknowneElement.exece(Unknowneelement.java:292)。在java.lang.reflect.Method中调用(未知源)。调用(未知源)org.apache.tools.ant.DispatchUtils.execute(dispatchtils.java:106)org.apache.tools.ant.Task.perform(Task.java:348)org.apache.tools.ant.Target.executive(Target.java:435)org.apche.tools.ant.Target.performTasks(Target.java:456)org.pacche.Tool.ant.Project.ExecutedTargets(Project.java:1393)org.apache.tools.ant.helper.SingleCheckExecutor.Executetarets(singlecheckeExecutor.java:38)位于org.apach.tools.ant.Project.ExecuteGets(Project.java:1248)位于org.apache.tools.ant.taskdefs.ant.execute(ant.java:440),位于org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105),位于org.apache.tools.ant.UnknowneElement.Execut(UnknownElement.java:292)位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)位于sun.reflect.DelegatingMethodAccesserImpl。在java.lang.reflect.Method中调用(未知源)。在org.apache.tools.ant.Target.execute(Target.java:435)和org.apachi.tool.ant.Project.executedtargets(Target.java:1393)的org.apach.tools.ant.Target.execute(Target.java:433)和org.apache.tools.ant.Target.performTasks(Target.java:456)上的org.apache.tools.ant.Task.执行(Task.java:348)上调用(未知源)(Project.java:1364)在org.apache.tools.ant.helper.DefaultExecutor.ExecuteTarets(DefaultExactor.java:41)上,在org.apache.tools.ant.Project.Executetarets上(Project.java:1248),在org.apache.tools.ant.Main.runBuild上(Main.java:851),在org.apache.tools.ant.Main.startAnt上(mai.java:235),在org.apache.tools.ant.launch.Launcher.run上(Launcher.java:280)上(Launcher.java:109)由:net.sf.saxon.trans引起。XPathException:样式表编译失败:在net.sf.saxon.style.compilation.compilesSingletonPackage(compile.java:97)和net.sfs.saxn.s9api.XsltCompiler.compiler(XsltCompiler.java:543)报告了1个错误…35更多信息

总时间:6秒

该过程已完成,退出代码为:1

请帮助我。

共有1个答案

云长恨
2023-03-14

您的插件将无法与DITA-OT 1.8.5(即EOL)一起使用。您的转换失败,因为找不到 getVariable 函数,该函数已随 DITA-OT 2.x 引入。您绝对应该考虑将环境迁移到 DITA-OT 2.x。如果不能,请使用 com.elovirta.ooxml 和 DITA 专业为 docx 转换设置第二个工具包。您可以在转换期间通过设置 dita.dir 参数来选择 OT。也可以在生成脚本中执行此操作。不值得尝试向后移植 com.elovirta.ooxml,您应该更好地将资源用于升级环境。

 类似资料:
  • 我有一个应用程序试图拉一些数据从数据库,然后保存在一个docx文件。这些数据的一部分是html代码,因此使用docx4j,我能够将html代码转换为docx格式。这里有一个相关的帖子。 现在,我想使用docx4j将这部分文本(在docx文件的表单元格中)转换回html格式,并将html代码保存到数据库中。 或者也许有更好的解决方案来完成从docx到HTML的转换?希望我说清楚了。任何提示都很感激。

  • 我正在努力寻找用Python将PDF文件转换为.docx文件的方法。 我见过其他与此相关的帖子,但在我的情况下,它们似乎都不正常。 我特别使用 这给了我输出[1],但在我的文件夹中找不到任何.docx文档。 我已经安装了LibreOffice 5.3。 有什么线索吗? 提前谢谢你!

  • 我一直在尝试使用他们的库将html内容转换为docx,我确实在运行我的应用程序后创建了一个docx文件,但它有空白内容,而html中确实有一些内容。请检查下面的代码,我已经包含了git上AndroidDocxtoHTML示例中所有必要的库。 代码: 我不明白我得到的空白文档的代码中缺少了什么。我为java找到了这段代码,我为android修改了这段代码。有些人建议使用夜间构建jar进行xhtml转

  • 我正在寻找一些“稳定”的方法来转换从MS WORD到PDF文件的DOCX文件。从现在起,我使用OpenOffice安装作为监听器,但它经常挂起。问题是,当许多用户同时想要将SXW、DOCX文件转换成PDF时,我们会遇到这样的情况。还有其他的可能性吗?我尝试了这个网站上的示例:https://angelozerr.wordpress.com/2012/12/06/how-to-convert-doc

  • 上面的代码给了我一个错误,如下所示 线程“main”java.lang.nosuchmethoderror:org.docx4j.org.xhtmlrenderer.docx.docx.docx.docxrenderer.(ljava/lang/string;)V在org.docx4j.convert.in.xhtml.xhtmlimporterimpl.getrenderer(xhtmlimpo

  • 我在运行时生成了一个docx文档,我想将其转换为PDF,而无需实际将文件保存在本地 PdfConverter无效。我怎样才能做到这一点?