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

How to create doc/docx file manually in java

我在 java 中创建了一个纯字符串的 docx 文件。 当我将 docx 文件通过电子邮件发送到我的 phone 时,文件无法正常打开。

我的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 文件无法在智能 phone 中打开。 我怎样才能让 docx 在智能 phone 中阅读?

这里有两个简单的误解:

  • 当然,docx 有 打开 XML 内容,但您仍然不应该尝试 手动 创建此类文件,使用合理的库,比如apache POI。说真的:你从一个简单的 "body" 开始,但任何在现实世界中有用的东西都会增长。您的需求会很快变得更加复杂,然后您会花费大量时间重新实现这些库为您做的事情。重新发明轮子是昂贵的,特别是考虑到 你的 轮子与任何成熟的库相比真的很糟糕。
  • 我怎样才能让 docx 在每个智能手机上都能阅读 phone? 你不能。你没有控制世界上的"every"智能phone,因此你不能强制接收你的docx的人能够查看它。

长话短说:您的整个方法看起来 "broken by design"。许多人真的不喜欢被发送 "office" 文件(出于安全原因)。

因此,真正的答案是:退后一步,评估您想要 "send out" 的信息类型,然后找出真正 对您的所有工作 有用的方法用户。

当您已经在向他们发送电子邮件时,请考虑将一些好的旧纯文本放入其中。一般而言:发送带有附件的电子邮件是一种 极好的 方式来惹恼您的用户。这应该是你最后的选择,而不是你的第一个。