2

これは私が書いた方法です:

def pdf_page_to_png(src_pdf, pagenum=0, resolution=300, slug=''):
    dst_pdf = PyPDF2.PdfFileWriter()
    dst_pdf.addPage(src_pdf.getPage(pagenum))

    pdf_bytes = io.BytesIO()
    dst_pdf.write(pdf_bytes)
    pdf_bytes.seek(0)

    img = Image(file=pdf_bytes, resolution=resolution)
    img.convert("jpeg")

    if pagenum == 0:
        os.makedirs('media/einsert/%s' % slug)

    img.save(filename='media/einsert/%s/page_%s.jpeg' % (slug, pagenum))

    return img

そして私は得る

「jpeg」はサポートされていない形式です

エラー

/Users/daro/praca/polsha24/lib/python2.7/site-packages/wand/image.py in format
    def format(self, fmt):
        if not isinstance(fmt, string_type):
            raise TypeError("format must be a string like 'png' or 'jpeg'"
                            ', not ' + repr(fmt))
        fmt = fmt.strip()
        r = library.MagickSetImageFormat(self.wand, binary(fmt.upper()))
        if not r:
                        raise ValueError(repr(fmt) + ' is unsupported format') ...
        r = library.MagickSetFilename(self.wand,
                                      b'buffer.' + binary(fmt.lower()))
        if not r:
            self.raise_exception()
    @property

osx el capitan python 2.7.10 同じコードは、debian を搭載した他のコンピューターでも動作します。

4

2 に答える 2

1

「 jpeg」および/または「ghostscript」をインストールする必要がある場合があります

Mac用:

brew install jpeg
brew install ghostscript

Linux の場合:

JPEG : http://www.ijg.org/files/

ゴーストスクリプト: http://ghostscript.com/download/

最新バージョンをダウンロードしてインストールします。

それは私にとって同様の問題を解決しました。

于 2016-07-08T06:36:47.927 に答える
0

Image.convert の機能を誤解しています。ファイル形式間の変換は行いませんが、RGB ピクセルの場合は「RGB」、CMYK データの場合は「CMYK」などのピクセル形式に変換します。実際に特定のファイル形式で画像を出力するには、次を使用しますImage.save

jpeg_bytes = io.BytesIO()
img.save(jpeg_bytes, "jpeg")

バッファjpeg_bytesには JPEG データが含まれます。

編集: 私の記憶が正しければ、PDF は PIL では書き込み専用です。したがって、PDF の生データから画像を読み込むことはできません。しかし、それは別の問題です...

于 2015-10-25T22:21:12.453 に答える