如何在java中的.doc文件中使用POI hwpfdocument编写大量文本

时间:2011-05-27 07:44:59

标签: java apache-poi

我是POI API的新手,因此,每当我使用HWPFDocument类写下由HWPF文档创建的.doc文件中的文本时,生成的doc文件只有一个字母,而不是整个文本,我写道。

所以请给出答案,我该如何添加更多文字。

这是代码:

/**
             *  Create a POIFSFileSystem from an InputStream.
             *  Test.doc is an empty doc with no contents
             */
            POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("test.doc"));

            /**
             * 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));

1 个答案:

答案 0 :(得分:0)

如果可以,请从使用HWPFDocument切换到XWPFDocument(生成.docx而不是.doc)。 .docx格式更加精明(它基于XML而不是二进制),因此POI通常可以更好地完成它。

否则,请尝试使用更简单的模板文档。单词文件格式对于所有类型的位都非常挑剔,而且很可能你遇到了POI不知道需要更新文件中某些内容的情况,然后单词会默默地反对。