gpt4 book ai didi

java - 一些 HWPF POI 文档构建示例

转载 作者:行者123 更新时间:2023-12-02 07:26:56 24 4
gpt4 key购买 nike

我正在寻找使用 POI 构建重要 Word (97-2003) 文档的示例。我已经达到了创建一个带有“Hello World”的目的:

package com.mygroup.myapp.poi.word;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;

import org.apache.log4j.Logger;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.CharacterRun;
import org.apache.poi.hwpf.usermodel.Range;

public class DocFileWriter {

private static final Logger LOGGER = Logger.getLogger(DocFileWriter.class);
private static final String FILE_EXTENSION = ".doc";
private static final URL EMPTY_DOC_URL = DocFileWriter.class.getClassLoader().getResource("empty.doc");
private String pathname;
private HWPFDocument document;

/**
* Constructor
* @param pathname the target path name (e.g.: "/tmp/test.doc", etc.)
* @throws IOException
*/
public DocFileWriter(String pathname) throws IOException {
if (!pathname.endsWith(FILE_EXTENSION)) {
throw new RuntimeException("The file name must ends with " + FILE_EXTENSION);
}
this.pathname = pathname;
try {
document = new HWPFDocument(EMPTY_DOC_URL.openStream());
} catch (IOException e) {
LOGGER.error("Empty document resource missing");
throw e;
}
}


/**
* Adds a "Hello World!" to the document.
*/
public void addHelloWorld() {
Range range = document.getRange();
CharacterRun charRun = range.insertBefore("Hello World!");
charRun.setFontSize(18);
charRun.setItalic(true);
}

/**
* Writes the document on disk.
*/
public void writeDocument() {
try {
document.write(new FileOutputStream(new File(pathname)));
} catch (FileNotFoundException e) {
LOGGER.error("The file cannot be created", e);
} catch (IOException e) {
LOGGER.error("Unable to write the document", e);
}
}
}

现在我想补充一点:

  • 一张图片
  • 空白页
  • 一个 header (只有一个字符串)
  • 页脚(只有一个字符串)
  • 表格(10 行,3 列)

您能提供一些相关的指示/示例吗?

谢谢。

最佳答案

如图所示here HWPF 是 POI 的一个孤儿子项目。无法从头开始编写复杂的旧 .doc 文件。添加图片/页眉/页脚/表格仅由 XWPF 和 .docx 格式管理。

所以我选择使用 RTF(带有 .doc 扩展名)。以下是构建 RTF 报告的一些解决方案:

关于java - 一些 HWPF POI 文档构建示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13455762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com