List of usage examples for org.apache.poi.xwpf.model XWPFHeaderFooterPolicy XWPFHeaderFooterPolicy
public XWPFHeaderFooterPolicy(XWPFDocument doc, CTSectPr sectPr)
From source file:File.DOCX.WriteDocx.java
public WriteDocx() { docx = new XWPFDocument(); sectPr = docx.getDocument().getBody().addNewSectPr(); policy = new XWPFHeaderFooterPolicy(docx, sectPr); }
From source file:mj.ocraptor.extraction.tika.parser.microsoft.ooxml.XWPFWordExtractorDecorator.java
License:Apache License
private void extractParagraph(XWPFParagraph paragraph, XHTMLContentHandler xhtml) throws SAXException, XmlException, IOException { // If this paragraph is actually a whole new section, then // it could have its own headers and footers // Check and handle if so XWPFHeaderFooterPolicy headerFooterPolicy = null; if (paragraph.getCTP().getPPr() != null) { CTSectPr ctSectPr = paragraph.getCTP().getPPr().getSectPr(); if (ctSectPr != null) { headerFooterPolicy = new XWPFHeaderFooterPolicy(document, ctSectPr); extractHeaders(xhtml, headerFooterPolicy); }// ww w. ja va 2 s .co m } // Is this a paragraph, or a heading? String tag = "p"; String styleClass = null; if (paragraph.getStyleID() != null) { XWPFStyle style = styles.getStyle(paragraph.getStyleID()); if (style != null && style.getName() != null) { TagAndStyle tas = WordExtractor.buildParagraphTagAndStyle(style.getName(), paragraph.getPartType() == BodyType.TABLECELL); tag = tas.getTag(); styleClass = tas.getStyleClass(); } } if (styleClass == null) { xhtml.startElement(tag); } else { xhtml.startElement(tag, "class", styleClass); } // Output placeholder for any embedded docs: // TODO: replace w/ XPath/XQuery: for (XWPFRun run : paragraph.getRuns()) { XmlCursor c = run.getCTR().newCursor(); c.selectPath("./*"); while (c.toNextSelection()) { XmlObject o = c.getObject(); if (o instanceof CTObject) { XmlCursor c2 = o.newCursor(); c2.selectPath("./*"); while (c2.toNextSelection()) { XmlObject o2 = c2.getObject(); XmlObject embedAtt = o2.selectAttribute(new QName("Type")); if (embedAtt != null && embedAtt.getDomNode().getNodeValue().equals("Embed")) { // Type is "Embed" XmlObject relIDAtt = o2.selectAttribute(new QName( "http://schemas.openxmlformats.org/officeDocument/2006/relationships", "id")); if (relIDAtt != null) { String relID = relIDAtt.getDomNode().getNodeValue(); AttributesImpl attributes = new AttributesImpl(); attributes.addAttribute("", "class", "class", "CDATA", "embedded"); attributes.addAttribute("", "id", "id", "CDATA", relID); xhtml.startElement("div", attributes); xhtml.endElement("div"); } } } c2.dispose(); } } c.dispose(); } // Attach bookmarks for the paragraph // (In future, we might put them in the right place, for now // we just put them in the correct paragraph) for (CTBookmark bookmark : paragraph.getCTP().getBookmarkStartList()) { xhtml.startElement("a", "name", bookmark.getName()); xhtml.endElement("a"); } TmpFormatting fmtg = new TmpFormatting(false, false); // Do the iruns for (IRunElement run : paragraph.getIRuns()) { if (run instanceof XWPFSDT) { fmtg = closeStyleTags(xhtml, fmtg); processSDTRun((XWPFSDT) run, xhtml); // for now, we're ignoring formatting in sdt // if you hit an sdt reset to false fmtg.setBold(false); fmtg.setItalic(false); } else { fmtg = processRun((XWPFRun) run, paragraph, xhtml, fmtg); } } closeStyleTags(xhtml, fmtg); // Now do any comments for the paragraph XWPFCommentsDecorator comments = new XWPFCommentsDecorator(paragraph, null); String commentText = comments.getCommentText(); if (commentText != null && commentText.length() > 0) { xhtml.characters(commentText); } String footnameText = paragraph.getFootnoteText(); if (footnameText != null && footnameText.length() > 0) { xhtml.characters(footnameText + "\n"); } // Also extract any paragraphs embedded in text boxes: for (XmlObject embeddedParagraph : paragraph.getCTP().selectPath( "declare namespace w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' declare namespace wps='http://schemas.microsoft.com/office/word/2010/wordprocessingShape' .//*/wps:txbx/w:txbxContent/w:p")) { extractParagraph(new XWPFParagraph(CTP.Factory.parse(embeddedParagraph.xmlText()), paragraph.getBody()), xhtml); } // Finish this paragraph xhtml.endElement(tag); if (headerFooterPolicy != null) { extractFooters(xhtml, headerFooterPolicy); } }
From source file:offishell.word.Word.java
License:MIT License
/** * <p>/* ww w . j av a2 s .c om*/ * Create header with the specified text. * </p> * * @param headerText A header text. */ public Word header(String headerText) { try { CTSectPr section = calculated.getDocument().getBody().addNewSectPr(); XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(calculated, section); XWPFHeader header = policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT); XWPFParagraph para = header.createParagraph(); XWPFRun run = para.createRun(); run.setText(headerText); styles().base().apply(run); } catch (Exception e) { throw I.quiet(e); } return this; }
From source file:org.apache.tika.parser.microsoft.ooxml.XWPFWordExtractorDecorator.java
License:Apache License
private void extractParagraph(XWPFParagraph paragraph, XWPFListManager listManager, XHTMLContentHandler xhtml) throws SAXException, XmlException, IOException { // If this paragraph is actually a whole new section, then // it could have its own headers and footers // Check and handle if so XWPFHeaderFooterPolicy headerFooterPolicy = null; if (paragraph.getCTP().getPPr() != null) { CTSectPr ctSectPr = paragraph.getCTP().getPPr().getSectPr(); if (ctSectPr != null) { headerFooterPolicy = new XWPFHeaderFooterPolicy(document, ctSectPr); extractHeaders(xhtml, headerFooterPolicy, listManager); }//from w w w .ja v a2 s . c o m } // Is this a paragraph, or a heading? String tag = "p"; String styleClass = null; if (paragraph.getStyleID() != null) { XWPFStyle style = styles.getStyle(paragraph.getStyleID()); if (style != null && style.getName() != null) { TagAndStyle tas = WordExtractor.buildParagraphTagAndStyle(style.getName(), paragraph.getPartType() == BodyType.TABLECELL); tag = tas.getTag(); styleClass = tas.getStyleClass(); } } if (styleClass == null) { xhtml.startElement(tag); } else { xhtml.startElement(tag, "class", styleClass); } writeParagraphNumber(paragraph, listManager, xhtml); // Output placeholder for any embedded docs: // TODO: replace w/ XPath/XQuery: for (XWPFRun run : paragraph.getRuns()) { XmlCursor c = run.getCTR().newCursor(); c.selectPath("./*"); while (c.toNextSelection()) { XmlObject o = c.getObject(); if (o instanceof CTObject) { XmlCursor c2 = o.newCursor(); c2.selectPath("./*"); while (c2.toNextSelection()) { XmlObject o2 = c2.getObject(); XmlObject embedAtt = o2.selectAttribute(new QName("Type")); if (embedAtt != null && embedAtt.getDomNode().getNodeValue().equals("Embed")) { // Type is "Embed" XmlObject relIDAtt = o2.selectAttribute(new QName( "http://schemas.openxmlformats.org/officeDocument/2006/relationships", "id")); if (relIDAtt != null) { String relID = relIDAtt.getDomNode().getNodeValue(); AttributesImpl attributes = new AttributesImpl(); attributes.addAttribute("", "class", "class", "CDATA", "embedded"); attributes.addAttribute("", "id", "id", "CDATA", relID); xhtml.startElement("div", attributes); xhtml.endElement("div"); } } } c2.dispose(); } } c.dispose(); } // Attach bookmarks for the paragraph // (In future, we might put them in the right place, for now // we just put them in the correct paragraph) for (int i = 0; i < paragraph.getCTP().sizeOfBookmarkStartArray(); i++) { CTBookmark bookmark = paragraph.getCTP().getBookmarkStartArray(i); xhtml.startElement("a", "name", bookmark.getName()); xhtml.endElement("a"); } TmpFormatting fmtg = new TmpFormatting(false, false); // Do the iruns for (IRunElement run : paragraph.getIRuns()) { if (run instanceof XWPFSDT) { fmtg = closeStyleTags(xhtml, fmtg); processSDTRun((XWPFSDT) run, xhtml); //for now, we're ignoring formatting in sdt //if you hit an sdt reset to false fmtg.setBold(false); fmtg.setItalic(false); } else { fmtg = processRun((XWPFRun) run, paragraph, xhtml, fmtg); } } closeStyleTags(xhtml, fmtg); // Now do any comments for the paragraph XWPFCommentsDecorator comments = new XWPFCommentsDecorator(paragraph, null); String commentText = comments.getCommentText(); if (commentText != null && commentText.length() > 0) { xhtml.characters(commentText); } String footnameText = paragraph.getFootnoteText(); if (footnameText != null && footnameText.length() > 0) { xhtml.characters(footnameText + "\n"); } // Also extract any paragraphs embedded in text boxes: for (XmlObject embeddedParagraph : paragraph.getCTP().selectPath( "declare namespace w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' declare namespace wps='http://schemas.microsoft.com/office/word/2010/wordprocessingShape' .//*/wps:txbx/w:txbxContent/w:p")) { extractParagraph(new XWPFParagraph(CTP.Factory.parse(embeddedParagraph.xmlText()), paragraph.getBody()), listManager, xhtml); } // Finish this paragraph xhtml.endElement(tag); if (headerFooterPolicy != null) { extractFooters(xhtml, headerFooterPolicy, listManager); } }
From source file:org.cgiar.ccafs.marlo.action.summaries.AnualReportPOISummaryAction.java
License:Open Source License
public void createPageFooter() { CTP ctp = CTP.Factory.newInstance(); // this add page number incremental ctp.addNewR().addNewPgNum();// w w w.j a va 2 s . co m XWPFParagraph codePara = new XWPFParagraph(ctp, document); XWPFParagraph[] paragraphs = new XWPFParagraph[1]; paragraphs[0] = codePara; // position of number codePara.setAlignment(ParagraphAlignment.CENTER); CTSectPr sectPr = document.getDocument().getBody().addNewSectPr(); try { XWPFHeaderFooterPolicy headerFooterPolicy = new XWPFHeaderFooterPolicy(document, sectPr); headerFooterPolicy.createFooter(STHdrFtr.DEFAULT, paragraphs); } catch (IOException e) { LOG.error("Failed to createFooter. Exception: " + e.getMessage()); } }
From source file:org.cgiar.ccafs.marlo.utils.POISummary.java
License:Open Source License
/** * Footer title/*from ww w. j a v a2s. co m*/ * * @param document * @param text * @throws IOException */ public void pageFooter(XWPFDocument document, String text) throws IOException { CTSectPr sectPr = document.getDocument().getBody().addNewSectPr(); XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr); CTP ctpFooter = CTP.Factory.newInstance(); CTR ctrFooter = ctpFooter.addNewR(); CTText ctFooter = ctrFooter.addNewT(); ctFooter.setStringValue(text); XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, document); footerParagraph.setAlignment(ParagraphAlignment.LEFT); XWPFParagraph[] parsFooter = new XWPFParagraph[1]; parsFooter[0] = footerParagraph; policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter); }
From source file:org.cgiar.ccafs.marlo.utils.POISummary.java
License:Open Source License
/** * Header title/*from w ww . j a v a2s . c o m*/ * * @param document * @param text * @throws IOException */ public void pageHeader(XWPFDocument document, String text) throws IOException { CTSectPr sectPr = document.getDocument().getBody().addNewSectPr(); XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr); CTP ctpHeader = CTP.Factory.newInstance(); CTR ctrHeader = ctpHeader.addNewR(); CTText ctHeader = ctrHeader.addNewT(); ctHeader.setStringValue(text); XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document); headerParagraph.setAlignment(ParagraphAlignment.RIGHT); XWPFParagraph[] parsHeader = new XWPFParagraph[1]; parsHeader[0] = headerParagraph; policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader); }
From source file:org.olat.search.service.document.file.WordOOXMLDocument.java
License:Apache License
private void extractContent(final StringBuilder buffy, final XWPFDocument document) throws IOException, XmlException { // first all paragraphs final Iterator<XWPFParagraph> i = document.getParagraphsIterator(); while (i.hasNext()) { final XWPFParagraph paragraph = i.next(); CTSectPr ctSectPr = null;/*from ww w.ja v a 2s . c om*/ if (paragraph.getCTP().getPPr() != null) { ctSectPr = paragraph.getCTP().getPPr().getSectPr(); } XWPFHeaderFooterPolicy headerFooterPolicy = null; if (ctSectPr != null) { headerFooterPolicy = new XWPFHeaderFooterPolicy(document, ctSectPr); extractHeaders(buffy, headerFooterPolicy); } final XWPFParagraphDecorator decorator = new XWPFCommentsDecorator( new XWPFHyperlinkDecorator(paragraph, null, true)); final CTBookmark[] bookmarks = paragraph.getCTP().getBookmarkStartArray(); for (final CTBookmark bookmark : bookmarks) { buffy.append(bookmark.getName()).append(' '); } buffy.append(decorator.getText()).append(' '); if (ctSectPr != null) { extractFooters(buffy, headerFooterPolicy); } } }
From source file:pe.gob.onpe.rae.controller.registro.registroController.java
@RequestMapping(value = "generateFVDoc/{codExpediente}", method = RequestMethod.GET) public void generateFVDoc(HttpServletRequest request, @PathVariable("codExpediente") int codExpediente, HttpServletResponse response) {//from w w w .j a v a 2 s. c o m try { ServletContext sc = request.getSession().getServletContext(); Expediente expediente = new Expediente(codExpediente); expediente = expedienteDAO.find(expediente); Ambito amb = new Ambito(expediente.getAmbito().getId()); amb = ambitoDAO.find(amb); int totalElectoresRemitidos = expedientePadronDAO.getCountByExpediente(expediente); int totalElectoresIncorporados = expedientePadronDAO.getCountByExpedienteAndEstado(expediente, Parametros.ESTADO_ELECTOR_ACTIVO); JsonParser jsonParser = new JsonParser(); JsonObject jsonObject = (JsonObject) jsonParser.parse(amb.getInformacion()); String nombre = jsonObject.get("nombres").toString() + " " + jsonObject.get("apellidoPaterno").toString() + " " + jsonObject.get("apellidoMaterno").toString(); InputStream is = registroController.class.getResourceAsStream("/ejemplo.docx"); XWPFDocument document = new XWPFDocument(is); XWPFHeaderFooterPolicy policy = document.getHeaderFooterPolicy(); if (policy == null) { CTSectPr sectPr = document.getDocument().getBody().addNewSectPr(); policy = new XWPFHeaderFooterPolicy(document, sectPr); } if (policy.getDefaultHeader() == null && policy.getFirstPageHeader() == null && policy.getDefaultFooter() == null) { XWPFFooter footerD = policy.getFooter(1);// createFooter(policy.DEFAULT); XWPFRun run = footerD.getParagraphs().get(0).createRun(); run.setText("usuario"); XWPFParagraph paragraph = footerD.createParagraph(); paragraph.setAlignment(ParagraphAlignment.DISTRIBUTE); run = paragraph.createRun(); run.setFontFamily("Arial"); run.setFontSize(8); run.setText( "Jr.Washington N 1894, Cercado de Lima. Central Telefonica: 417-0630 www.onpe.gob.pe informes@onpe.gob.pe"); } XWPFParagraph paragraph = document.createParagraph(); XWPFRun run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.setText("Lima,"); run.addBreak(); paragraph = document.createParagraph(); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.setBold(true); run.setText("OFICIO N -2016-GPP/ONPE"); run.setUnderline(UnderlinePatterns.SINGLE); run.addBreak(); paragraph = document.createParagraph(); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.setText("Seor"); XWPFRun run1 = paragraph.createRun(); run1.setFontSize(11); run1.setFontFamily("Arial"); run1.setText(nombre.replace("\"", "")); run1.setBold(true); run1.addBreak(); XWPFRun run2 = paragraph.createRun(); run2.setFontSize(11); run2.setFontFamily("Arial"); run2.setText(jsonObject.get("cargo").toString().replace("\"", "")); run2.addBreak(); run2.setText("Centro Poblado " + amb.getNombreAmbito()); run2.addBreak(); run2.setText("Av. 28 de Julio S/N Centro Cvico Huacrachuco - Municipalidad Provincial de " + amb.getProvincia()); run2.addBreak(); run2.setText(amb.getDepartamento() + " - " + amb.getProvincia() + " - " + amb.getDistrito()); run2.addBreak(); run2 = paragraph.createRun(); run2.setFontSize(11); run2.setFontFamily("Arial"); run2.setUnderline(UnderlinePatterns.WORDS); run2.setText("Presente"); run2 = paragraph.createRun(); run2.setFontSize(11); run2.setFontFamily("Arial"); run2.setText(".-"); paragraph = document.createParagraph(); run.addBreak(); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.addBreak(); run.setText("Asunto"); run.addTab(); run.addTab(); run.setText(": SOLICITUD DE CREACIN DE MESA DE SUFRAGIO."); run.addBreak(); paragraph = document.createParagraph(); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.setText("Referencia"); run.addTab(); run.setText(": OFICIO N 087-2016/M-CP.CHOCOBAMBA (16AGO2016) - Exp. " + expediente.getExpediente()); run.addBreak(); paragraph = document.createParagraph(); paragraph.setAlignment(ParagraphAlignment.THAI_DISTRIBUTE); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.setText( "Me dirijo a usted con relacin al documento de la referencia con la finalidad de hacer de su " + "conocimiento que se ha cumplido con todos los requisitos que dan inicio al trmite de " + "instalacin de mesas de sufragio en el Centro Poblado " + amb.getNombreAmbito() + ", distrito " + amb.getDistrito() + ", " + "provincia " + amb.getProvincia() + ", departamento " + amb.getDepartamento() + "."); paragraph = document.createParagraph(); paragraph.setAlignment(ParagraphAlignment.THAI_DISTRIBUTE); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.addBreak(); run.setText("Al respecto, el mencionado expediente contiene un listado de electores que solicitan ser " + "parte de la mesa de sufragio de la localidad " + amb.getNombreAmbito() + ", el cual, luego de la validacin " + "realizada, se informa que podrn ser incorporados " + totalElectoresIncorporados + " electores del total de " + totalElectoresRemitidos + " registros " + "de electores remitidos. Se adjunta un cuadro resumen con las observaciones mencionadas."); paragraph = document.createParagraph(); paragraph.setAlignment(ParagraphAlignment.THAI_DISTRIBUTE); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.addBreak(); run.setText( "Asimismo, se programar un viaje para la verificacin de rutas, tiempos y servicios de la " + "localidad, la cual se coordinar previamente con las autoridades del centro poblado a fin de " + "programarla adecuadamente; luego de lo cual se emitir un informe de respuesta al " + "resultado de la solicitud, que de ser positivo, conllevara a la instalacin de mesas de sufragio " + "en el centro poblado en mencin, con miras a las "); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.setBold(true); run.setText("Elecciones Regionales y Municipales de 2018."); paragraph = document.createParagraph(); paragraph.setAlignment(ParagraphAlignment.THAI_DISTRIBUTE); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.addBreak(); run.setText("Finalmente, de requerir mayor informacin, agradeceremos se comunique con nosotros al " + "telefono 417-0630 anexo 8484 o al 8481."); paragraph = document.createParagraph(); paragraph.setAlignment(ParagraphAlignment.THAI_DISTRIBUTE); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.addBreak(); run.setText("Sin otro particular."); paragraph = document.createParagraph(); paragraph.setAlignment(ParagraphAlignment.THAI_DISTRIBUTE); run = paragraph.createRun(); run.setFontSize(11); run.setFontFamily("Arial"); run.addBreak(); run.addBreak(); run.setText("Atentamente,"); response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); document.write(response.getOutputStream()); } catch (Exception ex) { Logger.getLogger(registroController.class.getName()).log(Level.SEVERE, null, ex); } }