【问题标题】:File Size Increasing But Text Not Being Written文件大小增加但文本未写入
【发布时间】:2014-02-25 05:33:16
【问题描述】:

我知道有人已经成功地做到了这一点。我只是想将文本写入信头。它包含Sample Letter head

    File myFile = new File("/tmp/letterhead.doc");
    PrintWriter pw = new PrintWriter(new FileWriter(myFile,true));

    StringBuilder sb = new StringBuilder();
    sb.append("Why be a programmer im always stuck @ something dumb wasting my TIME ?? :( \n");

    pw.println(sb.toString());
    pw.close();

我试过了 Apache POI - 失败

Java2Word - 失败

这是格式问题还是编码问题?我听说 .rtf 会更容易,但如果人们看不到 .doc/.docx,他们会感到紧张,因为这需要在 MSWORD 中打开,因为麻瓜就是这样生活的。

如果有人知道,我愿意为非开源的东西付费。我不想在星期一看起来像个混蛋,而且我正在接受 90 天的缓刑 GEE WHIZ!

【问题讨论】:

    标签: java append stringbuilder printwriter


    【解决方案1】:

    要从 Java 生成 .doc/.docx,您可能需要使用您提到的那些库之一。如果它们不适合您,另一种方法是直接使用 WordprocessingML。 WordprocessingML 基本上是 Word 可以理解并呈现为 Word 文档的 XML。

    以下是 WordProcessingML 的示例。如果将其保存为 .xml 文件,然后在 Word 中打开它,您会看到它被解释为 Word 文档。然后,您可以将其保存到 Word 中的 .doc/.docx。

    <?xml version="1.0"?>
    <?mso-application progid="Word.Document"?>
    <w:wordDocument 
        xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
    <w:body>
        <w:p>
            <w:r>
                <w:t>Hello JavaWorld.</w:t> 
        <w:br/>
    <w:t>This is a great reporting tool.</w:t>
            </w:r>
        </w:p>
    </w:body>
    </w:wordDocument>
    

    上面的例子来自from this site,绝对值得一看。在底部,有一些 Java 可用于创建 Excel 电子表格。您应该能够解决这个问题来编写创建 Word 文档所需的代码。

    【讨论】:

    • Dave 我在搜索中没有遇到这个问题,所以我必须调查一下。在高层次上,它似乎只是为您创建文档,我可以成功地编写一个 .doc,其中的代码不是问题。问题是将其写入信头,该信头也是一个包含页脚和页眉的 .doc。
    • 由于信头也是.doc,您可以从Word 将其另存为Word 2003 XML 文档。完成此操作后,您应该能够使用 WordprocessingML 添加所需的任何内容。我已经测试了将 .doc(带有页眉和页脚)保存为 Word 中的 .xml,对 .xml 进行了一些更改,然后在 Word 中重新打开它,看起来页眉和页脚被保留了。
    • 谢谢,我稍后再试 :-) 顺便说一句,我遇到了名为 Aspose 的软件,它可以轻松完成这项工作,但价格却很高
    猜你喜欢
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2019-02-08
    • 1970-01-01
    • 2017-04-28
    相关资源
    最近更新 更多