com.itextpdf.text.pdf
Class PdfReader

java.lang.Object
  extended by com.itextpdf.text.pdf.PdfReader
All Implemented Interfaces:
PdfViewerPreferences
Direct Known Subclasses:
FdfReader

public class PdfReader
extends Object
implements PdfViewerPreferences

Reads a PDF document.

Author:
Paulo Soares, Kazuya Ujihara

Field Summary
protected  PRAcroForm acroForm
           
protected  boolean acroFormParsed
           
protected  PdfDictionary catalog
           
protected  Certificate certificate
           
protected  Key certificateKey
           
protected  String certificateKeyProvider
           
protected  boolean consolidateNamedDestinations
           
protected static Counter COUNTER
           
static boolean debugmode
           
protected  PdfEncryption decrypt
           
protected  boolean encrypted
           
protected  long eofPos
           
protected  ExternalDecryptionProcess externalDecryptionProcess
           
protected  int freeXref
           
protected  long lastXref
           
protected  boolean newXrefType
           
protected  HashMap<Integer,IntHashtable> objStmMark
           
protected  LongHashtable objStmToOffset
           
protected  com.itextpdf.text.pdf.PdfReader.PageRefs pageRefs
           
protected  byte[] password
           
protected  char pdfVersion
           
protected  long pValue
           
protected  boolean rebuilt
           
protected  boolean remoteToLocalNamedDestinations
           
protected  int rValue
           
protected  boolean sharedStreams
           
protected  ArrayList<PdfString> strings
           
protected  boolean tampered
           
protected  PRTokeniser tokens
           
protected  PdfDictionary trailer
           
static boolean unethicalreading
          The iText developers are not responsible if you decide to change the value of this static parameter.
protected  long[] xref
           
protected  ArrayList<PdfObject> xrefObj
           
 
Constructor Summary
PdfReader(byte[] pdfIn)
          Reads and parses a PDF document.
