ich möchte für ein Programm eine Vorschau-Funktion für PDF-Dateien basteln. Dazu habe ich mir gedacht, Ghostscript zu nutzen, weil das von mir eigentlich vorgesehene Pil PDFs ja nur zu schreiben können scheint.
Jetzt habe ich dabei leider zwei Probleme.
Zum Einen schaffe ich es anscheinend nicht, den Befehl für Ghostscript richtig zusammen zu basteln, damit das PDF in ein PNG umgewandelt wird, ohne eine temporäre Datei nutzen zu müssen.
Zum Anderen würde ich gerne wissen, ob es möglich ist, das von Ghostscript erzeugte png in ein Pil-Objekt umzuwandeln, und wenn ja, wie ich das machen kann?
Vielleicht kennt jemand auch eine andere Möglichkeit, die nicht auf Ghostscript aufsetzt?
cu
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wx
from PIL import Image
import subprocess
import sys
class imageActions():
def __init__(self, file=""datei.pdf""):
self.preview = self.getPreview(file)
def getPreview(self, file):
cmd = "gs-noX11 -q -sDEVICE=png16m -sOutputFile=%stdout " + file
outfile = subprocess.call(cmd, shell=True)
pil = Image.open(outfile)
pil.thumbnail((600, 128))
wxi = wx.EmptyImage(pil.size[0],pil.size[1])
wxi.SetData(pil.convert("RGB").tostring())
wxi.SetAlphaData(pil.convert("RGBA").tostring()[3::4])
bmp = wx.BitmapFromImage(wxi)
return bmp