+ has_daisy_file.boolean = True
+
+ def build_pdf(self):
+ """ (Re)builds the pdf file.
+
+ """
+ from librarian import pdf, ParseError
+ from tempfile import NamedTemporaryFile
+ import os
+
+ try:
+ path, fname = os.path.realpath(self.xml_file.path).rsplit('/', 1)
+ try:
+ pdf_file = NamedTemporaryFile(delete=False)
+
+ pdf.transform(BookImportDocProvider(self),
+ file_path=str(self.xml_file.path),
+ output_file=pdf_file,
+ )
+
+ self.pdf_file.save('%s.pdf' % self.slug, File(open(pdf_file.name)))
+ finally:
+ unlink(pdf_file.name)
+
+ except ParseError, e:
+ print '%(file)s:%(name)s:%(message)s; use -v to see more output' % {
+ 'file': self.xml_file.path,
+ 'name': e.__class__.__name__,
+ 'message': e
+ }
+