public class COSDocument extends COSBase implements Closeable
Constructor and Description |
---|
COSDocument()
Constructor.
|
COSDocument(File scratchDir)
Constructor that will create a create a scratch file in the
following directory.
|
COSDocument(File scratchDir,
boolean forceParsingValue)
Constructor that will use a temporary file in the given directory
for storage of the PDF streams.
|
COSDocument(RandomAccess file)
Constructor that will use the following random access file for storage
of the PDF streams.
|
COSDocument(RandomAccess scratchFileValue,
boolean forceParsingValue)
Constructor that will use the given random access file for storage
of the PDF streams.
|
Modifier and Type | Method and Description |
---|---|
Object |
accept(ICOSVisitor visitor)
visitor pattern double dispatch method.
|
void |
addXRefTable(Map<COSObjectKey,Long> xrefTableValues)
Populate XRef HashMap with given values.
|
void |
close()
This will close all storage and delete the tmp files.
|
COSStream |
createCOSStream()
Create a new COSStream using the underlying scratch file.
|
COSStream |
createCOSStream(COSDictionary dictionary)
Create a new COSStream using the underlying scratch file.
|
void |
dereferenceObjectStreams()
This method will search the list of objects for types of ObjStm.
|
protected void |
finalize()
Warn the user in the finalizer if he didn't close the PDF document.
|
COSObject |
getCatalog()
This will get the document catalog.
|
COSArray |
getDocumentID()
This will get the document ID.
|
COSDictionary |
getEncryptionDictionary()
This will get the encryption dictionary if the document is encrypted or null
if the document is not encrypted.
|
String |
getHeaderString() |
COSObject |
getObjectByType(COSName type)
This will get the first dictionary object by type.
|
COSObject |
getObjectByType(String type)
Deprecated.
use
getObjectByType(COSName) instead |
COSObject |
getObjectFromPool(COSObjectKey key)
This will get an object from the pool.
|
List<COSObject> |
getObjects()
This will get a list of all available objects.
|
List<COSObject> |
getObjectsByType(COSName type)
This will get a dictionary object by type.
|
List<COSObject> |
getObjectsByType(String type)
This will get all dictionary objects by type.
|
RandomAccess |
getScratchFile()
Deprecated.
direct access to the scratch file will be removed
|
List<COSDictionary> |
getSignatureDictionaries()
This will return a list of signature dictionaries as COSDictionary.
|
List<COSDictionary> |
getSignatureFields(boolean onlyEmptyFields)
This will return a list of signature fields.
|
SignatureInterface |
getSignatureInterface()
This will return the signature interface.
|
long |
getStartXref()
Return the startXref Position of the parsed document.
|
COSDictionary |
getTrailer()
This will get the document trailer.
|
float |
getVersion()
This will get the version of this PDF document.
|
Map<COSObjectKey,Long> |
getXrefTable()
Returns the xrefTable which is a mapping of ObjectKeys
to byte offsets in the file.
|
boolean |
isDecrypted()
Indicates if a encrypted pdf is already decrypted after parsing.
|
boolean |
isEncrypted()
This will tell if this is an encrypted document.
|
boolean |
isXRefStream()
Determines it the trailer is a XRef stream or not.
|
void |
print()
This will print contents to stdout.
|
COSObject |
removeObject(COSObjectKey key)
Removes an object from the object pool.
|
void |
setDecrypted()
Signals that the document is decrypted completely.
|
void |
setDocumentID(COSArray id)
This will set the document ID.
|
void |
setEncryptionDictionary(COSDictionary encDictionary)
This will set the encryption dictionary, this should only be called when
encrypting the document.
|
void |
setHeaderString(String header) |
void |
setSignatureInterface(SignatureInterface sigInterface)
Set the signature interface to the given value.
|
void |
setStartXref(long startXrefValue)
This method set the startxref value of the document.
|
void |
setTrailer(COSDictionary newTrailer)
// MIT added, maybe this should not be supported as trailer is a persistence construct.
|
void |
setVersion(float versionValue)
This will set the version of this PDF document.
|
void |
setWarnMissingClose(boolean warn)
Controls whether this instance shall issue a warning if the PDF document wasn't closed
properly through a call to the
close() method. |
getCOSObject, getFilterManager, isDirect, isNeedToBeUpdate, setDirect, setNeedToBeUpdate
public COSDocument(RandomAccess scratchFileValue, boolean forceParsingValue)
scratchFileValue
- the random access file to use for storageforceParsingValue
- flag to skip malformed or otherwise unparseable
document content where possiblepublic COSDocument(File scratchDir, boolean forceParsingValue) throws IOException
scratchDir
- directory for the temporary file,
or null
to use the system defaultforceParsingValue
- flag to skip malformed or otherwise unparseable
document content where possibleIOException
- if something went wrongpublic COSDocument()
public COSDocument(File scratchDir) throws IOException
scratchDir
- The directory to store a scratch file.IOException
- If there is an error creating the tmp file.public COSDocument(RandomAccess file)
file
- The random access file to use for storage.public RandomAccess getScratchFile()
public COSStream createCOSStream()
public COSStream createCOSStream(COSDictionary dictionary)
dictionary
- the corresponding dictionarypublic COSObject getObjectByType(String type) throws IOException
getObjectByType(COSName)
insteadtype
- The type of the object.IOException
- If there is an error getting the objectpublic COSObject getObjectByType(COSName type) throws IOException
type
- The type of the object.IOException
- If there is an error getting the objectpublic List<COSObject> getObjectsByType(String type) throws IOException
type
- The type of the object.IOException
- If there is an error getting the objectpublic List<COSObject> getObjectsByType(COSName type) throws IOException
type
- The type of the object.IOException
- If there is an error getting the objectpublic void print()
public void setVersion(float versionValue)
versionValue
- The version of the PDF document.public float getVersion()
public void setDecrypted()
NonSequentialPDFParser
to circumvent
additional decryption later on.public boolean isDecrypted()
NonSequentialPDFParser
is used.public boolean isEncrypted()
public COSDictionary getEncryptionDictionary()
public SignatureInterface getSignatureInterface()
public void setEncryptionDictionary(COSDictionary encDictionary)
encDictionary
- The encryption dictionary.public List<COSDictionary> getSignatureDictionaries() throws IOException
IOException
- if no document catalog can be foundpublic List<COSDictionary> getSignatureFields(boolean onlyEmptyFields) throws IOException
onlyEmptyFields
- only empty signature fields will be returnedIOException
- if no document catalog can be foundpublic COSArray getDocumentID()
public void setDocumentID(COSArray id)
id
- The document id.public void setSignatureInterface(SignatureInterface sigInterface)
sigInterface
- the signature interfacepublic COSObject getCatalog() throws IOException
IOException
- If no catalog can be found.public List<COSObject> getObjects()
public COSDictionary getTrailer()
public void setTrailer(COSDictionary newTrailer)
newTrailer
- the document trailer dictionarypublic Object accept(ICOSVisitor visitor) throws COSVisitorException
accept
in class COSBase
visitor
- The object to notify when visiting this object.COSVisitorException
- If an error occurs while visiting this object.public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
- If there is an error close resources.protected void finalize() throws IOException
finalize
in class Object
IOException
- if an error occurs while closing the temporary filespublic void setWarnMissingClose(boolean warn)
close()
method. If the PDF document is held in
a cache governed by soft references it is impossible to reliably close the document
before the warning is raised. By default, the warning is enabled.warn
- true enables the warning, false disables it.public String getHeaderString()
public void setHeaderString(String header)
header
- The headerString to set.public void dereferenceObjectStreams() throws IOException
IOException
- If there is an error parsing the stream.public COSObject getObjectFromPool(COSObjectKey key) throws IOException
key
- The object key.IOException
- If there is an error getting the proxy object.public COSObject removeObject(COSObjectKey key)
key
- the object keypublic void addXRefTable(Map<COSObjectKey,Long> xrefTableValues)
xrefTableValues
- xref table entries to be addedpublic Map<COSObjectKey,Long> getXrefTable()
public void setStartXref(long startXrefValue)
startXrefValue
- the value for startXrefpublic long getStartXref()
public boolean isXRefStream()
Copyright © 2002-2015 The Apache Software Foundation. All Rights Reserved.