private static void appendRun(SdtBlock currentBlock, List<Object> resultElts) { List<Object> blkElements = null; R run = null; RPr blockRPr = null; if (currentBlock != null) { blkElements = currentBlock.getSdtContent().getContent(); if (blkElements.size() == 1) { // If there is only one element, there is no need to use a sdtBlock resultElts.add(blkElements.get(0)); } else { resultElts.add(currentBlock); // Remove the borders of the child elements // (and the shading if it is the same as that of the container) blockRPr = findBlockRPr(currentBlock); for (Object elem : blkElements) { if (elem instanceof R) { run = (R) elem; if (run.getRPr() != null) { run.getRPr().setBdr(null); if (!shadingChanged(blockRPr.getShd(), run.getRPr().getShd())) { run.getRPr().setShd(null); } } } } } } }
private boolean hasDirectRPrFormatting(RPr rPrToApply) { if (rPrToApply == null) { return false; } // Here is where we do the real work. // There are a lot of run properties // The below list is taken directly from RPr, and so // is comprehensive. // RStyle rStyle; // RFonts rFonts; if (rPrToApply.getRFonts() != null) { return true; } // BooleanDefaultTrue b; if (rPrToApply.getB() != null) { return true; } // BooleanDefaultTrue bCs; // BooleanDefaultTrue i; if (rPrToApply.getI() != null) { return true; } // BooleanDefaultTrue iCs; // BooleanDefaultTrue caps; if (rPrToApply.getCaps() != null) { return true; } // BooleanDefaultTrue smallCaps; if (rPrToApply.getSmallCaps() != null) { return true; } // BooleanDefaultTrue strike; if (rPrToApply.getStrike() != null) { return true; } // BooleanDefaultTrue dstrike; // BooleanDefaultTrue outline; // BooleanDefaultTrue shadow; // BooleanDefaultTrue emboss; // BooleanDefaultTrue imprint; // BooleanDefaultTrue noProof; // BooleanDefaultTrue snapToGrid; // BooleanDefaultTrue vanish; // BooleanDefaultTrue webHidden; // Color color; if (rPrToApply.getColor() != null) { return true; } // CTSignedTwipsMeasure spacing; // CTTextScale w; // HpsMeasure kern; // CTSignedHpsMeasure position; // HpsMeasure sz; if (rPrToApply.getSz() != null) { return true; } // HpsMeasure szCs; // Highlight highlight; if (rPrToApply.getHighlight() != null) { return true; } // U u; if (rPrToApply.getU() != null) { return true; } // CTTextEffect effect; // CTBorder bdr; if (rPrToApply.getBdr() != null) { return true; } // CTShd shd; if (rPrToApply.getShd() != null) { return true; } // CTFitText fitText; // CTVerticalAlignRun vertAlign; // BooleanDefaultTrue rtl; // BooleanDefaultTrue cs; // CTEm em; // CTLanguage lang; // CTEastAsianLayout eastAsianLayout; // BooleanDefaultTrue specVanish; // BooleanDefaultTrue oMath; // CTRPrChange rPrChange; // If we got here... return false; }