You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DrawingParagraph.java 1019B

123456789101112131415161718192021222324252627282930313233
  1. package org.apache.poi.xslf.usermodel;
  2. import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraph;
  3. import org.openxmlformats.schemas.drawingml.x2006.main.CTRegularTextRun;
  4. import org.openxmlformats.schemas.drawingml.x2006.main.CTTextLineBreak;
  5. import org.apache.xmlbeans.XmlCursor;
  6. import org.apache.xmlbeans.XmlObject;
  7. public class DrawingParagraph {
  8. private final CTTextParagraph p;
  9. public DrawingParagraph(CTTextParagraph p) {
  10. this.p = p;
  11. }
  12. public CharSequence getText() {
  13. StringBuilder text = new StringBuilder();
  14. XmlCursor c = p.newCursor();
  15. c.selectPath("./*");
  16. while (c.toNextSelection()) {
  17. XmlObject o = c.getObject();
  18. if (o instanceof CTRegularTextRun) {
  19. CTRegularTextRun txrun = (CTRegularTextRun) o;
  20. text.append(txrun.getT());
  21. } else if (o instanceof CTTextLineBreak) {
  22. text.append('\n');
  23. }
  24. }
  25. return text;
  26. }
  27. }