MCPcopy Index your code
hub / github.com/clips/pattern / read_xref_from

Method read_xref_from

pattern/web/pdf/pdfparser.py:706–738  ·  view source on GitHub ↗

Reads XRefs from the given location.

(self, start, xrefs)

Source from the content-addressed store, hash-verified

704
705 # read xref table
706 def read_xref_from(self, start, xrefs):
707 """Reads XRefs from the given location."""
708 self.seek(start)
709 self.reset()
710 try:
711 (pos, token) = self.nexttoken()
712 except PSEOF:
713 raise PDFNoValidXRef('Unexpected EOF')
714 if 2 <= self.debug:
715 print >>sys.stderr, 'read_xref_from: start=%d, token=%r' % (start, token)
716 if isinstance(token, int):
717 # XRefStream: PDF-1.5
718 self.seek(pos)
719 self.reset()
720 xref = PDFXRefStream()
721 xref.load(self, debug=self.debug)
722 else:
723 if token is self.KEYWORD_XREF:
724 self.nextline()
725 xref = PDFXRef()
726 xref.load(self, debug=self.debug)
727 xrefs.append(xref)
728 trailer = xref.get_trailer()
729 if 1 <= self.debug:
730 print >>sys.stderr, 'trailer: %r' % trailer
731 if 'XRefStm' in trailer:
732 pos = int_value(trailer['XRefStm'])
733 self.read_xref_from(pos, xrefs)
734 if 'Prev' in trailer:
735 # find previous xref
736 pos = int_value(trailer['Prev'])
737 self.read_xref_from(pos, xrefs)
738 return
739
740 # read xref tables and trailers
741 def read_xref(self):

Callers 1

read_xrefMethod · 0.95

Calls 11

loadMethod · 0.95
get_trailerMethod · 0.95
int_valueFunction · 0.90
PDFNoValidXRefClass · 0.85
PDFXRefStreamClass · 0.85
PDFXRefClass · 0.85
nexttokenMethod · 0.80
nextlineMethod · 0.80
seekMethod · 0.45
resetMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected