sklad2
[librarian.git] / librarian / pdf.py
index cb65311..133647d 100644 (file)
@@ -21,7 +21,7 @@ from librarian.dcparser import Person
 from librarian.parser import WLDocument
 from librarian import ParseError, DCNS, get_resource, OutputFile
 from librarian import functions
-from librarian.cover import WLCover
+from librarian.cover import ImageCover as WLCover
 
 
 functions.reg_substitute_entities()
@@ -174,7 +174,8 @@ def package_available(package, args='', verbose=False):
 
 
 def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
-              cover=None, flags=None, customizations=None):
+              cover=None, flags=None, customizations=None,
+              imgdir=""):
     """ produces a PDF file with XeLaTeX
 
     wldoc: a WLDocument
@@ -193,9 +194,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:
+            the_cover = cover(document.book_info)
+            document.edoc.getroot().set('data-cover-width', str(the_cover.width))
+            document.edoc.getroot().set('data-cover-height', str(the_cover.height))
+            if the_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:
@@ -215,10 +217,11 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
             document.edoc.getroot().set('customizations', u','.join(customizations))
 
         # hack the tree
-        move_motifs_inside(document.edoc)
-        hack_motifs(document.edoc)
+        #move_motifs_inside(document.edoc)
+        #hack_motifs(document.edoc)
         parse_creator(document.edoc)
-        substitute_hyphens(document.edoc)
+        if document.book_info.language == 'pol':
+            substitute_hyphens(document.edoc)
         fix_hanging(document.edoc)
 
         # wl -> TeXML
@@ -226,14 +229,19 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
         style = etree.parse(style_filename)
 
         texml = document.transform(style)
-
+        etree.dump(texml.getroot())
         # TeXML -> LaTeX
         temp = mkdtemp('-wl2pdf')
 
         if cover:
-            c = cover(document.book_info)
-            with open(os.path.join(temp, 'cover.png'), 'w') as f:
-                c.save(f)
+            with open(os.path.join(temp, 'cover.jpg'), 'w') as f:
+                the_cover.save(f)
+
+        shutil.copy("cce_trust.eps", temp)
+        shutil.copy("logo.eps", temp)
+        for img in document.edoc.findall('//ilustr'):
+            shutil.copy(os.path.join(imgdir, img.get('src')), temp)
+
 
         del document # no longer needed large object :)
 
@@ -249,6 +257,7 @@ 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('logo.eps', temp)
 
         cwd = os.getcwd()
         os.chdir(temp)
@@ -269,6 +278,7 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
         return OutputFile.from_filename(output_file.name)
 
     except (XMLSyntaxError, XSLTApplyError), e:
+        print e
         raise ParseError(e)