我正在开发一个考试软件,其中我使用了下标和上标。所以我必须将问题以HTML格式存储在数据库中, 现在我想用HTML标签写出这些问题, 我尝试使用Apache POI Library, 这是示例文本:
<html>
<head> </head>
<body><font face="Shruti"> MY QUESTION </font>
</body>
</html>
但是当我尝试使用apache poi在word文档中编写文本时,它会显示HTML标记
答案 0 :(得分:2)
您可以将HTML添加为AltChunk,并在首次打开文件时将Word转换为本机docx内容。
如果您需要在Java中转换为原生docx内容,可以使用docx4j-ImportXHTML
披露:我管理那个回购。
答案 1 :(得分:-2)
使用java api docx4j-ImportXHTML ,可以通过以下方法实现:
public static void xhtmlToDocx(String destinationPath, String fileName)
{
File dir = new File (destinationPath);
File actualFile = new File (dir, fileName);
WordprocessingMLPackage wordMLPackage = null;
try
{
wordMLPackage = WordprocessingMLPackage.createPackage();
}
catch (InvalidFormatException e)
{
e.printStackTrace();
}
XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
OutputStream fos = null;
try
{
fos = new ByteArrayOutputStream();
System.out.println(XmlUtils.marshaltoString(wordMLPackage
.getMainDocumentPart().getJaxbElement(), true, true));
HTMLSettings htmlSettings = Docx4J.createHTMLSettings();
htmlSettings.setWmlPackage(wordMLPackage);
Docx4jProperties.setProperty("docx4j.Convert.Out.HTML.OutputMethodXML",
true);
Docx4J.toHTML(htmlSettings, fos, Docx4J.FLAG_EXPORT_PREFER_XSL);
wordMLPackage.save(actualFile);
}
catch (Docx4JException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
要添加依赖 docx4j-ImportXHTML ,请使用(3.3.1是最新版本,而我正在撰写此答案。如果您以后看到它使用您的时间的最新稳定版本。)
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-ImportXHTML</artifactId>
<version>3.3.1</version>
</dependency>