@@ -42,9 +42,6 @@ This file is part of the iText (R) project.
42
42
*/
43
43
package com .itextpdf .rups .view .itext ;
44
44
45
- import com .itextpdf .io .source .PdfTokenizer ;
46
- import com .itextpdf .io .source .RandomAccessFileOrArray ;
47
- import com .itextpdf .io .source .RandomAccessSourceFactory ;
48
45
import com .itextpdf .kernel .pdf .*;
49
46
import com .itextpdf .rups .controller .PdfReaderController ;
50
47
import com .itextpdf .rups .event .RupsEvent ;
@@ -58,8 +55,6 @@ This file is part of the iText (R) project.
58
55
import javax .swing .JTable ;
59
56
import javax .swing .event .ListSelectionEvent ;
60
57
import javax .swing .table .TableColumn ;
61
- import java .io .IOException ;
62
- import java .util .Arrays ;
63
58
import java .util .Observable ;
64
59
import java .util .Observer ;
65
60
@@ -182,28 +177,34 @@ private String getByteOffSetByRow(int rowIndex) {
182
177
final PdfObject object = objects .getObjectByIndex (rowIndex );
183
178
PdfIndirectReference indirectReference = object .getIndirectReference ();
184
179
if ( indirectReference != null ) {
185
- long offset = indirectReference .getOffset ();
186
-
187
- if ( offset == -1 ) {
188
- int objStreamNumber = indirectReference .getObjStreamNumber ();
189
- PdfObject refersTo = indirectReference .getRefersTo ();
190
- int compressedObjectNumber = refersTo .getIndirectReference ().getObjNumber ();
191
- PdfObject objectByIndex = objects .loadObjectByReference (objStreamNumber );
192
-
193
- PdfStream objStm = (PdfStream ) objectByIndex ;
194
- int internalCompressedObjectOffset = new ObjectStreamParser ().parseObjectStream (objStm , compressedObjectNumber );
180
+ if (isObjectStream (indirectReference )) {
181
+ int compressedObjectNumber = indirectReference .getObjNumber ();
182
+ PdfStream objStm = getObjectStream (indirectReference );
183
+ int internalCompressedObjectOffset
184
+ = ObjectStreamParser .parseObjectStream (objStm , compressedObjectNumber );
195
185
196
186
return String .format (
197
187
Language .XREF_BYTE_OFFSET_OBJECT_STREAM .getString (),
198
- objStreamNumber , internalCompressedObjectOffset
188
+ objStm . getIndirectReference (). getObjNumber () , internalCompressedObjectOffset
199
189
);
200
190
}
201
191
202
- return String .valueOf (offset );
192
+ return String .valueOf (indirectReference . getOffset () );
203
193
}
204
194
return Language .XREF_NOT_LOADED_YET .getString ();
205
195
}
206
196
197
+ private PdfStream getObjectStream (PdfIndirectReference indirectReference ) {
198
+ int objStreamNumber = indirectReference .getObjStreamNumber ();
199
+ PdfObject objectByIndex = objects .loadObjectByReference (objStreamNumber );
200
+
201
+ return (PdfStream ) objectByIndex ;
202
+ }
203
+
204
+ private boolean isObjectStream (PdfIndirectReference indirectReference ) {
205
+ return indirectReference .getOffset () == -1 ;
206
+ }
207
+
207
208
208
209
/**
209
210
* @see javax.swing.JTable#getColumnName(int)
0 commit comments