我需要添加一个简单的文本(从另一个.txt或.doc文件)到.doc文件,代码非常简单:
public static void main(String[] args) throws IOException {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("/home/amira/work/APPS-579/word/test1.doc"));
HWPFDocument doc = new HWPFDocument(fs);
Range range = doc.getRange();
CharacterRun run = range.insertAfter("Hello World!!! It works well!!!");
run.setBold(true);
run.setItalic(true);
run.setCapitalized(true);
OutputStream out = new FileOutputStream("/home/amira/work/APPS-579/word/sampleAfter.doc");
doc.write(out);
out.flush();
out.close();
}
创建了新的sampleAfter.doc,但只包含test1.doc的内容:“Hello World !!!它运行良好!!!”字符串尚未添加。
我尝试使用
range.insertBefore(String text)
方法,所以它工作,并在test1.doc的内容之前添加字符串。
我真的不明白。 这个问题是否有解释。
这是test1.doc的内容:
Voilàmonpremier test le 24/03/24
以下是System.out.println(range.text());
使用insertBefore:
- Hello World !!!它运作良好!!!Voilàmonpremier test le 24/03/24
醇>
使用insertAfter:
Voilà mon premier test le 24/03/24
Hello World!!! It works well!!!
答案 0 :(得分:1)
好吧,上面的代码似乎对我有用。我想最好遵循以下方法
Range r1 = doc.getRange();
Section sec = r1.getSection(r1.numSections()-1);
Paragraph para = sec.getParagraph(sec.numParagraphs()-1);
CharacterRun run = para.getCharacterRun(para.numCharacterRuns()-1);
run.insertAfter("Hello World!!! It works well!!!");
run.setBold(true);
run.setItalic(true);
run.setCapitalized(true);