如何在Java中手动创建doc / docx文件

时间:2019-03-08 13:36:12

标签: java docx

我在Java中使用纯字符串创建docx文件。  当我通过电子邮件将docx文件发送到手机时,无法正确打开文件。

我的Java代码是:

// creating a docx file
File wordFile = new File("myDocFile.docx");
wordFile.createNewFile();

 String title   = "my document title here";
 String content = "my document content here";

 // docx file content with Html
String fileStr = "<!DOCTYPE html><meta http-equiv=\"content-type\" " +
" content=\"application/msword; charset=UTF-8\">" + 
"<h1 style='text-align:center;'>" + title+ "</h1>" + content;

// writing fileStr in to docx file.
   Files.write(wordFile.toPath(), fileStr.getBytes("UTF-8"),
   StandardOpenOption.TRUNCATE_EXISTING);

我创建的docx文件未在智能手机中打开。 如何在智能手机中读取docx?

1 个答案:

答案 0 :(得分:3)

这里有两个简单的误解:

  • 可以肯定,docx具有开放XML 内容,但是您仍然不应该尝试手动创建此类文件,而是使用合理的库,例如apache POI 。认真地说:您从一个简单的“身体”开始,但是在现实世界中有用的任何东西都会增长。您的需求将迅速变得更加复杂,然后您将花费大量时间来重新实现此类库为您提供的服务。重新发明轮子是昂贵的,特别是考虑到与该工作的任何成熟库相比,您的轮子确实很烂。
  • 如何在每部智能手机中读取docx?您不能。您没有控制世界上“每台”智能手机,因此您无法强制要求接收您的docx的人可以查看它。

长话短说:您的整个方法看起来“被设计所打破”。许多人真的不喜欢发送“办公室”文件(出于安全考虑)。

因此,真正的答案是:退后一步,评估您要“发送”的信息类型,然后找出对所有用户真正有效的方法。

当您已经向他们发送电子邮件时,请考虑在其中添加一些好的旧纯文本。通常,发送带有附件的电子邮件是一种使用户烦恼的方法。这应该是您的最后选择,而不是您的第一选择。