1

我正在开发一个考试软件,其中我使用了下标和上标。所以我必须将问题以 HTML 格式存储在数据库中,现在我想用 HTML 标记将这些问题写入单词,我尝试使用 Apache POI 库,这是示例文本:

  <html>
  <head> </head>
  <body><font face="Shruti"> MY QUESTION </font>
  </body>
  </html> 

但是当我尝试使用 apache poi 在 word Document 中编写文本时,它显示了 HTML 标签

4

2 回答 2

2

您可以将 HTML 添加为 AltChunk,并在首次打开文件时让 Word 将其转换为本机 docx 内容。

如果需要在 Java 中转换为原生 docx 内容,可以使用docx4j-ImportXHTML

披露:我管理那个回购。

于 2013-10-27T04:17:37.430 回答
-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>
于 2017-01-30T13:53:28.747 回答