X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/b8e34e0e6730ef76a353a15ff653faa9e8c88a77..d183a3c15dee46ea00ac15c77e72903adfce8d1a:/librarian/pdf.py diff --git a/librarian/pdf.py b/librarian/pdf.py index cb65311..3c83cad 100644 --- a/librarian/pdf.py +++ b/librarian/pdf.py @@ -181,7 +181,7 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None, verbose: prints all output from LaTeX save_tex: path to save the intermediary LaTeX file to morefloats (old/new/none): force specific morefloats - cover: a cover.Cover object + cover: a cover.Cover factory or True for default flags: less-advertising, customizations: user requested customizations regarding various formatting parameters (passed to wl LaTeX class) """ @@ -193,9 +193,10 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None, if cover: if cover is True: cover = WLCover - document.edoc.getroot().set('data-cover-width', str(cover.width)) - document.edoc.getroot().set('data-cover-height', str(cover.height)) - if cover.uses_dc_cover: + bound_cover = cover(document.book_info) + document.edoc.getroot().set('data-cover-width', str(bound_cover.width)) + document.edoc.getroot().set('data-cover-height', str(bound_cover.height)) + if bound_cover.uses_dc_cover: if document.book_info.cover_by: document.edoc.getroot().set('data-cover-by', document.book_info.cover_by) if document.book_info.cover_source: @@ -231,9 +232,8 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None, temp = mkdtemp('-wl2pdf') if cover: - c = cover(document.book_info) with open(os.path.join(temp, 'cover.png'), 'w') as f: - c.save(f) + bound_cover.save(f) del document # no longer needed large object :) @@ -250,7 +250,10 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None, shutil.copy(get_resource('pdf/wl.cls'), temp) shutil.copy(get_resource('res/wl-logo.png'), temp) - cwd = os.getcwd() + try: + cwd = os.getcwd() + except OSError: + cwd = None os.chdir(temp) if verbose: @@ -260,7 +263,8 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None, if p: raise ParseError("Error parsing .tex file") - os.chdir(cwd) + if cwd is not None: + os.chdir(cwd) output_file = NamedTemporaryFile(prefix='librarian', suffix='.pdf', delete=False) pdf_path = os.path.join(temp, 'doc.pdf')