Package com.lowagie.text.pdf
Class PdfReader
java.lang.Object
com.lowagie.text.pdf.PdfReader
- All Implemented Interfaces:
PdfViewerPreferences
,Closeable
,AutoCloseable
- Direct Known Subclasses:
FdfReader
Reads a PDF document.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected PRAcroForm
protected boolean
private boolean
Holds value of property appendable.protected PdfDictionary
protected Certificate
protected Key
protected String
protected boolean
private PRIndirectReference
protected PdfEncryption
protected boolean
private boolean
private static final byte[]
private static final byte[]
protected int
private int
protected int
private boolean
protected int
private int
private boolean
protected boolean
private int
private int
protected Map
<Integer, IntHashtable> protected IntHashtable
private boolean
(package private) static final PdfName[]
protected PdfReader.PageRefs
private boolean
protected byte[]
protected char
protected int
private int
protected boolean
protected boolean
(package private) PdfDictionary
protected int
protected boolean
protected boolean
protected PRTokeniser
protected PdfDictionary
private final PdfViewerPreferencesImp
protected int[]
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
PdfReader
(byte[] pdfIn) Reads and parses a PDF document.PdfReader
(byte[] pdfIn, byte[] ownerPassword) Reads and parses a PDF document.Creates an independent duplicate.PdfReader
(RandomAccessFileOrArray raf, byte[] ownerPassword) Reads and parses a pdf document.PdfReader
(InputStream is) Reads and parses a PDF document.PdfReader
(InputStream is, byte[] ownerPassword) Reads and parses a PDF document.Reads and parses a PDF document.Reads and parses a PDF document.PdfReader
(String filename, Certificate certificate, Key certificateKey, String certificateKeyProvider) Reads and parses a PDF document.Reads and parses a PDF document.Reads and parses a PDF document. -
Method Summary
Modifier and TypeMethodDescriptionaddFilters
(List<PdfObject> filters, PdfObject filter) addPdfObject
(PdfObject obj) void
addViewerPreference
(PdfName key, PdfObject value) Adds a viewer preferencestatic byte[]
ASCII85Decode
(byte[] in) Decodes a stream that has the ASCII85Decode filter.static byte[]
ASCIIHexDecode
(byte[] in) Decodes a stream that has the ASCIIHexDecode filter.private void
checkPRStreamLength
(PRStream stream) void
close()
Closes the readerbyte[]
void
Replaces all the local named links with the actual destinations.private boolean
convertNamedDestination
(PdfObject obj, Map<Object, PdfObject> names) Converts a remote named destination GoToR with a local named destination if there's a corresponding name.static PdfObject
convertPdfNull
(PdfObject obj) If given object is instance ofPdfNull
, thennull
is returned.int
Finds all the fonts not subset but embedded and marks them as subset.private String
Creates a unique subset prefix to be added to the font name when the font is embedded and subset.static byte[]
decodePredictor
(byte[] in, PdfObject dicPar) double
dumpPerc()
protected static PdfDictionary
duplicatePdfDictionary
(PdfDictionary original, PdfDictionary copy, PdfReader newReader) protected static PdfObject
duplicatePdfObject
(PdfObject original, PdfReader newReader) void
Eliminates shared streams if they exist.private void
ensureXrefSize
(int size) private boolean
equalsArray
(byte[] ar1, byte[] ar2, int size) private static boolean
equalsn
(byte[] a1, byte[] a2) private static boolean
existsName
(PdfDictionary dic, PdfName key, PdfName value) static byte[]
FlateDecode
(byte[] in) Decodes a stream that has the FlateDecode filter.static byte[]
FlateDecode
(byte[] in, boolean strict) A helper to FlateDecode.Gets a read-only version ofAcroFields
.Returns the document's acroform, if it has one.getBoxSize
(int index, String boxName) Gets the box size.Returns the document's catalog.int
Gets the certification level for this document.getCropBox
(int index) Gets the crop box without taking rotation into account.int
(package private) PdfIndirectReference
(package private) PdfEncryption
byte[]
Returns a permanent document identifier extracted from trailer /ID entry, when presentint
Gets the byte address of the %%EOF marker.int
Getter for property fileLength.private static String
getFontName
(PdfDictionary dic) private static String
getFontName
(PdfDictionary dic, PdfName property) (package private) static String
getInfo()
Returns the content of the document information dictionary as aHashMap
ofString
.Gets the global document JavaScript.Gets the global document JavaScript.int
Gets the byte address of the last xref table.getLinks
(int page) byte[]
Gets the XML metadata.private static PdfArray
getNameArray
(PdfObject obj) Gets all the named destinations as anHashMap
.getNamedDestination
(boolean keepNames) Gets all the named destinations as anHashMap
.Gets the named destinations from the /Dests key in the catalog as anHashMap
.getNamedDestinationFromNames
(boolean keepNames) Gets the named destinations from the /Dests key in the catalog as anHashMap
.Gets the named destinations from the /Names key in the catalog as anHashMap
.static Rectangle
Normalizes aRectangle
so that llx and lly are smaller than urx and ury.int
Gets the number of pages in the document.byte[]
getPageContent
(int pageNum) Gets the contents of the page.byte[]
getPageContent
(int pageNum, RandomAccessFileOrArray file) Gets the contents of the page.getPageN
(int pageNum) Gets the dictionary that represents a page.getPageNRelease
(int pageNum) getPageOrigRef
(int pageNum) Gets the page reference to this page.int
getPageRotation
(int index) Gets the page rotation.(package private) static int
getPageRotation
(PdfDictionary page) getPageSize
(int index) Gets the page size without taking rotation into account.getPageSize
(PdfDictionary page) Gets the page from a page dictionarygetPageSizeWithRotation
(int index) Gets the page size, taking rotation into account.getPageSizeWithRotation
(int index, String boxName) Gets the page size, taking rotation into account.Gets the rotated page from a page dictionary.getPdfObject
(int idx) static PdfObject
getPdfObject
(PdfObject obj) Reads aPdfObject
resolving an indirect reference if needed.static PdfObject
getPdfObject
(PdfObject obj, PdfObject parent) static PdfObject
getPdfObjectNullConverting
(PdfObject obj, PdfObject parent) ReturnsgetPdfObject(PdfObject, PdfObject)
with appliedconvertPdfNull(PdfObject)
.getPdfObjectRelease
(int idx) static PdfObject
static PdfObject
getPdfObjectRelease
(PdfObject obj, PdfObject parent) Reads aPdfObject
resolving an indirect reference if needed.static PdfObject
ReturnsgetPdfObjectRelease(PdfObject)
with appliedconvertPdfNull(PdfObject)
.protected PdfReaderInstance
getPdfReaderInstance
(PdfWriter writer) char
Gets the PDF version.int
Gets the encryption permissions.Gets a new file instance of the original PDF document.int
Returns a bitset representing the PageMode and PageLayout viewer preferences.static byte[]
getStreamBytes
(PRStream stream) Get the content from a stream applying the required filters.static byte[]
getStreamBytes
(PRStream stream, RandomAccessFileOrArray file) Get the content from a stream applying the required filters.static byte[]
getStreamBytesRaw
(PRStream stream) Get the content from a stream as it is without applying any filter.static byte[]
getStreamBytesRaw
(PRStream stream, RandomAccessFileOrArray file) Get the content from a stream as it is without applying any filter.private static String
Gets the trailer dictionaryint
Gets the number of xref objects.boolean
is128Key()
Returnstrue
if the PDF has a 128 bit key encryption.boolean
Getter for property appendable.boolean
Returnstrue
if the PDF is encrypted.(package private) static boolean
isFontSubset
(String fontName) boolean
Getter for property hybridXref.boolean
boolean
Checks if an encrypted document may be modified if the owner password was not supplied.boolean
Getter for property newXrefType.final boolean
Checks if the document was opened with the owner password so that the end application can decide what level of access restrictions to apply.boolean
Returnstrue
if the owner password has been used to open the document.boolean
Checks if the document had errors and was rebuilt.boolean
Checks if the document was changed.private void
iterateBookmarks
(PdfObject outlineRef, Map<Object, PdfObject> names) static PdfObject
killIndirect
(PdfObject obj) Eliminates the reference to the object freeing the memory used by it and clearing the xref entry.protected void
static byte[]
LZWDecode
(byte[] in) Decodes a stream that has the LZWDecode filter.void
Replaces remote named links with local destinations that have the same name.protected PdfArray
private void
protected PdfDictionary
protected void
protected void
protected void
readObjStm
(PRStream stream, IntHashtable map) protected PdfObject
readOneObjStm
(PRStream stream, int idx) protected void
protected void
readPdf()
protected void
protected PdfObject
protected PdfObject
readSingleObject
(int k) protected void
readXref()
protected PdfDictionary
protected boolean
readXRefStream
(int ptr) protected void
void
static void
void
releasePage
(int pageNum) void
Removes all the annotations and fields from the document.void
Removes all the fields from the document.protected void
removeUnusedNode
(PdfObject obj, boolean[] hits) int
Removes all the unreachable objects.void
Removes any usage rights that this PDF may have.private boolean
replaceNamedDestination
(PdfObject obj, Map<Object, PdfObject> names) void
void
void
selectPages
(String ranges) Selects the pages to keep in the document.void
selectPages
(List<Integer> pagesToKeep) Selects the pages to keep in the document.void
setAppendable
(boolean appendable) Setter for property appendable.void
setModificationAllowedWithoutOwnerPassword
(boolean modificationAllowedWithoutOwnerPassword) Sets whether the document (if encrypted) may be modified even if the owner password was not supplied.void
setPageContent
(int pageNum, byte[] content) Sets the contents of the page.void
setPageContent
(int pageNum, byte[] content, int compressionLevel) Sets the contents of the page.void
setPermissions
(int permissionValue) void
setTampered
(boolean tampered) Sets the tampered state.void
setViewerPreferences
(int preferences) Sets the viewer preferences as the sum of several constants.(package private) void
private void
setXrefPartialObject
(int idx, PdfObject obj) int
Finds all the font subsets and changes the prefixes to some random values.
-
Field Details
-
pageInhCandidates
-
endstream
private static final byte[] endstream -
endobj
private static final byte[] endobj -
viewerPreferences
-
tokens
-
xref
protected int[] xref -
objStmMark
-
objStmToOffset
-
newXrefType
protected boolean newXrefType -
trailer
-
catalog
-
pageRefs
-
acroForm
-
acroFormParsed
protected boolean acroFormParsed -
encrypted
protected boolean encrypted -
rebuilt
protected boolean rebuilt -
freeXref
protected int freeXref -
tampered
protected boolean tampered -
lastXref
protected int lastXref -
eofPos
protected int eofPos -
pdfVersion
protected char pdfVersion -
decrypt
-
password
protected byte[] password -
certificateKey
-
certificate
-
certificateKeyProvider
-
strings
-
consolidateNamedDestinations
protected boolean consolidateNamedDestinations -
remoteToLocalNamedDestinations
protected boolean remoteToLocalNamedDestinations -
rValue
protected int rValue -
pValue
protected int pValue -
rootPages
PdfDictionary rootPages -
xrefObj
-
ownerPasswordUsed
private boolean ownerPasswordUsed -
modificationAllowedWithoutOwnerPassword
private boolean modificationAllowedWithoutOwnerPassword -
objNum
private int objNum -
objGen
private int objGen -
fileLength
private int fileLength -
hybridXref
private boolean hybridXref -
lastXrefPartial
private int lastXrefPartial -
partial
private boolean partial -
cryptoRef
-
encryptionError
private boolean encryptionError -
appendable
private boolean appendableHolds value of property appendable. -
readDepth
private int readDepth
-
-
Constructor Details
-
PdfReader
protected PdfReader() -
PdfReader
Reads and parses a PDF document.- Parameters:
filename
- the file name of the document- Throws:
IOException
- on error
-
PdfReader
Reads and parses a PDF document.- Parameters:
filename
- the file name of the documentownerPassword
- the password to read the document- Throws:
IOException
- on error
-
PdfReader
Reads and parses a PDF document.- Parameters:
pdfIn
- the byte array with the document- Throws:
IOException
- on error
-
PdfReader
Reads and parses a PDF document.- Parameters:
pdfIn
- the byte array with the documentownerPassword
- the password to read the document- Throws:
IOException
- on error
-
PdfReader
public PdfReader(String filename, Certificate certificate, Key certificateKey, String certificateKeyProvider) throws IOException Reads and parses a PDF document.- Parameters:
filename
- the file name of the documentcertificate
- the certificate to read the documentcertificateKey
- the private key of the certificatecertificateKeyProvider
- the security provider for certificateKey- Throws:
IOException
- on error
-
PdfReader
Reads and parses a PDF document.- Parameters:
url
- the URL of the document- Throws:
IOException
- on error
-
PdfReader
Reads and parses a PDF document.- Parameters:
url
- the URL of the documentownerPassword
- the password to read the document- Throws:
IOException
- on error
-
PdfReader
Reads and parses a PDF document.- Parameters:
is
- theInputStream
containing the document. The stream is read to the end but is not closedownerPassword
- the password to read the document- Throws:
IOException
- on error
-
PdfReader
Reads and parses a PDF document.- Parameters:
is
- theInputStream
containing the document. The stream is read to the end but is not closed- Throws:
IOException
- on error
-
PdfReader
Reads and parses a pdf document. Contrary to the other constructors only the xref is read into memory. The reader is said to be working in "partial" mode as only parts of the pdf are read as needed. The pdf is left open but may be closed at any time withPdfReader.close()
, reopen is automatic.- Parameters:
raf
- the document locationownerPassword
- the password ornull
for no password- Throws:
IOException
- on error
-
PdfReader
Creates an independent duplicate.- Parameters:
reader
- thePdfReader
to duplicate
-
-
Method Details
-
getPageRotation
-
getNormalizedRectangle
Normalizes aRectangle
so that llx and lly are smaller than urx and ury.- Parameters:
box
- the original rectangle- Returns:
- a normalized
Rectangle
-
getPdfObjectRelease
- Parameters:
obj
- an object ofPdfObject
- Returns:
- a PdfObject
-
convertPdfNull
If given object is instance ofPdfNull
, thennull
is returned. The provided object otherwise.- Parameters:
obj
- object to convert- Returns:
- provided object or null
-
getPdfObjectReleaseNullConverting
ReturnsgetPdfObjectRelease(PdfObject)
with appliedconvertPdfNull(PdfObject)
. -
getPdfObject
Reads aPdfObject
resolving an indirect reference if needed.- Parameters:
obj
- thePdfObject
to read- Returns:
- the resolved
PdfObject
-
getPdfObjectRelease
Reads aPdfObject
resolving an indirect reference if needed. If the reader was opened in partial mode the object will be released to save memory.- Parameters:
obj
- thePdfObject
to readparent
- parent object- Returns:
- a PdfObject
-
getPdfObject
- Parameters:
obj
- thePdfObject
to readparent
- parent object- Returns:
- a PdfObject
-
getPdfObjectNullConverting
ReturnsgetPdfObject(PdfObject, PdfObject)
with appliedconvertPdfNull(PdfObject)
. -
releaseLastXrefPartial
- Parameters:
obj
- an object ofPdfObject
-
killIndirect
Eliminates the reference to the object freeing the memory used by it and clearing the xref entry.- Parameters:
obj
- the object. If it's an indirect reference it will be eliminated- Returns:
- the object or the already erased dereferenced object
-
FlateDecode
public static byte[] FlateDecode(byte[] in) Decodes a stream that has the FlateDecode filter.- Parameters:
in
- the input data- Returns:
- the decoded data
-
decodePredictor
- Parameters:
in
- the input datadicPar
- an object ofPdfObject
- Returns:
- a byte array
-
FlateDecode
public static byte[] FlateDecode(byte[] in, boolean strict) A helper to FlateDecode.- Parameters:
in
- the input datastrict
-true
to read a correct stream.false
to try to read a corrupted stream- Returns:
- the decoded data
-
ASCIIHexDecode
public static byte[] ASCIIHexDecode(byte[] in) Decodes a stream that has the ASCIIHexDecode filter.- Parameters:
in
- the input data- Returns:
- the decoded data
-
ASCII85Decode
public static byte[] ASCII85Decode(byte[] in) Decodes a stream that has the ASCII85Decode filter.- Parameters:
in
- the input data- Returns:
- the decoded data
-
LZWDecode
public static byte[] LZWDecode(byte[] in) Decodes a stream that has the LZWDecode filter.- Parameters:
in
- the input data- Returns:
- the decoded data
-
getStreamBytes
public static byte[] getStreamBytes(PRStream stream, RandomAccessFileOrArray file) throws IOException Get the content from a stream applying the required filters.- Parameters:
stream
- the streamfile
- the location where the stream is- Returns:
- the stream content
- Throws:
IOException
- on error
-
getStreamBytes
Get the content from a stream applying the required filters.- Parameters:
stream
- the stream- Returns:
- the stream content
- Throws:
IOException
- on error
-
getStreamBytesRaw
public static byte[] getStreamBytesRaw(PRStream stream, RandomAccessFileOrArray file) throws IOException Get the content from a stream as it is without applying any filter.- Parameters:
stream
- the streamfile
- the location where the stream is- Returns:
- the stream content
- Throws:
IOException
- on error
-
addFilters
-
getStreamBytesRaw
Get the content from a stream as it is without applying any filter.- Parameters:
stream
- the stream- Returns:
- the stream content
- Throws:
IOException
- on error
-
equalsn
private static boolean equalsn(byte[] a1, byte[] a2) -
existsName
-
getFontNameFromDescriptor
-
getFontName
-
getFontName
-
isFontSubset
-
getSubsetPrefix
-
getNameArray
-
duplicatePdfDictionary
protected static PdfDictionary duplicatePdfDictionary(PdfDictionary original, PdfDictionary copy, PdfReader newReader) -
duplicatePdfObject
-
getSafeFile
Gets a new file instance of the original PDF document.- Returns:
- a new file instance of the original PDF document
-
getPdfReaderInstance
-
getNumberOfPages
public int getNumberOfPages()Gets the number of pages in the document.- Returns:
- the number of pages in the document
-
getCatalog
Returns the document's catalog. This dictionary is not a copy, any changes will be reflected in the catalog.- Returns:
- the document's catalog
-
getAcroForm
Returns the document's acroform, if it has one.- Returns:
- the document's acroform
-
getPageRotation
public int getPageRotation(int index) Gets the page rotation. This value can be 0, 90, 180 or 270.- Parameters:
index
- the page number. The first page is 1- Returns:
- the page rotation
-
getPageSizeWithRotation
Gets the page size, taking rotation into account. This is aRectangle
with the value of the /MediaBox and the /Rotate key.- Parameters:
index
- the page number. The first page is 1- Returns:
- a
Rectangle
-
getPageSizeWithRotation
Gets the rotated page from a page dictionary.- Parameters:
page
- the page dictionary- Returns:
- the rotated page or null when the page does not exists
-
getPageSizeWithRotation
Gets the page size, taking rotation into account. This is aRectangle
with the value of a an arbitrary box and the /Rotate key.- Parameters:
index
- the page number. The first page is 1boxName
- of the rotated box. Allowed names are: "crop", "trim", "art", "bleed" and "media".- Returns:
- a
Rectangle
or null if the page does not exist
-
getPageSize
Gets the page size without taking rotation into account. This is the value of the /MediaBox key.- Parameters:
index
- the page number. The first page is 1- Returns:
- the page size
-
getPageSize
Gets the page from a page dictionary- Parameters:
page
- the page dictionary- Returns:
- the page
-
getCropBox
Gets the crop box without taking rotation into account. This is the value of the /CropBox key. The crop box is the part of the document to be displayed or printed. It usually is the same as the media box but may be smaller. If the page doesn't have a crop box the page size will be returned.- Parameters:
index
- the page number. The first page is 1- Returns:
- the crop box
-
getBoxSize
Gets the box size. Allowed names are: "crop", "trim", "art", "bleed" and "media".- Parameters:
index
- the page number. The first page is 1boxName
- the box name- Returns:
- the box rectangle or null
-
getInfo
Returns the content of the document information dictionary as aHashMap
ofString
.- Returns:
- content of the document information dictionary
-
readPdf
- Throws:
IOException
-
readPdfPartial
- Throws:
IOException
-
equalsArray
private boolean equalsArray(byte[] ar1, byte[] ar2, int size) -
readDecryptedDocObj
- Throws:
IOException
-
getPdfObjectRelease
- Parameters:
idx
- index- Returns:
- a PdfObject
-
getPdfObject
- Parameters:
idx
- index- Returns:
- aPdfObject
-
resetLastXrefPartial
public void resetLastXrefPartial() -
releaseLastXrefPartial
public void releaseLastXrefPartial() -
setXrefPartialObject
-
addPdfObject
- Parameters:
obj
- an object ofPdfObject
- Returns:
- an indirect reference
-
readPages
- Throws:
IOException
-
readDocObjPartial
- Throws:
IOException
-
readSingleObject
- Throws:
IOException
-
readOneObjStm
- Throws:
IOException
-
dumpPerc
public double dumpPerc()- Returns:
- the percentage of the cross reference table that has been read
-
readDocObj
- Throws:
IOException
-
checkPRStreamLength
- Throws:
IOException
-
readObjStm
- Throws:
IOException
-
ensureXrefSize
private void ensureXrefSize(int size) -
readXref
- Throws:
IOException
-
readXrefSection
- Throws:
IOException
-
readXRefStream
- Throws:
IOException
-
rebuildXref
- Throws:
IOException
-
readDictionary
- Throws:
IOException
-
readArray
- Throws:
IOException
-
readPRObject
- Throws:
IOException
-
isRebuilt
public boolean isRebuilt()Checks if the document had errors and was rebuilt.- Returns:
- true if rebuilt.
-
getPageN
Gets the dictionary that represents a page.- Parameters:
pageNum
- the page number. 1 is the first- Returns:
- the page dictionary or null when the page does not exist
-
getPageNRelease
- Parameters:
pageNum
- page number- Returns:
- a Dictionary object
-
releasePage
public void releasePage(int pageNum) - Parameters:
pageNum
- page number
-
resetReleasePage
public void resetReleasePage() -
getPageOrigRef
Gets the page reference to this page.- Parameters:
pageNum
- the page number. 1 is the first- Returns:
- the page reference
-
getPageContent
Gets the contents of the page.- Parameters:
pageNum
- the page number. 1 is the firstfile
- the location of the PDF document- Returns:
- the content
- Throws:
IOException
- on error
-
getPageContent
Gets the contents of the page.- Parameters:
pageNum
- the page number. 1 is the first- Returns:
- the content
- Throws:
IOException
- on error
-
killXref
-
setPageContent
public void setPageContent(int pageNum, byte[] content) Sets the contents of the page.- Parameters:
pageNum
- the page number. 1 is the firstcontent
- the new page content
-
setPageContent
public void setPageContent(int pageNum, byte[] content, int compressionLevel) Sets the contents of the page.- Parameters:
pageNum
- the page number. 1 is the firstcontent
- the new page contentcompressionLevel
- compression level- Since:
- 2.1.3 (the method already existed without param compressionLevel)
-
isTampered
public boolean isTampered()Checks if the document was changed.- Returns:
true
if the document was changed,false
otherwise
-
setTampered
public void setTampered(boolean tampered) Sets the tampered state. A tampered PdfReader cannot be reused in PdfStamper.- Parameters:
tampered
- the tampered state
-
getMetadata
Gets the XML metadata.- Returns:
- the XML metadata
- Throws:
IOException
- on error
-
getLastXref
public int getLastXref()Gets the byte address of the last xref table.- Returns:
- the byte address of the last xref table
-
getXrefSize
public int getXrefSize()Gets the number of xref objects.- Returns:
- the number of xref objects
-
getEofPos
public int getEofPos()Gets the byte address of the %%EOF marker.- Returns:
- the byte address of the %%EOF marker
-
getPdfVersion
public char getPdfVersion()Gets the PDF version. Only the last version char is returned. For example version 1.4 is returned as '4'.- Returns:
- the PDF version
-
isEncrypted
public boolean isEncrypted()Returnstrue
if the PDF is encrypted.- Returns:
true
if the PDF is encrypted
-
isOwnerPasswordUsed
public boolean isOwnerPasswordUsed()Returnstrue
if the owner password has been used to open the document.- Returns:
true
if the owner password has been used to open the document.
-
getPermissions
public int getPermissions()Gets the encryption permissions. It can be used directly inPdfWriter.setEncryption()
.- Returns:
- the encryption permissions
-
setPermissions
public void setPermissions(int permissionValue) -
is128Key
public boolean is128Key()Returnstrue
if the PDF has a 128 bit key encryption.- Returns:
true
if the PDF has a 128 bit key encryption
-
getTrailer
Gets the trailer dictionary- Returns:
- the trailer dictionary
-
getDecrypt
PdfEncryption getDecrypt() -
shuffleSubsetNames
public int shuffleSubsetNames()Finds all the font subsets and changes the prefixes to some random values.- Returns:
- the number of font subsets altered
-
createRandomSubsetPrefix
Creates a unique subset prefix to be added to the font name when the font is embedded and subset.- Returns:
- the subset prefix
-
createFakeFontSubsets
public int createFakeFontSubsets()Finds all the fonts not subset but embedded and marks them as subset.- Returns:
- the number of fonts altered
-
getNamedDestination
Gets all the named destinations as anHashMap
. The key is the name and the value is the destinations array.- Returns:
- gets all the named destinations
-
getNamedDestination
Gets all the named destinations as anHashMap
. The key is the name and the value is the destinations array.- Parameters:
keepNames
- true if you want the keys to be real PdfNames instead of Strings- Returns:
- gets all the named destinations
- Since:
- 2.1.6
-
getNamedDestinationFromNames
Gets the named destinations from the /Dests key in the catalog as anHashMap
. The key is the name and the value is the destinations array.- Returns:
- gets the named destinations
-
getNamedDestinationFromNames
Gets the named destinations from the /Dests key in the catalog as anHashMap
. The key is the name and the value is the destinations array.- Parameters:
keepNames
- true if you want the keys to be real PdfNames instead of Strings- Returns:
- gets the named destinations
- Since:
- 2.1.6
-
getNamedDestinationFromStrings
Gets the named destinations from the /Names key in the catalog as anHashMap
. The key is the name and the value is the destinations array.- Returns:
- gets the named destinations
-
removeFields
public void removeFields()Removes all the fields from the document. -
removeAnnotations
public void removeAnnotations()Removes all the annotations and fields from the document. -
getLinks
-
iterateBookmarks
-
makeRemoteNamedDestinationsLocal
public void makeRemoteNamedDestinationsLocal()Replaces remote named links with local destinations that have the same name.- Since:
- 5.0
-
convertNamedDestination
Converts a remote named destination GoToR with a local named destination if there's a corresponding name.- Parameters:
obj
- an annotation that needs to be screened for links to external named destinations.names
- a map with names of local named destinations- Since:
- iText 5.0
-
consolidateNamedDestinations
public void consolidateNamedDestinations()Replaces all the local named links with the actual destinations. -
replaceNamedDestination
-
close
public void close()Closes the reader- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
removeUnusedNode
-
removeUnusedObjects
public int removeUnusedObjects()Removes all the unreachable objects.- Returns:
- the number of indirect objects removed
-
getAcroFields
Gets a read-only version ofAcroFields
.- Returns:
- a read-only version of
AcroFields
-
getJavaScript
Gets the global document JavaScript.- Parameters:
file
- the document file- Returns:
- the global document JavaScript
- Throws:
IOException
- on error
-
getJavaScript
Gets the global document JavaScript.- Returns:
- the global document JavaScript
- Throws:
IOException
- on error
-
selectPages
Selects the pages to keep in the document. The pages are described as ranges. The page ordering can be changed but no page repetitions are allowed. Note that it may be very slow in partial mode.- Parameters:
ranges
- the comma separated ranges as described inSequenceList
-
selectPages
Selects the pages to keep in the document. The pages are described as aList
ofInteger
. The page ordering can be changed but no page repetitions are allowed. Note that it may be very slow in partial mode.- Parameters:
pagesToKeep
- the pages to keep in the document
-
setViewerPreferences
public void setViewerPreferences(int preferences) Sets the viewer preferences as the sum of several constants.- Specified by:
setViewerPreferences
in interfacePdfViewerPreferences
- Parameters:
preferences
- the viewer preferences- See Also:
-
addViewerPreference
Adds a viewer preference- Specified by:
addViewerPreference
in interfacePdfViewerPreferences
- Parameters:
key
- a key for a viewer preferencevalue
- a value for the viewer preference- See Also:
-
setViewerPreferences
-
getSimpleViewerPreferences
public int getSimpleViewerPreferences()Returns a bitset representing the PageMode and PageLayout viewer preferences. Doesn't return any information about the ViewerPreferences dictionary.- Returns:
- an int that contains the Viewer Preferences.
-
isAppendable
public boolean isAppendable()Getter for property appendable.- Returns:
- Value of property appendable.
-
setAppendable
public void setAppendable(boolean appendable) Setter for property appendable.- Parameters:
appendable
- New value of property appendable.
-
isNewXrefType
public boolean isNewXrefType()Getter for property newXrefType.- Returns:
- Value of property newXrefType.
-
getFileLength
public int getFileLength()Getter for property fileLength.- Returns:
- Value of property fileLength.
-
isHybridXref
public boolean isHybridXref()Getter for property hybridXref.- Returns:
- Value of property hybridXref.
-
getCryptoRef
PdfIndirectReference getCryptoRef() -
removeUsageRights
public void removeUsageRights()Removes any usage rights that this PDF may have. Only Adobe can grant usage rights and any PDF modification with iText will invalidate them. Invalidated usage rights may confuse Acrobat and it's advisable to remove them altogether. -
getCertificationLevel
public int getCertificationLevel()Gets the certification level for this document. The return values can bePdfSignatureAppearance.NOT_CERTIFIED
,PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED
,PdfSignatureAppearance.CERTIFIED_FORM_FILLING
andPdfSignatureAppearance.CERTIFIED_FORM_FILLING_AND_ANNOTATIONS
.No signature validation is made, use the methods available for that in
AcroFields
.- Returns:
- gets the certification level for this document
-
isModificationlowedWithoutOwnerPassword
public boolean isModificationlowedWithoutOwnerPassword()Checks if an encrypted document may be modified if the owner password was not supplied. If the document is not encrypted, the setting has no effect.- Returns:
true
if the document may be modified even if the owner password was not suppliedfalse
otherwise
-
setModificationAllowedWithoutOwnerPassword
public void setModificationAllowedWithoutOwnerPassword(boolean modificationAllowedWithoutOwnerPassword) Sets whether the document (if encrypted) may be modified even if the owner password was not supplied. If this is set tofalse
an exception will be thrown when attempting to access the Document if the owner password was not supplied (for encrypted documents.)- Parameters:
modificationAllowedWithoutOwnerPassword
- the modificationAllowedWithoutOwnerPassword state.
-
isOpenedWithFullPermissions
public final boolean isOpenedWithFullPermissions()Checks if the document was opened with the owner password so that the end application can decide what level of access restrictions to apply. If the document is not encrypted it will returntrue
.- Returns:
true
if the document was opened with the owner password or if it's not encrypted or the modificationAllowedWithoutOwnerPassword flag is set,false
otherwise.
-
getCryptoMode
public int getCryptoMode() -
isMetadataEncrypted
public boolean isMetadataEncrypted() -
computeUserPassword
public byte[] computeUserPassword() -
getDocumentId
public byte[] getDocumentId()Returns a permanent document identifier extracted from trailer /ID entry, when present- Returns:
- byte array representing the document permanent identifier
-