@@ -42,9 +42,6 @@ This file is part of the iText (R) project.
4242 */
4343package com .itextpdf .rups .view .itext ;
4444
45- import com .itextpdf .io .source .PdfTokenizer ;
46- import com .itextpdf .io .source .RandomAccessFileOrArray ;
47- import com .itextpdf .io .source .RandomAccessSourceFactory ;
4845import com .itextpdf .kernel .pdf .*;
4946import com .itextpdf .rups .controller .PdfReaderController ;
5047import com .itextpdf .rups .model .IndirectObjectFactory ;
@@ -167,28 +164,34 @@ private String getByteOffSetByRow(int rowIndex) {
167164 final PdfObject object = objects .getObjectByIndex (rowIndex );
168165 PdfIndirectReference indirectReference = object .getIndirectReference ();
169166 if ( indirectReference != null ) {
170- long offset = indirectReference .getOffset ();
171-
172- if ( offset == -1 ) {
173- int objStreamNumber = indirectReference .getObjStreamNumber ();
174- PdfObject refersTo = indirectReference .getRefersTo ();
175- int compressedObjectNumber = refersTo .getIndirectReference ().getObjNumber ();
176- PdfObject objectByIndex = objects .loadObjectByReference (objStreamNumber );
177-
178- PdfStream objStm = (PdfStream ) objectByIndex ;
179- int internalCompressedObjectOffset = new ObjectStreamParser ().parseObjectStream (objStm , compressedObjectNumber );
167+ if (isObjectStream (indirectReference )) {
168+ int compressedObjectNumber = indirectReference .getObjNumber ();
169+ PdfStream objStm = getObjectStream (indirectReference );
170+ int internalCompressedObjectOffset
171+ = ObjectStreamParser .parseObjectStream (objStm , compressedObjectNumber );
180172
181173 return String .format (
182174 Language .XREF_BYTE_OFFSET_OBJECT_STREAM .getString (),
183- objStreamNumber , internalCompressedObjectOffset
175+ objStm . getIndirectReference (). getObjNumber () , internalCompressedObjectOffset
184176 );
185177 }
186178
187- return String .valueOf (offset );
179+ return String .valueOf (indirectReference . getOffset () );
188180 }
189181 return Language .XREF_NOT_LOADED_YET .getString ();
190182 }
191183
184+ private PdfStream getObjectStream (PdfIndirectReference indirectReference ) {
185+ int objStreamNumber = indirectReference .getObjStreamNumber ();
186+ PdfObject objectByIndex = objects .loadObjectByReference (objStreamNumber );
187+
188+ return (PdfStream ) objectByIndex ;
189+ }
190+
191+ private boolean isObjectStream (PdfIndirectReference indirectReference ) {
192+ return indirectReference .getOffset () == -1 ;
193+ }
194+
192195
193196 /**
194197 * @see javax.swing.JTable#getColumnName(int)
0 commit comments