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/extractor/ole2/OLE2ScratchpadExtractorFactory.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.extractor.ole2; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.List; import java.util.stream.StreamSupport; import org.apache.commons.io.input.UnsynchronizedByteArrayInputStream; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.poi.extractor.ExtractorFactory; import org.apache.poi.extractor.ExtractorProvider; import org.apache.poi.extractor.POIOLE2TextExtractor; import org.apache.poi.extractor.POITextExtractor; import org.apache.poi.hdgf.extractor.VisioTextExtractor; import org.apache.poi.hpbf.extractor.PublisherTextExtractor; import org.apache.poi.hslf.usermodel.HSLFSlideShow; import org.apache.poi.hsmf.MAPIMessage; import org.apache.poi.hsmf.datatypes.AttachmentChunks; import org.apache.poi.hsmf.extractor.OutlookTextExtractor; import org.apache.poi.hssf.extractor.ExcelExtractor; import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey; import org.apache.poi.hwpf.OldWordFileFormatException; import org.apache.poi.hwpf.extractor.Word6Extractor; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.poifs.filesystem.DirectoryEntry; import org.apache.poi.poifs.filesystem.DirectoryNode; import org.apache.poi.poifs.filesystem.Entry; import org.apache.poi.poifs.filesystem.FileMagic; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.sl.extractor.SlideShowExtractor; import org.apache.poi.sl.usermodel.SlideShowFactory; /** * Scratchpad-specific logic for {@link ExtractorFactory} and * {@link ExtractorFactory}, which permit the other two to run with * no Scratchpad jar (though without functionality!) * <p>Note - should not be used standalone, always use via the other * two classes</p> */ @SuppressWarnings("WeakerAccess") public class OLE2ScratchpadExtractorFactory implements ExtractorProvider { private static final Logger LOG = LogManager.getLogger(OLE2ScratchpadExtractorFactory.class); private static final String[] OUTLOOK_ENTRY_NAMES = { // message bodies, saved as plain text (PtypString) // The first short (0x1000, 0x0047, 0x0037) refer to the Property ID (see [MS-OXPROPS].pdf) // the second short (0x001e, 0x001f, 0x0102) refer to the type of data stored in this entry // https://msdn.microsoft.com/endatatypes.Ex-us/library/cc433490(v=exchg.80).aspx // @see org.apache.poi.hsmf.Types.MAPIType "__substg1.0_1000001E", //PidTagBody ASCII "__substg1.0_1000001F", //PidTagBody Unicode "__substg1.0_0047001E", //PidTagMessageSubmissionId ASCII "__substg1.0_0047001F", //PidTagMessageSubmissionId Unicode "__substg1.0_0037001E", //PidTagSubject ASCII "__substg1.0_0037001F", //PidTagSubject Unicode }; @Override public boolean accepts(FileMagic fm) { return FileMagic.OLE2 == fm; } @SuppressWarnings("java:S2095") @Override public POITextExtractor create(File file, String password) throws IOException { return create(new POIFSFileSystem(file, true).getRoot(), password); } @Override public POITextExtractor create(InputStream inputStream, String password) throws IOException { return create(new POIFSFileSystem(inputStream).getRoot(), password); } /** * Look for certain entries in the stream, to figure it * out what format is desired * Note - doesn't check for core-supported formats! * Note - doesn't check for OOXML-supported formats * * @param poifsDir the directory node to be inspected * @return the format specific text extractor * * @throws IOException when the format specific extraction fails because of invalid entires */ @SuppressWarnings("java:S2093") @Override public POITextExtractor create(DirectoryNode poifsDir, String password) throws IOException { final String oldPW = Biff8EncryptionKey.getCurrentUserPassword(); try { Biff8EncryptionKey.setCurrentUserPassword(password); if (poifsDir.hasEntry("WordDocument")) { // Old or new style word document? try { return new WordExtractor(poifsDir); } catch (OldWordFileFormatException e) { return new Word6Extractor(poifsDir); } } if (poifsDir.hasEntry(HSLFSlideShow.POWERPOINT_DOCUMENT) || poifsDir.hasEntry(HSLFSlideShow.PP97_DOCUMENT)) { return new SlideShowExtractor<>((HSLFSlideShow)SlideShowFactory.create(poifsDir)); } if (poifsDir.hasEntry("VisioDocument")) { return new VisioTextExtractor(poifsDir); } if (poifsDir.hasEntry("Quill")) { return new PublisherTextExtractor(poifsDir); } for (String entryName : OUTLOOK_ENTRY_NAMES) { if (poifsDir.hasEntry(entryName)) { return new OutlookTextExtractor(poifsDir); } } } finally { Biff8EncryptionKey.setCurrentUserPassword(oldPW); } return null; } /** * Returns an array of text extractors, one for each of * the embedded documents in the file (if there are any). * If there are no embedded documents, you'll get back an * empty array. Otherwise, you'll get one open * {@link POITextExtractor} for each embedded file. * * @param ext the extractor holding the directory to start parsing * @param dirs a list to be filled with directory references holding embedded * @param nonPOIFS a list to be filled with streams which aren't based on POIFS entries */ @Override public void identifyEmbeddedResources(POIOLE2TextExtractor ext, List<Entry> dirs, List<InputStream> nonPOIFS) { // Find all the embedded directories DirectoryEntry root = ext.getRoot(); if (root == null) { throw new IllegalStateException("The extractor didn't know which POIFS it came from!"); } if (ext instanceof ExcelExtractor) { // These are in MBD... under the root StreamSupport.stream(root.spliterator(), false) .filter(entry -> entry.getName().startsWith("MBD")) .forEach(dirs::add); } else if (ext instanceof WordExtractor) { // These are in ObjectPool -> _... under the root try { DirectoryEntry op = (DirectoryEntry) root.getEntry("ObjectPool"); StreamSupport.stream(op.spliterator(), false) .filter(entry -> entry.getName().startsWith("_")) .forEach(dirs::add); } catch(FileNotFoundException e) { LOG.atInfo().withThrowable(e).log("Ignoring FileNotFoundException while extracting Word document"); // ignored here } //} else if(ext instanceof PowerPointExtractor) { // Tricky, not stored directly in poifs // TODO } else if (ext instanceof OutlookTextExtractor) { // Stored in the Attachment blocks MAPIMessage msg = ((OutlookTextExtractor)ext).getMAPIMessage(); for (AttachmentChunks attachment : msg.getAttachmentFiles()) { if (attachment.getAttachData() != null) { byte[] data = attachment.getAttachData().getValue(); nonPOIFS.add( new UnsynchronizedByteArrayInputStream(data) ); } else if (attachment.getAttachmentDirectory() != null) { dirs.add(attachment.getAttachmentDirectory().getDirectory()); } } } } }
⏎ org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.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, 25607👍, 0💬
Popular Posts:
How to download and install JDK (Java Development Kit) 8? If you want to write Java applications, yo...
XML Serializer, Release 2.7.1, allows you to write out XML, HTML etc. as a stream of characters from...
jlGui is a music player for the Java platform. It is based on Java Sound 1.0 (i.e. JDK 1.3+). It sup...
XML Serializer, Release 2.7.1, allows you to write out XML, HTML etc. as a stream of characters from...
JDK 11 jdk.xml.dom.jmod is the JMOD file for JDK 11 XML DOM module. JDK 11 XML DOM module compiled c...