Package org.apache.poi
Class POIDocument
- java.lang.Object
-
- org.apache.poi.POIDocument
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
- Direct Known Subclasses:
HPSFPropertiesOnlyDocument
,HSLFSlideShowImpl
,HSSFWorkbook
,HWPFDocumentCore
,POIReadOnlyDocument
public abstract class POIDocument extends java.lang.Object implements java.io.Closeable
This holds the common functionality for all POI Document classes. Currently, this relates to Document Information Properties
-
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
close()
Closes the underlyingPOIFSFileSystem
from which the document was read, if any.void
createInformationProperties()
Will create whichever of SummaryInformation and DocumentSummaryInformation (HPSF) properties are not already part of your document.DirectoryNode
getDirectory()
DocumentSummaryInformation
getDocumentSummaryInformation()
Fetch the Document Summary Information of the documentEncryptionInfo
getEncryptionInfo()
SummaryInformation
getSummaryInformation()
Fetch the Summary Information of the documentabstract void
write()
Writes the document out to the currently openFile
, via the writeablePOIFSFileSystem
it was opened from.abstract void
write(java.io.File newFile)
Writes the document out to the specified newFile
.abstract void
write(java.io.OutputStream out)
Writes the document out to the specified output stream.
-
-
-
Method Detail
-
getDocumentSummaryInformation
public DocumentSummaryInformation getDocumentSummaryInformation()
Fetch the Document Summary Information of the document- Returns:
- The Document Summary Information or null if it could not be read for this document.
-
getSummaryInformation
public SummaryInformation getSummaryInformation()
Fetch the Summary Information of the document- Returns:
- The Summary information for the document or null if it could not be read for this document.
-
createInformationProperties
public void createInformationProperties()
Will create whichever of SummaryInformation and DocumentSummaryInformation (HPSF) properties are not already part of your document. This is normally useful when creating a new document from scratch. If the information properties are already there, then nothing will happen.
-
write
public abstract void write() throws java.io.IOException
Writes the document out to the currently openFile
, via the writeablePOIFSFileSystem
it was opened from.This will fail (with an
IllegalStateException
if the document was opened read-only, opened from anInputStream
instead of a File, or if this is not the root document. For those cases, you must usewrite(OutputStream)
orwrite(File)
to write to a brand new document.- Throws:
java.io.IOException
- thrown on errors writing to the filejava.lang.IllegalStateException
- if this isn't from a writable File- Since:
- POI 3.15 beta 3
-
write
public abstract void write(java.io.File newFile) throws java.io.IOException
Writes the document out to the specified newFile
. If the file exists, it will be replaced, otherwise a new one will be created- Parameters:
newFile
- The new File to write to.- Throws:
java.io.IOException
- thrown on errors writing to the file- Since:
- POI 3.15 beta 3
-
write
public abstract void write(java.io.OutputStream out) throws java.io.IOException
Writes the document out to the specified output stream. The stream is not closed as part of this operation. Note - if the Document was opened from aFile
rather than anInputStream
, you must write out usingwrite()
or to a different File. Overwriting the currently open file via an OutputStream isn't possible. Ifstream
is aFileOutputStream
on a networked drive or has a high cost/latency associated with each written byte, consider wrapping the OutputStream in aBufferedOutputStream
to improve write performance, or usewrite()
/write(File)
if possible.- Parameters:
out
- The stream to write to.- Throws:
java.io.IOException
- thrown on errors writing to the stream
-
close
public void close() throws java.io.IOException
Closes the underlyingPOIFSFileSystem
from which the document was read, if any. Has no effect on documents opened from an InputStream, or newly created ones.Once
close()
has been called, no further operations should be called on the document.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
getDirectory
@Internal public DirectoryNode getDirectory()
-
getEncryptionInfo
public EncryptionInfo getEncryptionInfo() throws java.io.IOException
- Returns:
- the encryption info if the document is encrypted, otherwise
null
- Throws:
java.io.IOException
- If retrieving the encryption information fails
-
-