def __init__(self, filename, stream=None, streamlen=0): """__init__(fz_document_s self, char const * filename, char * stream=None, int streamlen=0) -> Document""" if type(filename) == str: pass elif type(filename) == unicode: filename = filename.encode('utf8') else: raise TypeError("filename must be a string") if not os.path.exists(filename) and streamlen == 0: raise IOError("no such file: '%s'" % (filename,)) self.name = filename self.streamlen = streamlen self.isClosed = 0 self.isEncrypted = 0 self.metadata = None this = _fitz.new_Document(filename, stream, streamlen) try: self.this.append(this) except Exception: self.this = this if this and self.needsPass: self.isEncrypted = 1 # we won't init encrypted doc until it is decrypted if this and not self.needsPass: self.initData() self.thisown = False
def __init__(self, filename, stream=None, streamlen=0): ''' filename or filetype: string specifying a file name or a MIME type stream: string containing document data streamlen: integer containing length of stream ''' if type(filename) == str: pass elif type(filename) == unicode: filename = filename.encode('utf8') else: raise TypeError("filename must be a string") if not os.path.exists(filename) and streamlen == 0: raise IOError("no such file: '%s'" % (filename,)) self.name = filename self.streamlen = streamlen self.isClosed = 0 self.isEncrypted = 0 self.metadata = None this = _fitz.new_Document(filename, stream, streamlen) try: self.this.append(this) except Exception: self.this = this if this and self.needsPass: self.isEncrypted = 1 # we won't init encrypted doc until it is decrypted if this and not self.needsPass: self.initData() self.thisown = False
def __init__(self, filename, stream=None, streamlen=0): ''' filename or filetype: string specifying a file name or a MIME type stream: string containing document data streamlen: integer containing length of stream ''' if type(filename) == str: pass elif type(filename) == unicode: filename = filename.encode('utf8') else: raise TypeError("filename must be a string") self.name = filename self.isClosed = 0 this = _fitz.new_Document(filename, stream, streamlen) try: self.this.append(this) except: self.this = this #================================================================ # Function: Table of Contents #================================================================ def ToC(): if not self._outline: # contains no outline: return [] # return empty list lvl = 0 # records current indent level ltab = {} # last OutlineItem on this level liste = [] # will hold flattened outline olItem = self._outline while olItem: while olItem: # process one OutlineItem lvl += 1 # its indent level zeile = [lvl, # create one outline line olItem.title.decode("UTF-8"), olItem.dest.page] liste.append(zeile) # append it ltab[lvl] = olItem # record OutlineItem in level table olItem = olItem.down # go to child OutlineItem olItem = ltab[lvl].next # no more children, look for brothers if olItem: # have any? lvl -= 1 # prep. proc.: decrease lvl recorder continue else: # no kids, no brothers, now what? while lvl > 1 and not olItem: lvl -= 1 # go look for uncles olItem = ltab[lvl].next if lvl < 1: # out of relatives return liste # return ToC lvl -= 1 return liste # return ToC if this: self._outline = self._loadOutline() self.metadata = dict([(k,self._getMetadata(v)) for k,v in {'format':'format','title':'info:Title', 'author':'info:Author','subject':'info:Subject', 'keywords':'info:Keywords','creator':'info:Creator', 'producer':'info:Producer','creationDate':'info:CreationDate', 'modDate':'info:ModDate'}.items()]) self.metadata['encryption'] = None if self._getMetadata('encryption')=='None' else self._getMetadata('encryption') self.ToC = ToC self.thisown = False
def __init__(self, filename, stream=None, streamlen=0): ''' filename or filetype: string specifying a file name or a MIME type stream: string containing document data streamlen: integer containing length of stream ''' if type(filename) == str: pass elif type(filename) == unicode: filename = filename.encode('utf8') else: raise TypeError("filename must be a string") self.name = filename self.isClosed = 0 this = _fitz.new_Document(filename, stream, streamlen) try: self.this.append(this) except: self.this = this #================================================================ # Function: Table of Contents #================================================================ def ToC(): def recurse(olItem, liste, lvl): while olItem: if olItem.title: title = olItem.title.decode("utf-8") else: title = u" " if olItem.dest.kind == 1: page = olItem.dest.page + 1 else: page = 0 liste.append([lvl, title, page]) if olItem.down: liste = recurse(olItem.down, liste, lvl+1) olItem = olItem.next return liste olItem = self.outline if not olItem: return [] lvl = 1 liste = [] return recurse(olItem, liste, lvl) if this: self._outline = self._loadOutline() self.metadata = dict([(k,self._getMetadata(v)) for k,v in {'format':'format','title':'info:Title', 'author':'info:Author','subject':'info:Subject', 'keywords':'info:Keywords','creator':'info:Creator', 'producer':'info:Producer','creationDate':'info:CreationDate', 'modDate':'info:ModDate'}.items()]) self.metadata['encryption'] = None if self._getMetadata('encryption')=='None' else self._getMetadata('encryption') self.ToC = ToC self.thisown = False
def __init__(self, filename, stream=None, streamlen=0): ''' filename or filetype: string specifying a file name or a MIME type stream: string containing document data streamlen: integer containing length of stream ''' if type(filename) == str: pass elif type(filename) == unicode: filename = filename.encode('utf8') else: raise TypeError("filename must be a string") self.name = filename self.isClosed = 0 this = _fitz.new_Document(filename, stream, streamlen) try: self.this.append(this) except: self.this = this #================================================================ # Function: Table of Contents #================================================================ def ToC(): def recurse(olItem, liste, lvl): while olItem: if olItem.title: title = olItem.title.decode("utf-8") else: title = u" " if olItem.dest.kind == 1: page = olItem.dest.page + 1 else: page = 0 liste.append([lvl, title, page]) if olItem.down: liste = recurse(olItem.down, liste, lvl + 1) olItem = olItem.next return liste olItem = self.outline if not olItem: return [] lvl = 1 liste = [] return recurse(olItem, liste, lvl) if this: self._outline = self._loadOutline() self.metadata = dict([(k, self._getMetadata(v)) for k, v in { 'format': 'format', 'title': 'info:Title', 'author': 'info:Author', 'subject': 'info:Subject', 'keywords': 'info:Keywords', 'creator': 'info:Creator', 'producer': 'info:Producer', 'creationDate': 'info:CreationDate', 'modDate': 'info:ModDate' }.items()]) self.metadata['encryption'] = None if self._getMetadata( 'encryption') == 'None' else self._getMetadata('encryption') self.ToC = ToC self.thisown = False