mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Fix PDF cover extraction
This commit is contained in:
parent
f969ed39fe
commit
02cfaac014
@ -10,7 +10,6 @@ from calibre import FileWrapper
|
|||||||
from calibre.ebooks.metadata import MetaInformation, authors_to_string
|
from calibre.ebooks.metadata import MetaInformation, authors_to_string
|
||||||
from calibre.ptempfile import TemporaryDirectory
|
from calibre.ptempfile import TemporaryDirectory
|
||||||
from pyPdf import PdfFileReader, PdfFileWriter
|
from pyPdf import PdfFileReader, PdfFileWriter
|
||||||
#import Image
|
|
||||||
try:
|
try:
|
||||||
from calibre.utils.PythonMagickWand import \
|
from calibre.utils.PythonMagickWand import \
|
||||||
NewMagickWand, MagickReadImage, MagickSetImageFormat, \
|
NewMagickWand, MagickReadImage, MagickSetImageFormat, \
|
||||||
@ -95,7 +94,6 @@ def set_metadata(stream, mi):
|
|||||||
stream.seek(0)
|
stream.seek(0)
|
||||||
|
|
||||||
def get_cover(stream):
|
def get_cover(stream):
|
||||||
data = cStringIO.StringIO()
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
pdf = PdfFileReader(stream)
|
pdf = PdfFileReader(stream)
|
||||||
@ -104,24 +102,21 @@ def get_cover(stream):
|
|||||||
if len(pdf.pages) >= 1:
|
if len(pdf.pages) >= 1:
|
||||||
output.addPage(pdf.getPage(0))
|
output.addPage(pdf.getPage(0))
|
||||||
|
|
||||||
with TemporaryDirectory('_pdfmeta') as tdir:
|
with TemporaryDirectory('_pdfmeta') as tdir:
|
||||||
cover_path = os.path.join(tdir, 'cover.pdf')
|
cover_path = os.path.join(tdir, 'cover.pdf')
|
||||||
|
|
||||||
outputStream = file(cover_path, "wb")
|
with open(cover_path, "wb") as outputStream:
|
||||||
output.write(outputStream)
|
output.write(outputStream)
|
||||||
outputStream.close()
|
with ImageMagick():
|
||||||
with ImageMagick():
|
wand = NewMagickWand()
|
||||||
wand = NewMagickWand()
|
MagickReadImage(wand, cover_path)
|
||||||
MagickReadImage(wand, cover_path)
|
MagickSetImageFormat(wand, 'JPEG')
|
||||||
MagickSetImageFormat(wand, 'JPEG')
|
MagickWriteImage(wand, '%s.jpg' % cover_path)
|
||||||
MagickWriteImage(wand, '%s.jpg' % cover_path)
|
return open('%s.jpg' % cover_path, 'rb').read()
|
||||||
|
|
||||||
#img = Image.open('%s.jpg' % cover_path)
|
|
||||||
|
|
||||||
#img.save(data, 'JPEG')
|
|
||||||
except:
|
except:
|
||||||
import traceback
|
import traceback
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
|
||||||
return data.getvalue()
|
return ''
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user