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

无法打开除MS-Word应用程序之外的生成的docx4j文档

施鸿
2023-03-14

下面是使用DOCX4J生成文档的代码。我只能在MS-Word应用程序中打开生成的文档。

 private static void documentGenerator(String html, File file) throws Docx4JException, JAXBException {
//Word Processing Package
WordprocessingMLPackage wordMLPackage = getWordMLPackage();
NumberingDefinitionsPart ndp = new NumberingDefinitionsPart();
wordMLPackage.getMainDocumentPart().addTargetPart(ndp);
ndp.unmarshalDefaultNumbering();
AlternativeFormatInputPart inputPart = new AlternativeFormatInputPart(AltChunkType.Xhtml);
inputPart.setContentType(new ContentType("text/html"));
inputPart.setBinaryData(html.getBytes());
Relationship altChunkRel = wordMLPackage.getMainDocumentPart().addTargetPart(inputPart);
// .. the bit in document body
CTAltChunk ac = Context.getWmlObjectFactory().createCTAltChunk();
ac.setId(altChunkRel.getId());
wordMLPackage.getMainDocumentPart().addObject(ac);
// .. content type
wordMLPackage.getContentTypeManager().addDefaultContentType("html", "text/html");
//Saving the Document
wordMLPackage.save(file);
}

共有1个答案

皇甫浩壤
2023-03-14

使用XhtmlImporter生成文档,解决了兼容性问题。

下面是代码段

WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
NumberingDefinitionsPart ndp = new NumberingDefinitionsPart();
wordMLPackage.getMainDocumentPart().addTargetPart(ndp);
ndp.unmarshalDefaultNumbering();
AlternativeFormatInputPart inputPart = new AlternativeFormatInputPart(AltChunkType.Xhtml);
inputPart.setContentType(new ContentType("text/html"));
inputPart.setBinaryData(html.getBytes());
Relationship altChunkRel = wordMLPackage.getMainDocumentPart().addTargetPart(inputPart);
// .. the bit in document body
CTAltChunk ac = Context.getWmlObjectFactory().createCTAltChunk();
ac.setId(altChunkRel.getId());
wordMLPackage.getMainDocumentPart().addObject(ac);
// .. content type
wordMLPackage.getContentTypeManager().addDefaultContentType("html", "text/html");
//Saving the Document
wordMLPackage.save(file);
 类似资料:
  • 我用保存了一个文件。我的应用程序中的docx扩展名。该文件保存在sdcard中。该文件在我的sdcard中显示为word文件,但我无法打开它(使用polaris或任何其他默认软件),并显示消息“不支持的文件”。 当我保存扩展名为. txt的文件时,我可以打开它。 谢谢亚历山德鲁...但现在我在运行应用程序时收到一条错误消息,指出“此元素的Javadoc既无法在附加的源代码中找到,也不能在附加的Ja

  • 我想打开一个PDF文件时,用户点击一个按钮。目前,我正在使用这段代码来实现这一点: 但不管用。 当我选择使用Adobe Acrobat时,我会得到一条显示为Toast的消息,它说 当我尝试使用Drive PDF Viewer时,我得到 PDF文件存储在 问题出在哪里? 编辑 现在我使用的是以下代码: 但当我尝试通过点击按钮打开PDF时,应用程序崩溃了。 这是我得到的日志: 这是我的课: } 有人能

  • 我跟随了几篇文章,使用javaclass创建了一个zip文件。拉链已创建,但我无法打开它。在我的Mac电脑上,当我用命令打开它时,我收到了这条消息: 找不到中央目录签名的结尾。此文件不是zipfile,或者它构成多部分存档的一个磁盘。在后一种情况下,将在此存档的最后一个磁盘上找到中心目录和zipfile注释。 解压:在/Users/xxxx/Downloads/iad之一中找不到zipfile目录

  • 我试图通过MS Word打开pdf文件,执行某些操作,例如评估计算、打印文件等,然后继续关闭文件。我收到的错误消息是“Microsoft Excel正在等待另一个应用程序完成OLE操作。” 我之前尝试过超链接跟踪和

  • 本文向大家介绍利用python程序生成word和PDF文档的方法,包括了利用python程序生成word和PDF文档的方法的使用技巧和注意事项,需要的朋友参考一下 一、程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob、Apache POI、Java2Word、iText等各种方式,以及使用freemarker这样的模板引擎这样的

  • 我使用的是docx4j版本:“8.1.4”。 请帮我理解一下这里可能出了什么问题。