List of usage examples for org.apache.poi.xwpf.usermodel XWPFHyperlinkRun XWPFHyperlinkRun
public XWPFHyperlinkRun(CTHyperlink hyperlink, CTR run, IRunBody p)
From source file:apachepoitest.XWPFParagraphClone.java
License:Apache License
/** * Identifies (in order) the parts of the paragraph / * sub-paragraph that correspond to character text * runs, and builds the appropriate runs for these. *///from w w w . j a v a 2s . co m private void buildRunsInOrderFromXml(XmlObject object) { XmlCursor c = object.newCursor(); c.selectPath("child::*"); while (c.toNextSelection()) { XmlObject o = c.getObject(); if (o instanceof CTR) { XWPFRun r = new XWPFRun((CTR) o, this); runs.add(r); iruns.add(r); } if (o instanceof CTHyperlink) { CTHyperlink link = (CTHyperlink) o; for (CTR r : link.getRArray()) { XWPFHyperlinkRun hr = new XWPFHyperlinkRun(link, r, this); runs.add(hr); iruns.add(hr); } } if (o instanceof CTSdtBlock) { XWPFSDT cc = new XWPFSDT((CTSdtBlock) o, part); iruns.add(cc); } if (o instanceof CTSdtRun) { XWPFSDT cc = new XWPFSDT((CTSdtRun) o, part); iruns.add(cc); } if (o instanceof CTRunTrackChange) { for (CTR r : ((CTRunTrackChange) o).getRArray()) { XWPFRun cr = new XWPFRun(r, this); runs.add(cr); iruns.add(cr); } } if (o instanceof CTSimpleField) { for (CTR r : ((CTSimpleField) o).getRArray()) { XWPFRun cr = new XWPFRun(r, this); runs.add(cr); iruns.add(cr); } } if (o instanceof CTSmartTagRun) { // Smart Tags can be nested many times. // This implementation does not preserve the tagging information buildRunsInOrderFromXml(o); } } c.dispose(); }
From source file:de.knowwe.include.export.LinkExporter.java
License:Open Source License
@Override public void export(Section<LinkType> section, DocumentBuilder builder) throws ExportException { ExportUtils.addRequiredSpace(builder); Section<?> target = canExportAsReference(builder.getModel().getManager(), section); if (target != null) { String refID = HeaderExporter.getCrossReferenceID(target); // Variant 1: // Export as hyperlinks to anchor // --> Text of link is defined as by wiki user XWPFParagraph paragraph = builder.getParagraph(); CTP ctp = paragraph.getCTP();//from w w w .j a v a 2 s . c o m CTHyperlink hyperlink = ctp.addNewHyperlink(); hyperlink.setAnchor(refID); XWPFHyperlinkRun run = new XWPFHyperlinkRun(hyperlink, hyperlink.addNewR(), paragraph); run.setText(LinkType.getDisplayText(section)); // Variant 2: // Export as word-field (REF ... \h) // --> More word-like, // but reference text is always updated to the header title // CTP p = builder.getParagraph().getCTP(); // p.addNewPPr(); // CTR run = p.addNewR(); // run.addNewRPr().addNewNoProof(); // run.addNewFldChar().setFldCharType(STFldCharType.BEGIN); // // pageref run // run = p.addNewR(); // run.addNewRPr().addNewNoProof(); // CTText text = run.addNewInstrText(); // text.setSpace(Space.PRESERVE); // // bookmark reference // text.setStringValue(" REF " + refID + " \\h "); // p.addNewR().addNewRPr().addNewNoProof(); // run = p.addNewR(); // run.addNewRPr().addNewNoProof(); // run.addNewFldChar().setFldCharType(STFldCharType.SEPARATE); // // page number run // run = p.addNewR(); // run.addNewRPr().addNewNoProof(); // run.addNewT().setStringValue(LinkType.getDisplayText(section)); // run = p.addNewR(); // run.addNewRPr().addNewNoProof(); // run.addNewFldChar().setFldCharType(STFldCharType.END); } else { builder.append(LinkType.getDisplayText(section)); } }
From source file:fr.opensagres.poi.xwpf.converter.core.XWPFDocumentVisitor.java
License:Open Source License
private void visitRun(XWPFParagraph paragraph, XmlObject o, T paragraphContainer) throws Exception { if (o instanceof CTHyperlink) { CTHyperlink link = (CTHyperlink) o; String anchor = link.getAnchor(); String href = null;//from w ww. ja v a 2s . com // Test if the is an id for hyperlink String hyperlinkId = link.getId(); if (StringUtils.isNotEmpty(hyperlinkId)) { XWPFHyperlink hyperlink = document.getHyperlinkByID(hyperlinkId); href = hyperlink != null ? hyperlink.getURL() : null; } for (CTR r : link.getRList()) { XWPFRun run = new XWPFHyperlinkRun(link, r, paragraph); visitRun(run, false, href != null ? href : "#" + anchor, paragraphContainer); } } else if (o instanceof CTSdtRun) { CTSdtContentRun run = ((CTSdtRun) o).getSdtContent(); for (CTR r : run.getRList()) { XWPFRun ru = new XWPFRun(r, paragraph); visitRun(ru, false, null, paragraphContainer); } } else if (o instanceof CTRunTrackChange) { for (CTR r : ((CTRunTrackChange) o).getRList()) { XWPFRun run = new XWPFRun(r, paragraph); visitRun(run, false, null, paragraphContainer); } } else if (o instanceof CTSimpleField) { CTSimpleField simpleField = (CTSimpleField) o; String instr = simpleField.getInstr(); // 1) test if it's page number // <w:fldSimple w:instr=" PAGE \* MERGEFORMAT "> <w:r> <w:rPr> <w:noProof/> // </w:rPr> <w:t>- 1 -</w:t> </w:r> </w:fldSimple> boolean fieldPageNumber = XWPFRunHelper.isInstrTextPage(instr); String fieldHref = null; if (!fieldPageNumber) { // not page number, test if it's hyperlink : // <w:instrText>HYPERLINK "http://code.google.com/p/xdocrepor"</w:instrText> fieldHref = XWPFRunHelper.getInstrTextHyperlink(instr); } for (CTR r : simpleField.getRList()) { XWPFRun run = new XWPFRun(r, paragraph); visitRun(run, fieldPageNumber, fieldHref, paragraphContainer); } } else if (o instanceof CTSmartTagRun) { // Smart Tags can be nested many times. // This implementation does not preserve the tagging information // buildRunsInOrderFromXml(o); } else if (o instanceof CTBookmark) { CTBookmark bookmark = (CTBookmark) o; visitBookmark(bookmark, paragraph, paragraphContainer); } }
From source file:org.obeonetwork.m2doc.generator.M2DocEvaluator.java
License:Open Source License
/** * Inserts a run in the generated document. The new run is a copy from the specified run. * // ww w. j a v a2 s.co m * @param srcRun * the run to copy * @return the inserted run. */ private XWPFRun insertRun(XWPFRun srcRun) { if (srcRun.getParent() != currentTemplateParagraph || forceNewParagraph) { createNewParagraph((XWPFParagraph) srcRun.getParent()); forceNewParagraph = false; } XWPFRun newRun = null; if (srcRun instanceof XWPFHyperlinkRun) { // Hyperlinks meta information is saved in the paragraph and not in the run. So we have to update the paragrapah with a copy of // the hyperlink to insert. CTHyperlink newHyperlink = currentGeneratedParagraph.getCTP().addNewHyperlink(); newHyperlink.set(((XWPFHyperlinkRun) srcRun).getCTHyperlink()); newRun = new XWPFHyperlinkRun(newHyperlink, srcRun.getCTR(), srcRun.getParent()); currentGeneratedParagraph.addRun(newRun); } else { newRun = currentGeneratedParagraph.createRun(); newRun.getCTR().set(srcRun.getCTR()); } return newRun; }