Permalink

0

Thumbnails per Shortcut erstellen

Mal wie­der was schnel­les aus der Pra­xis: Bei mei­ner Arbeit ist es immer mal wie­der erfor­der­lich, Thumb­nails — vor allem aus PDF-Doku­men­ten und ger­ne auch mal in ver­schie­de­nen Grö­ßen — zu erstel­len. Der her­kömm­li­che Arbeits­pro­zess sah dann bis­lang so aus, die Datei mit Pho­to­shop oder Acro­bat Pro zu öff­nen und von Hand bzw. per vor­de­fi­nier­ter Akti­on zu ver­klei­nern und als .png abzu­spei­chern. Und wie bei allen red­un­dan­ten Auf­ga­ben, die einem mit der Zeit auf die Ner­ven gehen, fragt man sich: Geht das nicht auch ein­fa­cher? Abhil­fe schafft eine Kom­bi­na­ti­on zwei­er mäch­ti­ger Open-Source-Tools: Image­Ma­gick und Auto­Hot­key.

ImageMagick…

Image­Ma­gick ist so etwas wie die eier­le­gen­de Woll­milch­sau der kom­man­do­zei­len­ba­sier­ten Bild­ve­ar­bei­tung und For­mat­kon­ver­si­on. Gera­de was die Umwand­lung von einem in ein ande­res For­mat angeht, ste­hen einem aller­hand Mög­lich­kei­ten offen.
Will man damit neben Bild­da­tei­en auch noch PDF-Datei­en ver­ar­bei­ten, benö­tigt man zusätz­lich noch eine Instal­la­ti­on von Ghost­Script, das als PDF-Inter­pre­ter fun­giert.1
Prak­ti­scher Wei­se bringt Image­Ma­gick schon einen Para­me­ter für Thumb­nails mit, der sich nach eini­gen Ver­su­chen mit eige­nen Ein­stel­lun­gen als die bes­te Lösung für mei­ne Pro­blem­stel­lung umer­wies:

convert.exe -thumbnail 300x input.pdf output.png
Dabei gibt 300x die Brei­te des fer­ti­gen Thumb­nails in Pixel an.

…meets AutoHotkey

Nach­dem die ent­spre­chen­de Kon­fi­gu­ra­ti­on gefun­den war, ging es nur noch dar­um, die Umwand­lung zu auto­ma­ti­sie­ren. Hier kommt ein wei­te­res mei­ner Lieb­lings­tools zum Ein­satz: Auto­Hot­key (oder kurz AHK) ist eine Skript­spra­che, mit der man die Ober­flä­che von Win­dows steu­ern, Tex­ter­set­zun­gen machen oder glo­ba­le Tas­ten­kom­bi­na­tio­nen set­zen oder sogar re-map­pen kann.
Die Idee: Man wählt im Explo­rer die zu kon­ver­tie­ren­de Datei aus. Per Hot­key wird dann, nach­dem über eine Ein­ga­be­mas­ke die Brei­te der Aus­ga­be fest­ge­legt wur­de, Image­Ma­gick mit den vor­ge­nann­ten Para­me­tern auf­ge­ru­fen und so die Datei umge­wan­delt und unter dem glei­chen Namen — nur eben in dem umge­wan­del­ten For­mat — abge­spei­chert. Als Aus­ga­be­for­mat wur­de .png gewählt. Der Code sieht dann so aus:

Für alle, die aus der Kom­men­tie­rung im Code nicht ganz schlau wer­den, hier eini­ge erläu­tern­de Wor­te:
Zunächst wird fest­ge­legt, dass der Short­cut — ich habe die Akti­on auf STRG + T (^t::) gelegt — aus­schließ­lich in Explo­rer-Fens­tern aus­ge­führt wird:

#IfWinActive ahk_class CabinetWClass
In einer Varia­ble wird anschlie­ßend der Pfad der Image­Ma­gick-Datei­en fest­ge­legt. In den Zei­len 9–14 wird zunächst die Zwi­schen­ab­la­ge gesi­chert; anschlie­ßend wird die Tas­ten­kom­bi­na­ti­on STRG + C simu­liert, um die mar­kier­te Datei bzw. deren voll­stän­di­gen Pfad in die Zwi­schen­ab­la­ge zu über­neh­men. Die­ser Datei­pfad wird dann in die Varia­ble vDateiname über­nom­men. Mit SplitPath wird die­ser Pfad dann in sei­ne Ein­zel­tei­le zer­legt: vPfad bekommt den Wert des Ord­ner­pfa­des (also ohne Datei­na­me und Endung) zuge­wie­sen, vExtension die Datei­endung, mit der spä­ter geprüft wer­den soll, ob über­haupt eine legi­ti­me Datei mar­kiert wur­de und zuletzt wird an vName der Datei­na­me ohne Pfad und ohne Endung über­ge­ben. Zuletzt wird der vori­ge Inhalt der Zwi­schen­ab­la­ge wie­der­her­ge­stellt.
Jetzt geht es so lang­sam ans Ein­ge­mach­te: Es folgt mit if vExtension not in pdf,png,jpg,jpeg eine Abfra­ge der zuläs­si­gen Datei­ty­pen, die natür­lich bei Bedarf noch erwei­tert wer­den könn­ten. Wenn es sich um eine unzu­läs­si­ge Datei han­delt, wird eine Feh­ler­mel­dung aus­ge­ge­ge­ben, andern­falls wird nun mit
InputBox, vBreite, Breite in px:,,,150,100,,,,,300
ein Ein­ga­be­feld geöff­net, des­sen über­ge­be­ner Wert in der Varia­ble vBreite abge­legt wird. Die übri­gen Anga­ben die­ser Code­zei­le legen das Erschei­nungs­bild des Ein­ga­be­fens­ters (Titel, Höhe und Brei­te) sowie einen Stan­dard­wert (in die­sem Fall 300) fest. Wird die Ein­ga­be abge­bro­chen, erscheint eine ent­spre­chen­de Mel­dung, andern­falls wird geprüft, ob die Ein­ga­be nume­risch war. Ist dies nicht der Fall, wird auch hier eine ent­spre­chen­de Mel­dung aus­ge­ge­ben und auf das Label lAbfrage zurück­ver­wie­sen, sodass eine erneu­te Ein­ga­be erfol­gen kann. Wur­de ein erlaub­ter Wert ein­ge­ge­ben, wird schließ­lich Image­Ma­gick auf­ge­ru­fen und die getrof­fe­nen Optio­nen wer­den über­ge­ben. Nach kur­zer Zeit — die genaue Dau­er hängt von der Grö­ße der Aus­gangs­da­tei ab — liegt das kon­ver­tier­te Bild dann im glei­chen Ord­ner wie das Ori­gi­nal.
  1. Wenn es hin­ge­gen aus­schließ­lich um die Ver­ar­bei­tung von PDFs geht, emp­fiehlt sich nach mei­nem Kennt­nis­stand die direk­te Über­ga­be an Ghost­Script per Kom­man­do­zei­le, da damit wohl eine bes­se­re Per­for­mance erreicht wer­den kann als auf dem Umweg über Image­Ma­gick

    2 Klicks für mehr Datenschutz: Erst nach einem Klick wird der Button aktiv, da schon beim Aktivieren Daten an Dritte übertragen werden können.

Kategorien Technik & IT Schlagwörter , ,

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.