Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
What Is poi-scratchpad-5.2.3.jar?
What Is poi-scratchpad-5.2.3.jar?
✍: FYIcenter.com
poi-scratchpad-5.2.3.jar is one of the JAR files for Apache POI 5.2.3, which provides an API for Microsoft document files of Word, Excel, PowerPoint, and Visio.
poi-scratchpad-5.2.3.jar provides support for older versions of Microsoft document files like Word 97, Excel 97, PowerPoint 97, etc.
poi-scratchpad-5.2.3.jar is distributed as part of the poi-bin-5.2.3-20220909.zip download file.
JAR File Size and Download Location:
JAR name: poi-scratchpad-5.2.3.jar Target JDK version: 9 Dependency: poi.jar File name: poi-scratchpad.jar, poi-scratchpad-5.2.3.jar File size: 1897121 bytes Release date: 09-09-2022 Download: Apache POI Website
Here are Java Source Code files for poi-scratchpad-5.2.3.jar:
⏎ org/apache/poi/hslf/usermodel/HSLFHyperlink.java
/* ==================================================================== Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ==================================================================== */ package org.apache.poi.hslf.usermodel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.ListIterator; import org.apache.poi.common.usermodel.HyperlinkType; import org.apache.poi.hslf.record.ExHyperlink; import org.apache.poi.hslf.record.ExHyperlinkAtom; import org.apache.poi.hslf.record.ExObjList; import org.apache.poi.hslf.record.HSLFEscherClientDataRecord; import org.apache.poi.hslf.record.InteractiveInfo; import org.apache.poi.hslf.record.InteractiveInfoAtom; import org.apache.poi.hslf.record.Record; import org.apache.poi.hslf.record.TxInteractiveInfoAtom; import org.apache.poi.sl.usermodel.Hyperlink; import org.apache.poi.sl.usermodel.Slide; /** * Represents a hyperlink in a PowerPoint document */ public final class HSLFHyperlink implements Hyperlink<HSLFShape,HSLFTextParagraph> { private final ExHyperlink exHyper; private final InteractiveInfo info; private TxInteractiveInfoAtom txinfo; protected HSLFHyperlink(ExHyperlink exHyper, InteractiveInfo info) { this.info = info; this.exHyper = exHyper; } public ExHyperlink getExHyperlink() { return exHyper; } public InteractiveInfo getInfo() { return info; } public TxInteractiveInfoAtom getTextRunInfo() { return txinfo; } protected void setTextRunInfo(TxInteractiveInfoAtom txinfo) { this.txinfo = txinfo; } /** * Creates a new Hyperlink and assign it to a shape * This is only a helper method - use {@link HSLFSimpleShape#createHyperlink()} instead! * * @param shape the shape which receives the hyperlink * @return the new hyperlink * * @see HSLFSimpleShape#createHyperlink() */ /* package */ static HSLFHyperlink createHyperlink(HSLFSimpleShape shape) { // TODO: check if a hyperlink already exists ExHyperlink exHyper = new ExHyperlink(); int linkId = shape.getSheet().getSlideShow().addToObjListAtom(exHyper); ExHyperlinkAtom obj = exHyper.getExHyperlinkAtom(); obj.setNumber(linkId); InteractiveInfo info = new InteractiveInfo(); info.getInteractiveInfoAtom().setHyperlinkID(linkId); HSLFEscherClientDataRecord cldata = shape.getClientData(true); cldata.addChild(info); HSLFHyperlink hyper = new HSLFHyperlink(exHyper, info); hyper.linkToNextSlide(); shape.setHyperlink(hyper); return hyper; } /** * Creates a new Hyperlink for a textrun. * This is only a helper method - use {@link HSLFTextRun#createHyperlink()} instead! * * @param run the run which receives the hyperlink * @return the new hyperlink * * @see HSLFTextRun#createHyperlink() */ /* package */ static HSLFHyperlink createHyperlink(HSLFTextRun run) { // TODO: check if a hyperlink already exists ExHyperlink exHyper = new ExHyperlink(); int linkId = run.getTextParagraph().getSheet().getSlideShow().addToObjListAtom(exHyper); ExHyperlinkAtom obj = exHyper.getExHyperlinkAtom(); obj.setNumber(linkId); InteractiveInfo info = new InteractiveInfo(); info.getInteractiveInfoAtom().setHyperlinkID(linkId); // don't add the hyperlink now to text paragraph records // this will be done, when the paragraph is saved HSLFHyperlink hyper = new HSLFHyperlink(exHyper, info); hyper.linkToNextSlide(); TxInteractiveInfoAtom txinfo = new TxInteractiveInfoAtom(); int startIdx = run.getTextParagraph().getStartIdxOfTextRun(run); int endIdx = startIdx + run.getLength(); txinfo.setStartIndex(startIdx); txinfo.setEndIndex(endIdx); hyper.setTextRunInfo(txinfo); run.setHyperlink(hyper); return hyper; } /** * Gets the type of the hyperlink action. * Must be a {@code LINK_*} constant * * @return the hyperlink URL * @see InteractiveInfoAtom */ @Override public HyperlinkType getType() { switch (info.getInteractiveInfoAtom().getHyperlinkType()) { case InteractiveInfoAtom.LINK_Url: return (exHyper.getLinkURL().startsWith("mailto:")) ? HyperlinkType.EMAIL : HyperlinkType.URL; case InteractiveInfoAtom.LINK_NextSlide: case InteractiveInfoAtom.LINK_PreviousSlide: case InteractiveInfoAtom.LINK_FirstSlide: case InteractiveInfoAtom.LINK_LastSlide: case InteractiveInfoAtom.LINK_SlideNumber: return HyperlinkType.DOCUMENT; case InteractiveInfoAtom.LINK_CustomShow: case InteractiveInfoAtom.LINK_OtherPresentation: case InteractiveInfoAtom.LINK_OtherFile: return HyperlinkType.FILE; default: case InteractiveInfoAtom.LINK_NULL: return HyperlinkType.NONE; } } @Override public void linkToEmail(String emailAddress) { InteractiveInfoAtom iia = info.getInteractiveInfoAtom(); iia.setAction(InteractiveInfoAtom.ACTION_HYPERLINK); iia.setJump(InteractiveInfoAtom.JUMP_NONE); iia.setHyperlinkType(InteractiveInfoAtom.LINK_Url); exHyper.setLinkURL("mailto:"+emailAddress); exHyper.setLinkTitle(emailAddress); exHyper.setLinkOptions(0x10); } @Override public void linkToUrl(String url) { InteractiveInfoAtom iia = info.getInteractiveInfoAtom(); iia.setAction(InteractiveInfoAtom.ACTION_HYPERLINK); iia.setJump(InteractiveInfoAtom.JUMP_NONE); iia.setHyperlinkType(InteractiveInfoAtom.LINK_Url); exHyper.setLinkURL(url); exHyper.setLinkTitle(url); exHyper.setLinkOptions(0x10); } @Override public void linkToSlide(Slide<HSLFShape,HSLFTextParagraph> slide) { assert(slide instanceof HSLFSlide); HSLFSlide sl = (HSLFSlide)slide; int slideNum = slide.getSlideNumber(); String alias = "Slide "+slideNum; InteractiveInfoAtom iia = info.getInteractiveInfoAtom(); iia.setAction(InteractiveInfoAtom.ACTION_HYPERLINK); iia.setJump(InteractiveInfoAtom.JUMP_NONE); iia.setHyperlinkType(InteractiveInfoAtom.LINK_SlideNumber); linkToDocument(sl._getSheetNumber(),slideNum,alias,0x30); } @Override public void linkToNextSlide() { InteractiveInfoAtom iia = info.getInteractiveInfoAtom(); iia.setAction(InteractiveInfoAtom.ACTION_JUMP); iia.setJump(InteractiveInfoAtom.JUMP_NEXTSLIDE); iia.setHyperlinkType(InteractiveInfoAtom.LINK_NextSlide); linkToDocument(1,-1,"NEXT",0x10); } @Override public void linkToPreviousSlide() { InteractiveInfoAtom iia = info.getInteractiveInfoAtom(); iia.setAction(InteractiveInfoAtom.ACTION_JUMP); iia.setJump(InteractiveInfoAtom.JUMP_PREVIOUSSLIDE); iia.setHyperlinkType(InteractiveInfoAtom.LINK_PreviousSlide); linkToDocument(1,-1,"PREV",0x10); } @Override public void linkToFirstSlide() { InteractiveInfoAtom iia = info.getInteractiveInfoAtom(); iia.setAction(InteractiveInfoAtom.ACTION_JUMP); iia.setJump(InteractiveInfoAtom.JUMP_FIRSTSLIDE); iia.setHyperlinkType(InteractiveInfoAtom.LINK_FirstSlide); linkToDocument(1,-1,"FIRST",0x10); } @Override public void linkToLastSlide() { InteractiveInfoAtom iia = info.getInteractiveInfoAtom(); iia.setAction(InteractiveInfoAtom.ACTION_JUMP); iia.setJump(InteractiveInfoAtom.JUMP_LASTSLIDE); iia.setHyperlinkType(InteractiveInfoAtom.LINK_LastSlide); linkToDocument(1,-1,"LAST",0x10); } private void linkToDocument(int sheetNumber, int slideNumber, String alias, int options) { exHyper.setLinkURL(sheetNumber+","+slideNumber+","+alias); exHyper.setLinkTitle(alias); exHyper.setLinkOptions(options); } @Override public String getAddress() { return exHyper.getLinkURL(); } @Override public void setAddress(String str) { exHyper.setLinkURL(str); } public int getId() { return exHyper.getExHyperlinkAtom().getNumber(); } @Override public String getLabel() { return exHyper.getLinkTitle(); } @Override public void setLabel(String label) { exHyper.setLinkTitle(label); } /** * Gets the beginning character position * * @return the beginning character position */ public int getStartIndex() { return (txinfo == null) ? -1 : txinfo.getStartIndex(); } /** * Sets the beginning character position * * @param startIndex the beginning character position */ public void setStartIndex(int startIndex) { if (txinfo != null) { txinfo.setStartIndex(startIndex); } } /** * Gets the ending character position * * @return the ending character position */ public int getEndIndex() { return (txinfo == null) ? -1 : txinfo.getEndIndex(); } /** * Sets the ending character position * * @param endIndex the ending character position */ public void setEndIndex(int endIndex) { if (txinfo != null) { txinfo.setEndIndex(endIndex); } } /** * Find hyperlinks in a text shape * * @param shape {@code TextRun} to lookup hyperlinks in * @return found hyperlinks or {@code null} if not found */ public static List<HSLFHyperlink> find(HSLFTextShape shape){ return find(shape.getTextParagraphs()); } /** * Find hyperlinks in a text paragraph * * @param paragraphs List of {@code TextParagraph} to lookup hyperlinks * @return found hyperlinks */ @SuppressWarnings("resource") protected static List<HSLFHyperlink> find(List<HSLFTextParagraph> paragraphs){ List<HSLFHyperlink> lst = new ArrayList<>(); if (paragraphs == null || paragraphs.isEmpty()) return lst; HSLFTextParagraph firstPara = paragraphs.get(0); HSLFSlideShow ppt = firstPara.getSheet().getSlideShow(); //document-level container which stores info about all links in a presentation ExObjList exobj = ppt.getDocumentRecord().getExObjList(false); if (exobj != null) { org.apache.poi.hslf.record.Record[] records = firstPara.getRecords(); find(Arrays.asList(records), exobj, lst); } return lst; } /** * Find hyperlink assigned to the supplied shape * * @param shape {@code Shape} to lookup hyperlink in * @return found hyperlink or {@code null} */ @SuppressWarnings("resource") protected static HSLFHyperlink find(HSLFShape shape){ HSLFSlideShow ppt = shape.getSheet().getSlideShow(); //document-level container which stores info about all links in a presentation ExObjList exobj = ppt.getDocumentRecord().getExObjList(false); HSLFEscherClientDataRecord cldata = shape.getClientData(false); if (exobj != null && cldata != null) { List<HSLFHyperlink> lst = new ArrayList<>(); find(cldata.getHSLFChildRecords(), exobj, lst); return lst.isEmpty() ? null : lst.get(0); } return null; } private static void find(List<? extends Record> records, ExObjList exobj, List<HSLFHyperlink> out){ ListIterator<? extends Record> iter = records.listIterator(); while (iter.hasNext()) { org.apache.poi.hslf.record.Record r = iter.next(); // see if we have InteractiveInfo in the textrun's records if (!(r instanceof InteractiveInfo)) { continue; } InteractiveInfo hldr = (InteractiveInfo)r; InteractiveInfoAtom info = hldr.getInteractiveInfoAtom(); if (info == null) { continue; } int id = info.getHyperlinkID(); ExHyperlink exHyper = exobj.get(id); if (exHyper == null) { continue; } HSLFHyperlink link = new HSLFHyperlink(exHyper, hldr); out.add(link); if (iter.hasNext()) { r = iter.next(); if (!(r instanceof TxInteractiveInfoAtom)) { iter.previous(); continue; } link.setTextRunInfo((TxInteractiveInfoAtom)r); } } } }
⏎ org/apache/poi/hslf/usermodel/HSLFHyperlink.java
Or download all of them as a single archive file:
File name: poi-scratchpad-5.2.3-src.zip File size: 1238744 bytes Release date: 2022-09-09 Download
⇒ What Is poi-examples-5.2.3.jar?
⇐ What Is poi-excelant-5.2.3.jar?
2017-03-22, 34579👍, 0💬
Popular Posts:
Joda-Time provides a quality replacement for the Java date and time classes. The design allows for m...
JDK 11 jdk.scripting.nashorn.jm odis the JMOD file for JDK 11 Scripting Nashorn module. JDK 11 Scrip...
Java Cryptography Extension 1.2.2 JAR File Size and Download Location: File name: jce.jar, jce-1.2.2...
How to download and install JDK (Java Development Kit) 8? If you want to write Java applications, yo...
What Is ojdbc8.jar for Oracle 12c R2? ojdbc8.jar for Oracle 12c R2 is the JAR files of ojdbc.jar, JD...