I am new to POI API and therefore, whenever I am using the HWPFDocument class to write down text in a .doc file created by the HWPF Document, the resulting doc file is having only a single letter and not the entire text, I wrote.
So please give the answer of how can I add more text to it.
This is the code:
/**
* Create a POIFSFileSystem from an InputStream.
* Test.doc is an empty doc with no contents
*/
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("test.doc"));
开发者_StackOverflow /**
* Horrible word Document Format
*/
HWPFDocument hwpfDocument = new HWPFDocument(fs);
/**
* range is used for getting the range of the document except header and footer
*/
Range range = hwpfDocument.getRange();
range.numParagraphs();
/**
* creating Paragraph
*/
/**
* Inserts a paragraph into the end of this range.
* ParagraphProperties -> for creating Paragraph, index of the paragraph
*/
/*Paragraph paragraph1 = range.insertBefore(new ParagraphProperties(), 0);
paragraph1.setJustification((byte) 0); // 0-left, 1-center, 2-right, 3-left and right*/
CharacterRun characterRun1 = range.insertBefore("Document");
/**
* setting the font size
*/
characterRun1.setFontSize(2 * 12); // takes as an argument half points
/**
* making Text Bold Italic
*/
characterRun1.setBold(true);
characterRun1.setItalic(true);
characterRun1.setColor(111);
characterRun1.setData(true);
//characterRun1.replaceWith("Document");
hwpfDocument.write(new FileOutputStream("hpwf-create-doc.doc", true));
If you can, switch from using HWPFDocument to XWPFDocument (generating a .docx instead of a .doc). The .docx format is much saner under the hood (it's XML based rather than binary), so POI generally does a much better job with it.
Otherwise, try using a simpler template document. The word file format can be very picky about all sorts of bits, and it's likely that you've hit a case where POI isn't aware of needing to update something in your file, and word then silently objects.
精彩评论