@@ -6105,17 +6105,18 @@ def xref_object(self, xref, compressed=0, ascii=0):
61056105 """Get xref object source as a string."""
61066106 if self.is_closed:
61076107 raise ValueError("document closed")
6108- if g_use_extra:
6109- ret = extra.xref_object( self.this, xref, compressed, ascii)
6110- return ret
61116108 pdf = _as_pdf_document(self)
61126109 xreflen = mupdf.pdf_xref_len(pdf)
61136110 if not _INRANGE(xref, 1, xreflen-1) and xref != -1:
61146111 raise ValueError( MSG_BAD_XREF)
6115- if xref > 0:
6116- obj = mupdf.pdf_load_object(pdf, xref)
6117- else:
6118- obj = mupdf.pdf_trailer(pdf)
6112+ try:
6113+ if xref > 0:
6114+ obj = mupdf.pdf_load_object(pdf, xref)
6115+ else:
6116+ obj = mupdf.pdf_trailer(pdf)
6117+ except Exception:
6118+ message(f"No object at {xref=}")
6119+ return "null"
61196120 res = JM_object_to_buffer(mupdf.pdf_resolve_indirect(obj), compressed, ascii)
61206121 text = JM_EscapeStrFromBuffer(res)
61216122 return text
@@ -6166,7 +6167,7 @@ def xref_stream(self, xref):
61666167 xreflen = mupdf.pdf_xref_len( pdf)
61676168 if not _INRANGE(xref, 1, xreflen-1) and xref != -1:
61686169 raise ValueError( MSG_BAD_XREF)
6169- if xref >= 0:
6170+ if xref > 0:
61706171 obj = mupdf.pdf_new_indirect( pdf, xref, 0)
61716172 else:
61726173 obj = mupdf.pdf_trailer( pdf)
@@ -6184,7 +6185,7 @@ def xref_stream_raw(self, xref):
61846185 xreflen = mupdf.pdf_xref_len( pdf)
61856186 if not _INRANGE(xref, 1, xreflen-1) and xref != -1:
61866187 raise ValueError( MSG_BAD_XREF)
6187- if xref >= 0:
6188+ if xref > 0:
61886189 obj = mupdf.pdf_new_indirect( pdf, xref, 0)
61896190 else:
61906191 obj = mupdf.pdf_trailer( pdf)
0 commit comments