def getFile(self, name, relative=None): """ Returns a file name or None """ if self.pathCallback is not None: return getFile(self._getFileDeprecated(name, relative)) return getFile(name, relative or self.pathDirectory)
def execute(): try: opts, args = getopt.getopt(sys.argv[1:], "dhqstwcxb", [ "quiet", "help", "start-viewer", "start", "debug=", "copyright", "version", "warn", "tempdir=", "format=", "css=", "base=", "css-dump", "xml-dump", "xhtml", "xml", "html", "encoding=", "system", "profile", ]) except getopt.GetoptError: usage() sys.exit(2) errors = 0 startviewer = 0 quiet = 0 debug = 0 tempdir = None format = "pdf" css = None xhtml = None encoding = None xml_output = None base_dir = None log_level = logging.ERROR log_format = LOG_FORMAT for o, a in opts: if o in ("-h", "--help"): # Hilfe anzeigen usage() sys.exit() if o in ("-s", "--start-viewer", "--start"): # Anzeigeprogramm starten startviewer = 1 if o in ("-q", "--quiet"): # Output unterdr�cken quiet = 1 if o in ("-w", "--warn"): # Warnings log_level = min(log_level, logging.WARN) # If also -d ignore -w if o in ("-d", "--debug"): # Debug log_level = logging.DEBUG log_format = LOG_FORMAT_DEBUG if a: log_level = int(a) if o in ("--copyright", "--version"): print (COPYRIGHT) sys.exit(0) if o in ("--system",): print (COPYRIGHT) print () print ("SYSTEM INFORMATIONS") print ("--------------------------------------------") print ("OS: ", sys.platform) print ("Python: ", sys.version) print ("html5lib: ", "?") import reportlab print ("Reportlab: ", reportlab.Version) sys.exit(0) if o in ("-t", "--format"): # Format XXX ??? format = a if o in ("-b", "--base"): base_dir = a if o in ("--encoding",) and a: # Encoding encoding = a if o in ("-c", "--css"): # CSS css = file(a, "r").read() if o in ("--css-dump",): # CSS dump print (DEFAULT_CSS) return if o in ("--xml-dump",): xml_output = sys.stdout if o in ("-x", "--xml", "--xhtml"): xhtml = True elif o in ("--html",): xhtml = False if not quiet: try: logging.basicConfig( level=log_level, format=log_format) except: # XXX Logging doesn't work for Python 2.3 logging.basicConfig() if len(args) not in (1, 2): usage() sys.exit(2) if len(args) == 2: a_src, a_dest = args else: a_src = args[0] a_dest = None if "*" in a_src: a_src = glob.glob(a_src) # print a_src else: a_src = [a_src] for src in a_src: # If not forced to parse in a special way have a look # at the filename suffix if xhtml is None: xhtml = src.lower().endswith(".xml") lc = None if src == "-" or base_dir is not None: # Output to console fsrc = sys.stdin wpath = os.getcwd() if base_dir: wpath = base_dir else: if src.startswith("http:") or src.startswith("https:"): wpath = src fsrc = getFile(src).getFile() src = "".join(urlparse.urlsplit(src)[1:3]).replace("/", "-") else: fsrc = wpath = os.path.abspath(src) fsrc = open(fsrc, "rb") if a_dest is None: dest_part = src if dest_part.lower().endswith(".html") or dest_part.lower().endswith(".htm"): dest_part = ".".join(src.split(".")[:-1]) dest = dest_part + "." + format.lower() for i in xrange(10): try: open(dest, "wb").close() break except: pass dest = dest_part + "-%d.%s" % (i, format.lower()) else: dest = a_dest fdestclose = 0 if dest == "-" or base_dir: if sys.platform == "win32": import msvcrt msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) fdest = sys.stdout startviewer = 0 else: dest = os.path.abspath(dest) try: open(dest, "wb").close() except: print ("File '%s' seems to be in use of another application.") % dest sys.exit(2) fdest = open(dest, "wb") fdestclose = 1 if not quiet: print ("Converting %s to %s...") % (src, dest) pdf = pisaDocument( fsrc, fdest, debug=debug, path=wpath, errout=sys.stdout, tempdir=tempdir, format=format, link_callback=lc, default_css=css, xhtml=xhtml, encoding=encoding, xml_output=xml_output, ) if xml_output: xml_output.getvalue() if fdestclose: fdest.close() if (not errors) and startviewer: if not quiet: print ("Open viewer for file %s") % dest startViewer(dest)
def addFromURI(self, url, basepath=None): obj = getFile(url, basepath) if obj and (not obj.notFound()): self.files.append(obj.getFile())
def execute(): # from optparse import OptionParser # # parser = OptionParser() # parser.add_option("-f", "--file", dest="filename", # help="write report to FILE", metavar="FILE") # parser.add_option("-q", "--quiet", # action="store_false", dest="verbose", default=True, # help="don't print status messages to stdout") # (options, args) = parser.parse_args() try: opts, args = getopt.getopt(sys.argv[1:], "dhqstwcxb", [ "quiet", "help", "start-viewer", "start", "debug=", "copyright", "version", "warn", #"booklet=", #"multivalent=", #"multivalent-path=", "tempdir=", "format=", "css=", "base=", "css-dump", "xml-dump", "xhtml", "xml", "html", "encoding=", "system", "profile", ]) except getopt.GetoptError: usage() sys.exit(2) errors = 0 startviewer = 0 quiet = 0 debug = 0 #multivalent_path = "" #booklet = "" tempdir = None format = "pdf" css = None xhtml = None encoding = None xml_output = None base_dir = None log_level = logging.ERROR log_format = LOG_FORMAT for o, a in opts: if o in ("-h", "--help"): # Hilfe anzeigen usage() sys.exit() if o in ("-s", "--start-viewer", "--start"): # Anzeigeprogramm starten startviewer = 1 if o in ("-q", "--quiet"): # Output unterdr�cken quiet = 1 if o in ("-w", "--warn"): # Warnings log_level = min(log_level, logging.WARN) # If also -d ignore -w if o in ("-d", "--debug"): # Debug log_level = logging.DEBUG log_format = LOG_FORMAT_DEBUG # debug = 10 if a: log_level = int(a) # if o in ("--multivalent", "--multivalent-path"): # # Multivalent.jar f�r Booklet # multivalent_path = a # if o in ("--booklet",): # # Booklet # booklet = a if o in ("--copyright", "--version"): print COPYRIGHT sys.exit(0) if o in ("--system",): print COPYRIGHT print print "SYSTEM INFORMATIONS" print "--------------------------------------------" print "OS: ", sys.platform print "Python: ", sys.version print "html5lib: ", "?" import reportlab print "Reportlab: ", reportlab.Version #try: # import pyPdf # print "pyPdf: ", pyPdf.__version__ #except: # print "pyPdf: ","-" sys.exit(0) # if o in ("--tempdir",): # # Tempdir # tempdir = a if o in ("-t", "--format"): # Format XXX ??? format = a if o in ("-b","--base"): base_dir = a if o in ("--encoding",) and a: # Encoding encoding = a if o in ("-c", "--css"): # CSS # css = "@import url('%s');" % a css = file(a, "r").read() if o in ("--css-dump",): # CSS dump print DEFAULT_CSS return if o in ("--xml-dump",): xml_output = sys.stdout if o in ("-x", "--xml", "--xhtml"): xhtml = True elif o in ("--html",): xhtml = False if not quiet: try: logging.basicConfig( level=log_level, format=log_format) except: # XXX Logging doesn't work for Python 2.3 logging.basicConfig() if len(args) not in (1, 2): usage() sys.exit(2) if len(args) == 2: a_src, a_dest = args else: a_src = args[0] a_dest = None if "*" in a_src: a_src = glob.glob(a_src) # print a_src else: a_src = [a_src] for src in a_src: # If not forced to parse in a special way have a look # at the filename suffix if xhtml is None: xhtml = src.lower().endswith(".xml") lc = None wpath = None if src == "-" or base_dir != None: # Output to console fsrc = sys.stdin wpath = os.getcwd() if base_dir: wpath = base_dir else: # fsrc = open(src, "r") if src.startswith("http:") or src.startswith("https:"): wpath = src fsrc = getFile(src).getFile() # fsrc = urllib2.urlopen(src) # lc = pisaLinkLoader(src, quiet=quiet).getFileName src = "".join(urlparse.urlsplit(src)[1:3]).replace("/", "-") else: fsrc = wpath = os.path.abspath(src) fsrc = open(fsrc, "rb") if a_dest is None: dest_part = src if dest_part.lower().endswith(".html") or dest_part.lower().endswith(".htm"): dest_part = ".".join(src.split(".")[:-1]) dest = dest_part + "." + format.lower() for i in range(10): try: open(dest, "wb").close() break except: pass dest = dest_part + "-%d.%s" % (i, format.lower()) else: dest = a_dest fdestclose = 0 if dest == "-" or base_dir: if sys.platform == "win32": import msvcrt msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) fdest = sys.stdout startviewer = 0 else: dest = os.path.abspath(dest) try: open(dest, "wb").close() except: print "File '%s' seems to be in use of another application." % dest sys.exit(2) fdest = open(dest, "wb") fdestclose = 1 if not quiet: print "Converting %s to %s..." % (src, dest) pdf = pisaDocument( fsrc, fdest, debug = debug, path = wpath, errout = sys.stdout, #multivalent_path = multivalent_path, #booklet = booklet, tempdir = tempdir, format = format, link_callback = lc, default_css = css, xhtml = xhtml, encoding = encoding, xml_output = xml_output, ) if xml_output: xml_output.getvalue() if fdestclose: fdest.close() if (not errors) and startviewer: if not quiet: print "Open viewer for file %s" % dest startViewer(dest)