PdfReader(byte[] pdfIn, 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.
PdfReader(PdfReader reader)
          Creates an independent duplicate.
PdfReader(RandomAccessFileOrArray raf, byte[] ownerPassword)
          Reads and parses a pdf document.
PdfReader(String filename)
          Reads and parses a PDF document.
PdfReader(String filename, byte[] ownerPassword)
          Reads and parses a PDF document.
PdfReader(String filename, byte[] ownerPassword, boolean partial)
          Reads and parses a PDF document.
PdfReader(String filename, Certificate certificate, ExternalDecryptionProcess externalDecryptionProcess)
          Reads and parses a PDF document.
PdfReader(String filename, Certificate certificate, Key certificateKey, String certificateKeyProvider)
          Reads and parses a PDF document.
PdfReader(URL url)
          Reads and parses a PDF document.
PdfReader(URL url, byte[] ownerPassword)
          Reads and parses a PDF document.
 
Method Summary
 PRIndirectReference addPdfObject(PdfObject obj)
           
 void addViewerPreference(PdfName key, PdfObject value)
          Adds a viewer preference
static 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.
 void close()
          Closes the reader, and any underlying stream or data source used to create the reader
 byte[] computeUserPassword()
           
 void consolidateNamedDestinations()
          Replaces all the local named links with the actual destinations.
 int createFakeFontSubsets()
          Finds all the fonts not subset but embedded and marks them as subset.
static byte[] decodeBytes(byte[] b, PdfDictionary streamDictionary)
          Decode a byte[] applying the filters specified in the provided dictionary using default filter handlers.
static byte[] decodeBytes(byte[] b, PdfDictionary streamDictionary, Map<PdfName,FilterHandlers.FilterHandler> filterHandlers)
          Decode a byte[] applying the filters specified in the provided dictionary using the provided filter handlers.
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 eliminateSharedStreams()
          Eliminates shared streams if they exist.
static byte[] FlateDecode(byte[] in)
          Decodes a stream that has the FlateDecode filter.
static byte[] FlateDecode(byte[] in, boolean strict)
          A helper to FlateDecode.
 AcroFields getAcroFields()
          Gets a read-only version of AcroFields.
 PRAcroForm getAcroForm()
          Returns the document's acroform, if it has one.
 Rectangle getBoxSize(int index, String boxName)
          Gets the box size.
 PdfDictionary getCatalog()
          Returns the document's catalog.
 int getCertificationLevel()
          Gets the certification level for this document.
protected  Counter getCounter()
           
 Rectangle getCropBox(int index)
          Gets the crop box without taking rotation into account.
 int getCryptoMode()
           
 long getEofPos()
          Gets the byte address of the %%EOF marker.
 long getFileLength()
          Getter for property fileLength.
 HashMap<String,String> getInfo()
          Returns the content of the document information dictionary as a HashMap of String.
 String getJavaScript()
          Gets the global document JavaScript.
 String getJavaScript(RandomAccessFileOrArray file)
          Gets the global document JavaScript.
 long getLastXref()
          Gets the byte address of the last xref table.
 ArrayList<PdfAnnotation.PdfImportedLink> getLinks(int page)
          Retrieves links for a certain page.
 byte[] getMetadata()
          Gets the XML metadata.
 HashMap<Object,PdfObject> getNamedDestination()
          Gets all the named destinations as an HashMap.
 HashMap<Object,PdfObject> getNamedDestination(boolean keepNames)
          Gets all the named destinations as an HashMap.
 HashMap<String,PdfObject> getNamedDestinationFromNames()
          Gets the named destinations from the /Dests key in the catalog as an HashMap.
 HashMap<Object,PdfObject> getNamedDestinationFromNames(boolean keepNames)
          Gets the named destinations from the /Dests key in the catalog as an HashMap.
 HashMap<String,PdfObject> getNamedDestinationFromStrings()
          Gets the named destinations from the /Names key in the catalog as an HashMap.
static Rectangle getNormalizedRectangle(PdfArray box)
          Normalizes a Rectangle so that llx and lly are smaller than urx and ury.
 int getNumberOfPages()
          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.
static byte[] getPageContent(PdfDictionary page)
          Gets the content from the page dictionary.
 PdfDictionary getPageN(int pageNum)
          Gets the dictionary that represents a page.
 PdfDictionary getPageNRelease(int pageNum)
           
 PRIndirectReference getPageOrigRef(int pageNum)
          Gets the page reference to this page.
 PdfDictionary getPageResources(int pageNum)
          Retrieve the given page's resource dictionary
 PdfDictionary getPageResources(PdfDictionary pageDict)
          Retrieve the given page's resource dictionary
 int getPageRotation(int index)
          Gets the page rotation.
 Rectangle getPageSize(int index)
          Gets the page size without taking rotation into account.
 Rectangle getPageSize(PdfDictionary page)
          Gets the page from a page dictionary
 Rectangle getPageSizeWithRotation(int index)
          Gets the page size, taking rotation into account.
 Rectangle getPageSizeWithRotation(PdfDictionary page)
          Gets the rotated page from a page dictionary.
 PdfObject getPdfObject(int idx)
           
static PdfObject getPdfObject(PdfObject obj)
          Reads a PdfObject resolving an indirect reference if needed.
static PdfObject getPdfObject(PdfObject obj, PdfObject parent)
           
 PdfObject getPdfObjectRelease(int idx)
           
static PdfObject getPdfObjectRelease(PdfObject obj)
           
static PdfObject getPdfObjectRelease(PdfObject obj, PdfObject parent)
          Reads a PdfObject resolving an indirect reference if needed.
protected  com.itextpdf.text.pdf.PdfReaderInstance getPdfReaderInstance(PdfWriter writer)
           
 char getPdfVersion()
          Gets the PDF version.
 long getPermissions()
          Gets the encryption permissions.
 RandomAccessFileOrArray getSafeFile()
          Gets a new file instance of the original PDF document.
 int getSimpleViewerPreferences()
          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.
 PdfDictionary getTrailer()
          Gets the trailer dictionary
 int getXrefSize()
          Gets the number of xref objects.
 boolean hasUsageRights()
          Checks if this PDF has usage rights enabled.
 boolean is128Key()
          Returns true if the PDF has a 128 bit key encryption.
 boolean isAppendable()
          Getter for property appendable.
 boolean isEncrypted()
          Returns true if the PDF is encrypted.
 boolean isHybridXref()
          Getter for property hybridXref.
 boolean isMetadataEncrypted()
           
 boolean isNewXrefType()
          Getter for property newXrefType.
 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.
 boolean isRebuilt()
          Checks if the document had errors and was rebuilt.
 boolean isTagged()
          Checks if the PDF is a tagged PDF.
 boolean isTampered()
          Checks if the document was changed.
static PdfObject killIndirect(PdfObject obj)
          Eliminates the reference to the object freeing the memory used by it and clearing the xref entry.
protected  void killXref(PdfObject obj)
           
static byte[] LZWDecode(byte[] in)
          Decodes a stream that has the LZWDecode filter.
 void makeRemoteNamedDestinationsLocal()
          Replaces remote named links with local destinations that have the same name.
protected  PdfArray readArray()
           
protected  PdfDictionary readDictionary()
           
protected  void readDocObj()
           
protected  void readDocObjPartial()
           
protected  void readObjStm(PRStream stream, IntHashtable map)
           
protected  PdfObject readOneObjStm(PRStream stream, int idx)
           
protected  void readPages()
           
protected  void readPdf()
          Parses the entire PDF
protected  void readPdfPartial()
           
protected  PdfObject readPRObject()
           
protected  PdfObject readSingleObject(int k)
           
protected  void readXref()
           
protected  PdfDictionary readXrefSection()
           
protected  boolean readXRefStream(long ptr)
           
protected  void rebuildXref()
           
 void releaseLastXrefPartial()
           
static void releaseLastXrefPartial(PdfObject obj)
           
 void releasePage(int pageNum)
           
 void removeAnnotations()
          Removes all the annotations and fields from the document.
 void removeFields()
          Removes all the fields from the document.
protected  void removeUnusedNode(PdfObject obj, boolean[] hits)
           
 int removeUnusedObjects()
          Removes all the unreachable objects.
 void removeUsageRights()
          Removes any usage rights that this PDF may have.
 void resetLastXrefPartial()
           
 void resetReleasePage()
           
 void selectPages(List<Integer> pagesToKeep)
          Selects the pages to keep in the document.
protected  void selectPages(List<Integer> pagesToKeep, boolean removeUnused)
          Selects the pages to keep in the document.
 void selectPages(String ranges)
          Selects the pages to keep in the document.
 void setAppendable(boolean appendable)
          Setter for property appendable.
 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 setTampered(boolean tampered)
          Sets the tampered state.
 void setViewerPreferences(int preferences)
          Sets the viewer preferences as the sum of several constants.
 void setViewerPreferences(PdfViewerPreferencesImp vp)
           
 int shuffleSubsetNames()
          Finds all the font subsets and changes the prefixes to some random values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

unethicalreading

public static boolean unethicalreading
The iText developers are not responsible if you decide to change the value of this static parameter.

Since:
5.0.2

debugmode

public static boolean debugmode

tokens

protected PRTokeniser tokens

xref

protected long[] xref

objStmMark

protected HashMap<Integer,IntHashtable> objStmMark

objStmToOffset

protected LongHashtable objStmToOffset

newXrefType

protected boolean newXrefType

xrefObj

protected ArrayList<PdfObject> xrefObj

trailer

protected PdfDictionary trailer

catalog

protected PdfDictionary catalog

pageRefs

protected com.itextpdf.text.pdf.PdfReader.PageRefs pageRefs

acroForm

protected PRAcroForm acroForm

acroFormParsed

protected boolean acroFormParsed

encrypted

protected boolean encrypted

rebuilt

protected boolean rebuilt

freeXref

protected int freeXref

tampered

protected boolean tampered

lastXref

protected long lastXref

eofPos

protected long eofPos

pdfVersion

protected char pdfVersion

decrypt

protected PdfEncryption decrypt

password

protected byte[] password

certificateKey

protected Key certificateKey

certificate

protected Certificate certificate

certificateKeyProvider

protected String certificateKeyProvider

externalDecryptionProcess

protected ExternalDecryptionProcess externalDecryptionProcess

strings

protected ArrayList<PdfString> strings

sharedStreams

protected boolean sharedStreams

consolidateNamedDestinations

protected boolean consolidateNamedDestinations

remoteToLocalNamedDestinations

protected boolean remoteToLocalNamedDestinations

rValue

protected int rValue

pValue

protected long pValue

COUNTER

protected static Counter COUNTER
Constructor Detail

PdfReader

public PdfReader(String filename)
          throws IOException
Reads and parses a PDF document.

Parameters:
filename - the file name of the document
Throws:
IOException - on error

PdfReader

public PdfReader(String filename,
                 byte[] ownerPassword)
          throws IOException
Reads and parses a PDF document.

Parameters:
filename - the file name of the document
ownerPassword - the password to read the document
Throws:
IOException - on error

PdfReader

public PdfReader(String filename,
                 byte[] ownerPassword,
                 boolean partial)
          throws IOException
Reads and parses a PDF document.

Parameters:
filename - the file name of the document
ownerPassword - the password to read the document
partial - indicates if the reader needs to read the document only partially
Throws:
IOException - on error

PdfReader

public PdfReader(byte[] pdfIn)
          throws IOException
Reads and parses a PDF document.

Parameters:
pdfIn - the byte array with the document
Throws:
IOException - on error

PdfReader

public PdfReader(byte[] pdfIn,
                 byte[] ownerPassword)
          throws IOException
Reads and parses a PDF document.

Parameters:
pdfIn - the byte array with the document
ownerPassword - 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 document
certificate - the certificate to read the document
certificateKey - the private key of the certificate
certificateKeyProvider - the security provider for certificateKey
Throws:
IOException - on error

PdfReader

public PdfReader(String filename,
                 Certificate certificate,
                 ExternalDecryptionProcess externalDecryptionProcess)
          throws IOException
Reads and parses a PDF document.

Parameters:
filename - the file name of the document
certificate -
externalDecryptionProcess -
Throws:
IOException - on error

PdfReader

public PdfReader(URL url)
          throws IOException
Reads and parses a PDF document.

Parameters:
url - the URL of the document
Throws:
IOException - on error

PdfReader

public PdfReader(URL url,
                 byte[] ownerPassword)
          throws IOException
Reads and parses a PDF document.

Parameters:
url - the URL of the document
ownerPassword - the password to read the document
Throws:
IOException - on error

PdfReader

public PdfReader(InputStream is,
                 byte[] ownerPassword)
          throws IOException
Reads and parses a PDF document.

Parameters:
is - the InputStream containing the document. The stream is read to the end but is not closed
ownerPassword - the password to read the document
Throws:
IOException - on error

PdfReader

public PdfReader(InputStream is)
          throws IOException
Reads and parses a PDF document.

Parameters:
is - the InputStream containing the document. The stream is read to the end but is not closed
Throws:
IOException - on error

PdfReader

public PdfReader(RandomAccessFileOrArray raf,
                 byte[] ownerPassword)
          throws IOException
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.

Parameters:
raf - the document location
ownerPassword - the password or null for no password
Throws:
IOException - on error

PdfReader

public PdfReader(PdfReader reader)
Creates an independent duplicate.

Parameters:
reader - the PdfReader to duplicate
Method Detail

getCounter

protected Counter getCounter()

getSafeFile

public RandomAccessFileOrArray getSafeFile()
Gets a new file instance of the original PDF document.

Returns:
a new file instance of the original PDF document

getPdfReaderInstance

protected com.itextpdf.text.pdf.PdfReaderInstance getPdfReaderInstance(PdfWriter writer)

getNumberOfPages

public int getNumberOfPages()
Gets the number of pages in the document.

Returns:
the number of pages in the document

getCatalog

public PdfDictionary 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

public PRAcroForm 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

public Rectangle getPageSizeWithRotation(int index)
Gets the page size, taking rotation into account. This is a Rectangle with the value of the /MediaBox and the /Rotate key.

Parameters:
index - the page number. The first page is 1
Returns:
a Rectangle

getPageSizeWithRotation

public Rectangle getPageSizeWithRotation(PdfDictionary page)
Gets the rotated page from a page dictionary.

Parameters:
page - the page dictionary
Returns:
the rotated page

getPageSize

public Rectangle getPageSize(int index)
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

public Rectangle getPageSize(PdfDictionary page)
Gets the page from a page dictionary

Parameters:
page - the page dictionary
Returns:
the page

getCropBox

public Rectangle getCropBox(int index)
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

public Rectangle getBoxSize(int index,
                            String boxName)
Gets the box size. Allowed names are: "crop", "trim", "art", "bleed" and "media".

Parameters:
index - the page number. The first page is 1
boxName - the box name
Returns:
the box rectangle or null

getInfo

public HashMap<String,String> getInfo()
Returns the content of the document information dictionary as a HashMap of String.

Returns:
content of the document information dictionary

getNormalizedRectangle

public static Rectangle getNormalizedRectangle(PdfArray box)
Normalizes a Rectangle so that llx and lly are smaller than urx and ury.

Parameters:
box - the original rectangle
Returns:
a normalized Rectangle

isTagged

public boolean isTagged()
Checks if the PDF is a tagged PDF.


readPdf

protected void readPdf()
                throws IOException
Parses the entire PDF

Throws:
IOException

readPdfPartial

protected void readPdfPartial()
                       throws IOException
Throws:
IOException

getPdfObjectRelease

public static PdfObject getPdfObjectRelease(PdfObject obj)
Parameters:
obj -
Returns:
a PdfObject

getPdfObject

public static PdfObject getPdfObject(PdfObject obj)
Reads a PdfObject resolving an indirect reference if needed.

Parameters:
obj - the PdfObject to read
Returns:
the resolved PdfObject

getPdfObjectRelease

public static PdfObject getPdfObjectRelease(PdfObject obj,
                                            PdfObject parent)
Reads a PdfObject resolving an indirect reference if needed. If the reader was opened in partial mode the object will be released to save memory.

Parameters:
obj - the PdfObject to read
parent -
Returns:
a PdfObject

getPdfObject

public static PdfObject getPdfObject(PdfObject obj,
                                     PdfObject parent)
Parameters:
obj -
parent -
Returns:
a PdfObject

getPdfObjectRelease

public PdfObject getPdfObjectRelease(int idx)
Parameters:
idx -
Returns:
a PdfObject

getPdfObject

public PdfObject getPdfObject(int idx)
Parameters:
idx -
Returns:
aPdfObject

resetLastXrefPartial

public void resetLastXrefPartial()

releaseLastXrefPartial

public void releaseLastXrefPartial()

releaseLastXrefPartial

public static void releaseLastXrefPartial(PdfObject obj)
Parameters:
obj -

addPdfObject

public PRIndirectReference addPdfObject(PdfObject obj)
Parameters:
obj -
Returns:
an indirect reference

readPages

protected void readPages()
                  throws IOException
Throws:
IOException

readDocObjPartial

protected void readDocObjPartial()
                          throws IOException
Throws:
IOException

readSingleObject

protected PdfObject readSingleObject(int k)
                              throws IOException
Throws:
IOException

readOneObjStm

protected PdfObject readOneObjStm(PRStream stream,
                                  int idx)
                           throws IOException
Throws:
IOException

dumpPerc

public double dumpPerc()
Returns:
the percentage of the cross reference table that has been read

readDocObj

protected void readDocObj()
                   throws IOException
Throws:
IOException

readObjStm

protected void readObjStm(PRStream stream,
                          IntHashtable map)
                   throws IOException
Throws:
IOException

killIndirect

public static PdfObject killIndirect(PdfObject obj)
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

readXref

protected void readXref()
                 throws IOException
Throws:
IOException

readXrefSection

protected PdfDictionary readXrefSection()
                                 throws IOException
Throws:
IOException

readXRefStream

protected boolean readXRefStream(long ptr)
                          throws IOException
Throws:
IOException

rebuildXref

protected void rebuildXref()
                    throws IOException
Throws:
IOException

readDictionary

protected PdfDictionary readDictionary()
                                throws IOException
Throws:
IOException

readArray

protected PdfArray readArray()
                      throws IOException
Throws:
IOException

readPRObject

protected PdfObject readPRObject()
                          throws IOException
Throws:
IOException

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

public static byte[] decodePredictor(byte[] in,
                                     PdfObject dicPar)
Parameters:
in -
dicPar -
Returns:
a byte array

FlateDecode

public static byte[] FlateDecode(byte[] in,
                                 boolean strict)
A helper to FlateDecode.

Parameters:
in - the input data
strict - 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

isRebuilt

public boolean isRebuilt()
Checks if the document had errors and was rebuilt.

Returns:
true if rebuilt.

getPageN

public PdfDictionary getPageN(int pageNum)
Gets the dictionary that represents a page.

Parameters:
pageNum - the page number. 1 is the first
Returns:
the page dictionary

getPageNRelease

public PdfDictionary getPageNRelease(int pageNum)
Parameters:
pageNum -
Returns:
a Dictionary object

releasePage

public void releasePage(int pageNum)
Parameters:
pageNum -

resetReleasePage

public void resetReleasePage()

getPageOrigRef

public PRIndirectReference getPageOrigRef(int pageNum)
Gets the page reference to this page.

Parameters:
pageNum - the page number. 1 is the first
Returns:
the page reference

getPageContent

public byte[] getPageContent(int pageNum,
                             RandomAccessFileOrArray file)
                      throws IOException
Gets the contents of the page.

Parameters:
pageNum - the page number. 1 is the first
file - the location of the PDF document
Returns:
the content
Throws:
IOException - on error

getPageContent

public static byte[] getPageContent(PdfDictionary page)
                             throws IOException
Gets the content from the page dictionary.

Parameters:
page - the page dictionary
Returns:
the content
Throws:
IOException - on error
Since:
5.0.6

getPageResources

public PdfDictionary getPageResources(int pageNum)
Retrieve the given page's resource dictionary

Parameters:
pageNum - 1-based page number from which to retrieve the resource dictionary
Returns:
The page's resources, or 'null' if the page has none.
Since:
5.1

getPageResources

public PdfDictionary getPageResources(PdfDictionary pageDict)
Retrieve the given page's resource dictionary

Parameters:
pageDict - the given page
Returns:
The page's resources, or 'null' if the page has none.
Since:
5.1

getPageContent

public byte[] getPageContent(int pageNum)
                      throws IOException
Gets the contents of the page.

Parameters:
pageNum - the page number. 1 is the first
Returns:
the content
Throws:
IOException - on error

killXref

protected void killXref(PdfObject obj)

setPageContent

public void setPageContent(int pageNum,
                           byte[] content)
Sets the contents of the page.

Parameters:
content - the new page content
pageNum - the page number. 1 is the first

setPageContent

public void setPageContent(int pageNum,
                           byte[] content,
                           int compressionLevel)
Sets the contents of the page.

Parameters:
content - the new page content
pageNum - the page number. 1 is the first
compressionLevel - the compressionLevel
Since:
2.1.3 (the method already existed without param compressionLevel)

decodeBytes

public static byte[] decodeBytes(byte[] b,
                                 PdfDictionary streamDictionary)
                          throws IOException
Decode a byte[] applying the filters specified in the provided dictionary using default filter handlers.

Parameters:
b - the bytes to decode
streamDictionary - the dictionary that contains filter information
Returns:
the decoded bytes
Throws:
IOException - if there are any problems decoding the bytes
Since:
5.0.4

decodeBytes

public static byte[] decodeBytes(byte[] b,
                                 PdfDictionary streamDictionary,
                                 Map<PdfName,FilterHandlers.FilterHandler> filterHandlers)
                          throws IOException
Decode a byte[] applying the filters specified in the provided dictionary using the provided filter handlers.

Parameters:
b - the bytes to decode
streamDictionary - the dictionary that contains filter information
filterHandlers - the map used to look up a handler for each type of filter
Returns:
the decoded bytes
Throws:
IOException - if there are any problems decoding the bytes
Since:
5.0.4

getStreamBytes

public static byte[] getStreamBytes(PRStream stream,
                                    RandomAccessFileOrArray file)
                             throws IOException
Get the content from a stream applying the required filters.

Parameters:
stream - the stream
file - the location where the stream is
Returns:
the stream content
Throws:
IOException - on error

getStreamBytes

public static byte[] getStreamBytes(PRStream stream)
                             throws IOException
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 stream
file - the location where the stream is
Returns:
the stream content
Throws:
IOException - on error

getStreamBytesRaw

public static byte[] getStreamBytesRaw(PRStream stream)
                                throws IOException
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

eliminateSharedStreams

public void eliminateSharedStreams()
Eliminates shared streams if they exist.


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

public byte[] getMetadata()
                   throws IOException
Gets the XML metadata.

Returns:
the XML metadata
Throws:
IOException - on error

getLastXref

public long 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 long 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()
Returns true if the PDF is encrypted.

Returns:
true if the PDF is encrypted

getPermissions

public long getPermissions()
Gets the encryption permissions. It can be used directly in PdfWriter.setEncryption().

Returns:
the encryption permissions

is128Key

public boolean is128Key()
Returns true if the PDF has a 128 bit key encryption.

Returns:
true if the PDF has a 128 bit key encryption

getTrailer

public PdfDictionary getTrailer()
Gets the trailer dictionary

Returns:
the trailer dictionary

shuffleSubsetNames

public int shuffleSubsetNames()
Finds all the font subsets and changes the prefixes to some random values.

Returns:
the number of font subsets altered

createFakeFontSubsets

public int createFakeFontSubsets()
Finds all the fonts not subset but embedded and marks them as subset.

Returns:
the number of fonts altered

getNamedDestination

public HashMap<Object,PdfObject> getNamedDestination()
Gets all the named destinations as an HashMap. The key is the name and the value is the destinations array.

Returns:
gets all the named destinations

getNamedDestination

public HashMap<Object,PdfObject> getNamedDestination(boolean keepNames)
Gets all the named destinations as an HashMap. 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

public HashMap<String,PdfObject> getNamedDestinationFromNames()
Gets the named destinations from the /Dests key in the catalog as an HashMap. The key is the name and the value is the destinations array.

Returns:
gets the named destinations
Since:
5.0.1 (generic type in signature)

getNamedDestinationFromNames

public HashMap<Object,PdfObject> getNamedDestinationFromNames(boolean keepNames)
Gets the named destinations from the /Dests key in the catalog as an HashMap. 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

public HashMap<String,PdfObject> getNamedDestinationFromStrings()
Gets the named destinations from the /Names key in the catalog as an HashMap. 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

public ArrayList<PdfAnnotation.PdfImportedLink> getLinks(int page)
Retrieves links for a certain page.

Parameters:
page - the page to inspect
Returns:
a list of links

makeRemoteNamedDestinationsLocal

public void makeRemoteNamedDestinationsLocal()
Replaces remote named links with local destinations that have the same name.

Since:
5.0

consolidateNamedDestinations

public void consolidateNamedDestinations()
Replaces all the local named links with the actual destinations.


duplicatePdfDictionary

protected static PdfDictionary duplicatePdfDictionary(PdfDictionary original,
                                                      PdfDictionary copy,
                                                      PdfReader newReader)

duplicatePdfObject

protected static PdfObject duplicatePdfObject(PdfObject original,
                                              PdfReader newReader)

close

public void close()
Closes the reader, and any underlying stream or data source used to create the reader


removeUnusedNode

protected void removeUnusedNode(PdfObject obj,
                                boolean[] hits)

removeUnusedObjects

public int removeUnusedObjects()
Removes all the unreachable objects.

Returns:
the number of indirect objects removed

getAcroFields

public AcroFields getAcroFields()
Gets a read-only version of AcroFields.

Returns:
a read-only version of AcroFields

getJavaScript

public String getJavaScript(RandomAccessFileOrArray file)
                     throws IOException
Gets the global document JavaScript.

Parameters:
file - the document file
Returns:
the global document JavaScript
Throws:
IOException - on error

getJavaScript

public String getJavaScript()
                     throws IOException
Gets the global document JavaScript.

Returns:
the global document JavaScript
Throws:
IOException - on error

selectPages

public void selectPages(String ranges)
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 in SequenceList

selectPages

public void selectPages(List<Integer> pagesToKeep)
Selects the pages to keep in the document. The pages are described as a List of Integer. 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

selectPages

protected void selectPages(List<Integer> pagesToKeep,
                           boolean removeUnused)
Selects the pages to keep in the document. The pages are described as a List of Integer. 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
removeUnused - indicate if to remove unsed objects. @see removeUnusedObjects

setViewerPreferences

public void setViewerPreferences(int preferences)
Sets the viewer preferences as the sum of several constants.

Specified by:
setViewerPreferences in interface PdfViewerPreferences
Parameters:
preferences - the viewer preferences
See Also:
PdfViewerPreferences.setViewerPreferences(int)

addViewerPreference

public void addViewerPreference(PdfName key,
                                PdfObject value)
Adds a viewer preference

Specified by:
addViewerPreference in interface PdfViewerPreferences
Parameters:
key - a key for a viewer preference
value - a value for the viewer preference
See Also:
PdfViewerPreferences.addViewerPreference(com.itextpdf.text.pdf.PdfName, com.itextpdf.text.pdf.PdfObject)

setViewerPreferences

public void setViewerPreferences(PdfViewerPreferencesImp vp)

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 long getFileLength()
Getter for property fileLength.

Returns:
Value of property fileLength.

isHybridXref

public boolean isHybridXref()
Getter for property hybridXref.

Returns:
Value of property hybridXref.

hasUsageRights

public boolean hasUsageRights()
Checks if this PDF has usage rights enabled.

Returns:
true if usage rights are present; false otherwise

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 be PdfSignatureAppearance.NOT_CERTIFIED, PdfSignatureAppearance.CERTIFIED_NO_CHANGES_ALLOWED, PdfSignatureAppearance.CERTIFIED_FORM_FILLING and PdfSignatureAppearance.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

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 return true.

Returns:
true if the document was opened with the owner password or if it's not encrypted, false if the document was opened with the user password

getCryptoMode

public int getCryptoMode()
Returns:
the crypto mode, or -1 of none

isMetadataEncrypted

public boolean isMetadataEncrypted()
Returns:
true if the metadata is encrypted.

computeUserPassword

public byte[] computeUserPassword()
Returns:
byte array of computed user password, or null if not encrypted or no ownerPassword is used.


Copyright © 2014. All Rights Reserved.