fnp
/
librarian.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
images in epub/mobi
[librarian.git]
/
librarian
/
pdf.py
diff --git
a/librarian/pdf.py
b/librarian/pdf.py
index
95883e1
..
246fd0c
100644
(file)
--- a/
librarian/pdf.py
+++ b/
librarian/pdf.py
@@
-41,20
+41,21
@@
STYLESHEETS = {
'wl2tex': 'pdf/wl2tex.xslt',
}
'wl2tex': 'pdf/wl2tex.xslt',
}
-#CUSTOMIZATIONS = [
-# 'nofootnotes',
-# 'nothemes',
-# 'defaultleading',
-# 'onehalfleading',
-# 'doubleleading',
-# 'nowlfont',
-# ]
+# CUSTOMIZATIONS = [
+# 'nofootnotes',
+# 'nothemes',
+# 'defaultleading',
+# 'onehalfleading',
+# 'doubleleading',
+# 'nowlfont',
+# ]
+
def insert_tags(doc, split_re, tagname, exclude=None):
""" inserts <tagname> for every occurence of `split_re' in text nodes in the `doc' tree
def insert_tags(doc, split_re, tagname, exclude=None):
""" inserts <tagname> for every occurence of `split_re' in text nodes in the `doc' tree
- >>> t = etree.fromstring('<a><b>A-B-C</b>X-Y-Z</a>')
;
- >>> insert_tags(t, re.compile('-'), 'd')
;
+ >>> t = etree.fromstring('<a><b>A-B-C</b>X-Y-Z</a>')
+ >>> insert_tags(t, re.compile('-'), 'd')
>>> print etree.tostring(t)
<a><b>A<d/>B<d/>C</b>X<d/>Y<d/>Z</a>
"""
>>> print etree.tostring(t)
<a><b>A<d/>B<d/>C</b>X<d/>Y<d/>Z</a>
"""
@@
-95,6
+96,7
@@
def fix_hanging(doc):
exclude=[DCNS("identifier.url"), DCNS("rights.license")]
)
exclude=[DCNS("identifier.url"), DCNS("rights.license")]
)
+
def fix_tables(doc):
for kol in doc.iter(tag='kol'):
if kol.tail is not None:
def fix_tables(doc):
for kol in doc.iter(tag='kol'):
if kol.tail is not None:
@@
-109,10
+111,12
@@
def fix_tables(doc):
def move_motifs_inside(doc):
""" moves motifs to be into block elements """
def move_motifs_inside(doc):
""" moves motifs to be into block elements """
- for master in doc.xpath('//powiesc|//opowiadanie|//liryka_l|//liryka_lp|//dramat_wierszowany_l|//dramat_wierszowany_lp|//dramat_wspolczesny'):
+ for master in doc.xpath('//powiesc|//opowiadanie|//liryka_l|//liryka_lp|'
+ '//dramat_wierszowany_l|//dramat_wierszowany_lp|//dramat_wspolczesny'):
for motif in master.xpath('motyw'):
for sib in motif.itersiblings():
for motif in master.xpath('motyw'):
for sib in motif.itersiblings():
- if sib.tag not in ('sekcja_swiatlo', 'sekcja_asterysk', 'separator_linia', 'begin', 'end', 'motyw', 'extra', 'uwaga'):
+ if sib.tag not in ('sekcja_swiatlo', 'sekcja_asterysk', 'separator_linia',
+ 'begin', 'end', 'motyw', 'extra', 'uwaga'):
# motif shouldn't have a tail - it would be untagged text
motif.tail = None
motif.getparent().remove(motif)
# motif shouldn't have a tail - it would be untagged text
motif.tail = None
motif.getparent().remove(motif)
@@
-158,9
+162,8
@@
def parse_creator(doc):
Finds all dc:creator and dc.contributor.translator tags
and adds *_parsed versions with forenames first.
"""
Finds all dc:creator and dc.contributor.translator tags
and adds *_parsed versions with forenames first.
"""
- for person in doc.xpath("|".join('//dc:'+(tag) for tag in (
- 'creator', 'contributor.translator')),
- namespaces = {'dc': str(DCNS)})[::-1]:
+ for person in doc.xpath("|".join('//dc:' + tag for tag in ('creator', 'contributor.translator')),
+ namespaces={'dc': str(DCNS)})[::-1]:
if not person.text:
continue
p = Person.from_text(person.text)
if not person.text:
continue
p = Person.from_text(person.text)
@@
-196,7
+199,7
@@
def package_available(package, args='', verbose=False):
def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
- cover=None, flags=None, customizations=None):
+ cover=None, flags=None, customizations=None
, ilustr_path=''
):
""" produces a PDF file with XeLaTeX
wldoc: a WLDocument
""" produces a PDF file with XeLaTeX
wldoc: a WLDocument
@@
-224,8
+227,7
@@
def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
if book_info.cover_by:
root.set('data-cover-by', book_info.cover_by)
if 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',
- book_info.cover_source)
+ root.set('data-cover-source', book_info.cover_source)
if flags:
for flag in flags:
root.set('flag-' + flag, 'yes')
if flags:
for flag in flags:
root.set('flag-' + flag, 'yes')
@@
-266,6
+268,9
@@
def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
# TeXML -> LaTeX
temp = mkdtemp('-wl2pdf')
# TeXML -> LaTeX
temp = mkdtemp('-wl2pdf')
+ for ilustr in document.edoc.findall("//ilustr"):
+ shutil.copy(os.path.join(ilustr_path, ilustr.get("src")), temp)
+
for sponsor in book_info.sponsors:
ins = etree.Element("data-sponsor", name=sponsor)
logo = sponsor_logo(sponsor)
for sponsor in book_info.sponsors:
ins = etree.Element("data-sponsor", name=sponsor)
logo = sponsor_logo(sponsor)
@@
-284,7
+289,7
@@
def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
with open(os.path.join(temp, 'cover.png'), 'w') as f:
bound_cover.save(f, quality=80)
with open(os.path.join(temp, 'cover.png'), 'w') as f:
bound_cover.save(f, quality=80)
- del document # no longer needed large object :)
+ del document
# no longer needed large object :)
tex_path = os.path.join(temp, 'doc.tex')
fout = open(tex_path, 'w')
tex_path = os.path.join(temp, 'doc.tex')
fout = open(tex_path, 'w')
@@
-343,8
+348,7
@@
def load_including_children(wldoc=None, provider=None, uri=None):
text = re.sub(ur"([\u0400-\u04ff]+)", ur"<alien>\1</alien>", text)
text = re.sub(ur"([\u0400-\u04ff]+)", ur"<alien>\1</alien>", text)
- document = WLDocument.from_string(text,
- parse_dublincore=True, provider=provider)
+ document = WLDocument.from_string(text, parse_dublincore=True, provider=provider)
document.swap_endlines()
for child_uri in document.book_info.parts:
document.swap_endlines()
for child_uri in document.book_info.parts: