Ejemplo n.º 1
0
def convert_pdf_to_jpeg(log, pdf_data, page_num, reported_errors=None):
    pdf_file = temp_filename("pdf", pdf_data)
    jpeg_dir = create_temp_dir()

    if True:

        from calibre.ebooks.metadata.pdf import page_images
        page_images(pdf_file, jpeg_dir, first=page_num, last=page_num)

    for dirpath, dirnames, filenames in os.walk(jpeg_dir):
        if len(filenames) != 1:
            raise Exception("pdftoppm created %d files" % len(filenames))

        if not (filenames[0].endswith(".jpg")
                or filenames[0].endswith(".jpeg")):
            raise Exception("pdftoppm created unexpected file: %s" %
                            filenames[0])

        with io.open(os.path.join(dirpath, filenames[0]), "rb") as of:
            jpeg_data = of.read()

        break
    else:
        raise Exception("pdftoppm created no files")

    return jpeg_data
Ejemplo n.º 2
0
 def render(self):
     self.error = None
     try:
         page_images(self.pdfpath, self.tdir, last=10)
     except Exception as e:
         self.error = as_unicode(e)
     if not sip.isdeleted(self) and self.isVisible():
         self.rendering_done.emit()
Ejemplo n.º 3
0
 def render(self):
     self.error = None
     try:
         page_images(self.pdfpath, self.tdir, last=10)
     except Exception as e:
         self.error = as_unicode(e)
     if not sip.isdeleted(self) and self.isVisible():
         self.rendering_done.emit()
Ejemplo n.º 4
0
 def render(self):
     self.current_tdir = os.path.join(self.tdir, str(self.first))
     self.error = None
     try:
         os.mkdir(self.current_tdir)
         page_images(self.pdfpath, self.current_tdir, first=self.first, last=self.first + PAGES_PER_RENDER - 1)
     except Exception as e:
         if self.covers.count():
             pass
         else:
             self.error = as_unicode(e)
     if not sip.isdeleted(self) and self.isVisible():
         self.rendering_done.emit()
Ejemplo n.º 5
0
 def render(self):
     self.current_tdir = os.path.join(self.tdir, unicode_type(self.first))
     self.error = None
     try:
         os.mkdir(self.current_tdir)
         page_images(self.pdfpath, self.current_tdir, first=self.first, last=self.first + PAGES_PER_RENDER - 1)
     except Exception as e:
         if self.covers.count():
             pass
         else:
             self.error = as_unicode(e)
     if not sip.isdeleted(self) and self.isVisible():
         self.rendering_done.emit()
Ejemplo n.º 6
0
def main(path_to_html, tdir, image_format='jpeg'):
    if image_format not in ('jpeg', 'png'):
        raise ValueError('Image format must be either jpeg or png')
    must_use_qt()
    path_to_html = os.path.abspath(path_to_html)
    os.chdir(tdir)
    renderer = Render()
    renderer.start_load(path_to_html)
    ret = QApplication.instance().exec_()
    if ret == 0:
        page_images('rendered.pdf', image_format=image_format)
        ext = {'jpeg': 'jpg'}.get(image_format, image_format)
        atomic_rename('page-images-1.' + ext, 'rendered.' + image_format)
    return ret == 0