X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/17a9ed3b7ef12e0786ddf46bf8a52b1087224762..780d938ad20fe8e46f828fd167afdc076c31c28c:/librarian/pdf.py diff --git a/librarian/pdf.py b/librarian/pdf.py index b8aafdb..da89b63 100644 --- a/librarian/pdf.py +++ b/librarian/pdf.py @@ -35,6 +35,8 @@ functions.reg_strip() functions.reg_starts_white() functions.reg_ends_white() functions.reg_texcommand() +functions.reg_urlquote() +functions.reg_breakurl() STYLESHEETS = { 'wl2tex': 'pdf/wl2tex.xslt', @@ -83,7 +85,7 @@ def substitute_hyphens(doc): insert_tags(doc, re.compile("(?<=[^-\s])-(?=[^-\s])"), "dywiz", - exclude=[DCNS("identifier.url"), DCNS("rights.license")] + exclude=[DCNS("identifier.url"), DCNS("rights.license"), 'www'] ) @@ -147,7 +149,8 @@ def parse_creator(doc): and adds *_parsed versions with forenames first. """ for person in doc.xpath("|".join('//dc:'+(tag) for tag in ( - 'creator', 'contributor.translator')), + 'creator', 'contributor.translator', + 'contributor.editor', 'contributor.technical_editor')), namespaces = {'dc': str(DCNS)})[::-1]: if not person.text: continue @@ -198,21 +201,22 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None, # Parse XSLT try: + book_info = wldoc.book_info document = load_including_children(wldoc) root = document.edoc.getroot() if cover: if cover is True: cover = WLCover - bound_cover = cover(document.book_info) + bound_cover = cover(book_info) root.set('data-cover-width', str(bound_cover.width)) root.set('data-cover-height', str(bound_cover.height)) if bound_cover.uses_dc_cover: - if document.book_info.cover_by: - root.set('data-cover-by', document.book_info.cover_by) - if document.book_info.cover_source: + if book_info.cover_by: + root.set('data-cover-by', book_info.cover_by) + if book_info.cover_source: root.set('data-cover-source', - document.book_info.cover_source) + book_info.cover_source) if flags: for flag in flags: root.set('flag-' + flag, 'yes') @@ -247,6 +251,9 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None, # TeXML -> LaTeX temp = mkdtemp('-wl2pdf') + for ilustr in document.edoc.findall("//ilustr"): + shutil.copy(ilustr.get("src"), temp) + if cover: with open(os.path.join(temp, 'cover.png'), 'w') as f: bound_cover.save(f) @@ -265,6 +272,10 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None, # LaTeX -> PDF shutil.copy(get_resource('pdf/wl.cls'), temp) shutil.copy(get_resource('res/wl-logo.png'), temp) + #shutil.copy(get_resource('res/prawokultury-logo.png'), temp) + #shutil.copy(get_resource('res/trust-logo.eps'), temp) + shutil.copy(get_resource('res/nowoczesnapolska.org.pl.png'), temp) + shutil.copy(get_resource('res/koedlogo.png'), temp) try: cwd = os.getcwd()