我想将HTML或MXML文件转换为Microsoft .doc和/或.docx格式。
请举例说明这一点?
答案 0 :(得分:5)
我发现到目前为止,执行此类转换的最佳(免费)选项是使用OpenOffice API。它有一个非常强大的转换设施。由于API的抽象程度,最初开始工作有点痛苦,但一旦你这样做,它就会很强大。 This API wrapper有助于简化它。
答案 1 :(得分:1)
您还可以使用docx4j.jar,只需将xhtml转换为docx。
您可以将格式信息保存为xhtml模板,并在运行时将表单输入(如姓名,年龄,地址等)放入模板中。
这是从此link
引用的示例代码public static void main(String[] args) throws Exception
{
String xhtml=
"<table border=\"1\" cellpadding=\"1\" cellspacing=\"1\" style=\"width:100%;\"><tbody><tr><td>test</td><td>test</td></tr><tr><td>test</td><td>test</td></tr><tr><td>test</td><td>test</td></tr></tbody></table>";
// To docx, with content controls
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
XHTMLImporterImpl XHTMLImporter = new XHTMLImporterImpl(wordMLPackage);
wordMLPackage.getMainDocumentPart().getContent().addAll(
XHTMLImporter.convert( xhtml, null) );
wordMLPackage.save(new java.io.File("D://sample.docx"));
}
答案 2 :(得分:0)
您可以使用iText和Apache POI来处理和转换Java中的MS文档。
答案 3 :(得分:0)
您可以使用 Aspose.Words Cloud SDK for Java 将 HTML 转换为 DOCX。其免费定价计划每月提供 150 次免费 API 调用。
P.S:我是 Aspose 的开发人员布道者
//Get Client ID and Client Key from https://dashboard.aspose.cloud/
WordsApi wordsApi = new WordsApi("xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx","xxxxxxxxxxxxxxxxxxxxxxx","https://api.aspose.cloud");
ApiClient client = wordsApi.getApiClient();
client.setConnectTimeout(12*60*1000);
client.setReadTimeout(12*60*1000);
client.setWriteTimeout(12*60*1000);
try {
ConvertDocumentRequest request = new ConvertDocumentRequest(
Files.readAllBytes(Paths.get("C:/Temp/02_pages.html").toAbsolutePath()),
"docx",
null,
null,
null,
null
);
File result = wordsApi.convertDocument(request);
System.out.println("api request completed...");
File dest = new File("C:/Temp/02_pages_java.docx");
Files.copy(result.toPath(), dest.toPath(),
java.nio.file.StandardCopyOption.REPLACE_EXISTING);
} catch (Exception e) {
System.out.println(e.getMessage());
}