You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by bu...@apache.org on 2017/08/16 05:43:53 UTC

[Bug 61421] org.apache.poi.openxml4j.exceptions.OpenXML4JRuntimeException: Rule M2.4 exception

https://bz.apache.org/bugzilla/show_bug.cgi?id=61421

Alex <ga...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 OS|                            |All

--- Comment #1 from Alex <ga...@gmail.com> ---
Code that caused the drop

XWPFDocument docx = new XWPFDocument(new FileInputStream("D:\\curs.docx"));
            ArrayList<Segment> topic = new ArrayList<>();

            int i = 0;
            for(XWPFParagraph paragraph : docx.getParagraphs()){
                byte sid = paragraph.getStyleID() != null ? (byte)
paragraph.getStyleID().charAt(0) : 0;
                if (sid >= 49 && sid <=52 ){
                    if (paragraph.getText().length() > 0) {
                        System.out.println(paragraph.getStyleID() + ":" +
paragraph.getText());
                        Segment segment = new Segment(paragraph.getText(),
Integer.valueOf(paragraph.getStyleID().charAt(0)));
                        segment.doc = new XWPFDocument(docx.getPackage());
                        segment.from = i;
                        if(topic.size() > 0){
                            topic.get(topic.size() - 1).to = i - 1;
                        }
                        topic.add(segment);

                    }
                }
                i++;
            }

            for(Segment segment : topic){
                i = 0;
                for(XWPFParagraph paragraph : docx.getParagraphs()) {
                    if(!(i >= segment.from && i <=segment.to)){
                        int pPos = segment.doc.getPosOfParagraph(paragraph);
                        segment.doc.removeBodyElement(pPos);
                    }
                    i++;
                }
                segment.doc.write(new FileOutputStream(new File("D:\\test\\" +
segment.title + ".docx")));
                segment.doc.close();
            }

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@poi.apache.org
For additional commands, e-mail: dev-help@poi.apache.org