HWPF 仅支持 Word97/2000 格式的 DOC 文件的简单变体。表格已经很重要了。如果 Word 拒绝了您使用库创建/修改的文件,那么您可能不走运。
前段时间,我为客户开发了一个基于 Apache 的 HWPF 代码库的自定义库。该自定义库增加了对许多功能的支持,并且可以可靠地编写 Word 文件。正确地做所有这些事情是一项艰巨的工作。因此,仅解决小问题是不可能的。你将不得不花费几个月的时间。
您可以选择在 Word 中创建空行并用 HWPF 填充它们吗?
编辑:可能的功能解决方法:
用标记预先填写表格:
+--------+-------------+------------------------------------+
| Rev 1 | 2014-01-01 | Created document |
+--------+-------------+------------------------------------+
| Rev 2 | 2014-01-02 | Corrected flow chart |
+--------+-------------+------------------------------------+
| $REVMRK| $REVDATE## | $REVTEXT########################## |
+--------+-------------+------------------------------------+
| $REVMRK| $REVDATE## | $REVTEXT########################## |
+--------+-------------+------------------------------------+
| $REVMRK| $REVDATE## | $REVTEXT########################## |
+--------+-------------+------------------------------------+
| $REVMRK| $REVDATE## | $REVTEXT########################## |
+--------+-------------+------------------------------------+
确保标记足够长。(在 HWPF 中添加文本,以便在表格中更改段落地址可能会造成麻烦。)
要填充一行,请执行以下操作:
- 找到一行的标记集
- 每个标记必须包含所有后续的#字符
- 准备好要为每个标记填写的文本
- 确保您的文本仅使用 ASCII 字符(见下文)
- 确保您的文本不长于修订标记
- 用新内容填充修订标记,并用空格填充剩余的#字符
如果软件没有找到新行,则必须有人在 Word 中添加新行模板。
一些限制的原因:
不插入:很多东西都与地址一起存储到文本流中(很多内部额外的表,其中包含对文本内容的地址引用)。这适用于段落边框、字符格式、表格标记、书签、图形参考等。有些东西被 HWPF 覆盖,很多东西没有。如果您插入文本,地址可能会发生变化,并且 Word 文件可能会损坏。
ASCII 范围:文本序列存储为每个字符 1 个字节或每个字符 2 个字节。如果操作正确,在 1 字节范围内插入非 ASCII 字符需要将该范围转换为 2 字节范围。这在 HWPF 中并不总是很好,它会导致地址转移(参见上面的“无插入”)。
如果您的文档“更简单”,您可能会摆脱一些限制。例如:没有文本框更好。没有嵌入的图纸更好。没有嵌套表更好。但是,通常限制非常严格,您也可以使用纯文本文档并为其提供 .doc 扩展名。
如果您需要更多详细信息,请告诉我。