Hi,

What version of POI are you using?

Does document have "special" elements like fields, bookmarks, annotations?

--
Best regards,
Sergey

On Sat, Jul 30, 2011 at 4:57 PM, gipsy <[email protected]> wrote:
> Dear all
>
> There are problem when I want to replace text-elements with apache poi. But
> not finding the replacing-method is the problem - the doc is damaged and
> unable to be opened after writing.
> The line which causes the error is the following:
>
> "p.replaceText(searchText, replaceTxt, offset);"
>
>
> error-message
> -------------
>
> “Word was unable to read this document. It may be corrupt.
> Try one or more of the following:
> * Open and Repair the file.
> * Open the file with the Text Recovery converter.
> (\…\test.doc)”
>
>
> Can you help me - is there a workaround?
>
> Thx Thomas
>
> my code:
>
>
>                String file_in_path =
> "C:/Users/Thomas/Desktop/20110729/BN_Vertragsdaten_123.doc";
>                String file_out_path =
> "C:/Users/Thomas/Desktop/20110729/ausgabe_BN_Vertragsdaten_123.doc";
>                String searchText = "Vertragsart";
>                String replaceTxt = "NEW_Vertragsart_NEW";
>
>                HWPFDocument doc = null;
>                try {
>                        POIFSFileSystem ps = new POIFSFileSystem(new
> FileInputStream(file_in_path));
>                        doc = new HWPFDocument(ps);
>                } catch (FileNotFoundException e) {
>                        // TODO Auto-generated catch block
>                        e.printStackTrace();
>                } catch (IOException e) {
>                        // TODO Auto-generated catch block
>                        e.printStackTrace();
>                }
>
>                Range range = doc.getRange();
>                for (int x = 0; x < range.numSections(); x++) {
>                        Section s = range.getSection(x);
>                        for (int y = 0; y < s.numParagraphs(); y++) {
>                                Paragraph p = s.getParagraph(y);
>                                String paraText = p.text();
>                                int offset = paraText.indexOf(searchText);
>                                if (offset != -1) {
>                                        System.out.println("REPLACED");
>                                        p.replaceText(searchText, replaceTxt, 
> offset);
>                                }
>                        }
>
>                }
>
>                try {
>                        OutputStream out = new FileOutputStream(file_out_path);
>                        doc.write(out);
>                        out.flush();
>                        out.close();
>                } catch (FileNotFoundException e) {
>                        // TODO Auto-generated catch block
>                        e.printStackTrace();
>                } catch (IOException e) {
>                        // TODO Auto-generated catch block
>                        e.printStackTrace();
>                }
>
> --
> View this message in context: 
> http://apache-poi.1045710.n5.nabble.com/open-doc-replaceText-save-doc-ERROR-Word-was-unable-to-read-this-document-It-may-be-corrupt-tp4649703p4649703.html
> Sent from the POI - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>



-- 
Sergey Vladimirov

Reply via email to