// Get content control SdtElement sdtElement = aSdtElement.get(nPos); if(sdtElement == null) {return;} // Create object factory org.docx4j.wml.ObjectFactory factory = new org.docx4j.wml.ObjectFactory(); // Add font to fonts part Font font = factory.createFontsFont(); font.setName(sFontName); FontFamily family = factory.createFontFamily(); family.setVal("auto"); font.setFamily(family); FontPitch pitch = factory.createFontPitch(); pitch.setVal(STPitch.VARIABLE); font.setPitch(pitch); CTUcharHexNumber charset = factory.createCTUcharHexNumber(); charset.setVal("02"); font.setCharset(charset); FontTablePart fontPart = mainPart.getFontTablePart(); fontPart.getJaxbElement().getFont().add(font); // Build a new RFont object RFonts rfonts = factory.createRFonts(); rfonts.setAscii(sFontName); rfonts.setCs(sFontName); rfonts.setHAnsi(sFontName); // Build a Color object if(sFontColor.equals("") || sFontColor.equals("Black") || sFontColor.equals("Blank")) { sFontColor = "000000"; } else if(sFontColor.equals("Blue")) { sFontColor = "0000FF"; } else if(sFontColor.equals("Red")) { sFontColor = "FF0000"; } else if(sFontColor.equals("Green")) { sFontColor = "00FF00"; } Color color = factory.createColor(); color.setVal(sFontColor); // Create a new size object if(sFontSize.equals("")) {sFontSize = "12";} BigInteger nFontSize = new BigInteger(sFontSize); nFontSize = nFontSize.multiply(BigInteger.valueOf(2)); HpsMeasure hps = factory.createHpsMeasure(); hps.setVal(nFontSize); // ####### Par ####### // Create ParaRPr ParaRPr paraRPr = factory.createParaRPr(); paraRPr.setRFonts(rfonts); // Create PPr PPr ppr = factory.createPPr(); ppr.setRPr(paraRPr); // Create new par org.docx4j.wml.P par; par = factory.createP(); par.setPPr(ppr); // ####### Run ######## // Create Text Text text = factory.createText(); text.setValue("A"); // Create new rpr if not found RPr rpr = factory.createRPr(); rpr.setRFonts(rfonts); rpr.setColor(color); rpr.setSz(hps); // Create run org.docx4j.wml.R run; run = factory.createR(); run.setRPr(rpr); // Add Text run.getContent().add(text); // Add run to par par.getContent().add(run); // Replace content control with new paragraph List mainContent = wordMLPackage.getMainDocumentPart().getContent(); mainContent.set(aSdtIndex.get(nPos),par);