Package com.lowagie.rups.model
Class IndirectObjectFactory
java.lang.Object
com.lowagie.rups.model.IndirectObjectFactory
A factory that can produce all the indirect objects in a PDF file.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int
The current xref number.protected IntHashtable
Mapping between the index in the objects list and the reference number in the xref table.protected int
The highest xref number.A list of all the indirect objects in a PDF file.protected PdfReader
The reader object.protected IntHashtable
Mapping between the reference number in the xref table and the index in the objects list . -
Constructor Summary
ConstructorsConstructorDescriptionIndirectObjectFactory
(PdfReader reader) Creates a list that will contain all the indirect objects in a PDF document. -
Method Summary
Modifier and TypeMethodDescriptionint
Gets the last object that has been registered.int
getIndexByRef
(int ref) Gets the index of an object based on its number in the xref table.getObjectByIndex
(int i) Gets an object based on its index in the indirect object list.getObjectByReference
(int ref) Gets an object based on its reference number in the xref table.int
getRefByIndex
(int i) Gets the reference number in the xref table based on the index in the indirect object list.int
Gets the highest possible object number in the XRef table.loadObjectByReference
(int ref) Loads an object based on its reference number in the xref table.int
size()
Gets the total number of indirect objects in the PDF file.private void
If we store all the objects, we might run out of memory; that's why we'll only store the objects that are necessary to construct other objects (for instance the page table).boolean
Stores the next object of the XRef table.
-
Field Details
-
reader
The reader object. -
current
protected int currentThe current xref number. -
n
protected int nThe highest xref number. -
objects
A list of all the indirect objects in a PDF file. -
idxToRef
Mapping between the index in the objects list and the reference number in the xref table. -
refToIdx
Mapping between the reference number in the xref table and the index in the objects list .
-
-
Constructor Details
-
IndirectObjectFactory
Creates a list that will contain all the indirect objects in a PDF document.- Parameters:
reader
- the reader that will read the PDF document
-
-
Method Details
-
getCurrent
public int getCurrent()Gets the last object that has been registered. This method only makes sense while loading the factory. with loadNextObject().- Returns:
- the number of the last object that was stored
-
getXRefMaximum
public int getXRefMaximum()Gets the highest possible object number in the XRef table.- Returns:
- an object number
-
storeNextObject
public boolean storeNextObject()Stores the next object of the XRef table. As soon as this method returns false, it makes no longer sense calling it as all the objects have been stored.- Returns:
- false if there are no objects left to check.
-
store
If we store all the objects, we might run out of memory; that's why we'll only store the objects that are necessary to construct other objects (for instance the page table).- Parameters:
object
- an object we might want to store
-
size
public int size()Gets the total number of indirect objects in the PDF file. This isn't necessarily the same number as returned by getXRefMaximum(). The PDF specification allows gaps between object numbers.- Returns:
- the total number of indirect objects in the PDF.
-
getIndexByRef
public int getIndexByRef(int ref) Gets the index of an object based on its number in the xref table.- Parameters:
ref
- a number in the xref table- Returns:
- the index in the list of indirect objects
-
getRefByIndex
public int getRefByIndex(int i) Gets the reference number in the xref table based on the index in the indirect object list.- Parameters:
i
- the index of an object in the indirect object list- Returns:
- the corresponding reference number in the xref table
-
getObjectByIndex
Gets an object based on its index in the indirect object list.- Parameters:
i
- an index in the indirect object list- Returns:
- a PDF object
-
getObjectByReference
Gets an object based on its reference number in the xref table.- Parameters:
ref
- a number in the xref table- Returns:
- a PDF object
-
loadObjectByReference
Loads an object based on its reference number in the xref table.- Parameters:
ref
- a reference number in the xref table.- Returns:
- a PDF object
-