Module Gnumed.pycommon.gmPrinting

GNUmed printing.

Functions

def print_files(filenames: list = None,
jobtype: str = None,
print_api: str = None,
verbose: bool = False) ‑> bool
Expand source code
def print_files(filenames:list=None, jobtype:str=None, print_api:str=None, verbose:bool=False) -> bool:
        """Print files.

        Args:
                filenames: list of files to print
                jobtype: type of print job, passed on to print backends
                print_api: the print backend to use, will try all backends if None or unknown backend

        Returns:
                status
        """
        _log.debug('printing "%s": %s', jobtype, filenames)

        for fname in filenames:
                try:
                        open(fname, 'r').close()
                except Exception:
                        _log.exception('cannot open [%s], aborting', fname)
                        return False

        if jobtype not in KNOWN_PRINTJOB_TYPES:
                print("unregistered print job type <%s>" % jobtype)
                _log.warning('print job type "%s" not registered', jobtype)

        if print_api not in external_print_APIs:
                _log.warning('print API "%s" unknown, trying all', print_api)

        if print_api == 'os_startfile':
                return _print_files_by_os_startfile(filenames = filenames)

        if print_api == 'gm-print_doc':
                return _print_files_by_shellscript(filenames = filenames, jobtype = jobtype, verbose = verbose)

        if print_api == 'gsprint':
                return _print_files_by_gsprint_exe(filenames = filenames, verbose = verbose)

        if print_api == 'acrobat_reader':
                return _print_files_by_acroread_exe(filenames = filenames, verbose = verbose)

        if print_api == 'gtklp':
                return _print_files_by_gtklp(filenames = filenames, verbose = verbose)

        if print_api == 'Internet_Explorer':
                return _print_files_by_IE(filenames = filenames)

        if print_api == 'Mac_Preview':
                return _print_files_by_mac_preview(filenames = filenames, verbose = verbose)

        # not any single print_api explicitely requested, so try all, per-platform
        if (sys.platform == 'darwin') or (os.name == 'mac'):
                if _print_files_by_mac_preview(filenames = filenames, verbose = verbose):
                        return True

        elif os.name == 'posix':
                if _print_files_by_gtklp(filenames = filenames, verbose = verbose):
                        return True

        elif os.name == 'nt':
                if _print_files_by_shellscript(filenames = filenames, jobtype = jobtype, verbose = verbose):
                        return True
                if _print_files_by_gsprint_exe(filenames = filenames, verbose = verbose):
                        return True
                if _print_files_by_acroread_exe(filenames = filenames, verbose = verbose):
                        return True
                if _print_files_by_os_startfile(filenames = filenames):
                        return True
                if _print_files_by_IE(filenames = filenames):
                        return True
                return False

        # unknown platform, or platform default list failed, so try generic script
        return _print_files_by_shellscript(filenames = filenames, jobtype = jobtype, verbose = verbose)

Print files.

Args

filenames
list of files to print
jobtype
type of print job, passed on to print backends
print_api
the print backend to use, will try all backends if None or unknown backend

Returns

status