Automator: PDF -> JPEG -> PDF

maceis

maceis

Aktives Mitglied
Thread Starter
Dabei seit
24.09.2003
Beiträge
16.880
Reaktionspunkte
626
Hallo zusammen,

ich habe versucht, mir mit Automator eine Aktion zu basteln, die folgendes macht (am Liebsten als dropplet oder als Ordneraktion):

1. PDF Datei öffnen (Namen merken)
2. Umwandlen in eine JPEG Datei (200 dpi)
3. Umwandeln in PDF Datei
4. Am selben Ort wie unter 1. die Datei wieder als PDF speichern

Ich habe schon alles mögliche versucht, konnte aber nie den gesamten Arbeitsablauf erstellen.

Danke im Voraus und Gruß
maceis
 
Vielen Dank, aber wirklich weiter bringt es mich im Augenblick nicht.

Um ehrlich zu sein, kenn' ich mich zu wenig mit Automator/AppleScript aus und auf die schnelle hab ich's einfach nicht kapiert.
Muss ich mir wohl Abends mal in Ruhe ansehen.

Gruß
maceis
 
Wo genau liegt denn die Schwierigkeit?
Jpeg aus PDF und dann PDF aus den Jpegs geht recht fix im Automator.
Leider klappt das mit der Benennung bei mir nicht so ohne weiteres.

Evtl kannst Du ja mal beschrieben, was Du schon gemacht hast.

Gruß
Diolch
 
Die Schwierigkeit liegt im wesentlichen an der Beibehaltung des Dateinamens und dem Abspeichern im Ordner, wo auch die Quelldatei liegt (die überschrieben werden soll).
 
Ah, ja das habe ich mittlerweile auch bemerkt.

Für die Benennung könnte es hier Abhilfe geben:
http://www.macosxhints.com/article.php?story=20080213200213250

Zusammengefasst:
Automator Arbeitsabläufe sind XML Dateien, die man im Texteditor bearbeiten bzw ansehen kann. Lässt min sich den Paketinhalt zeigen und öffnet die Datei "document.wflow" im Ordner Contents, dann man mit nem Editor nach den Automator-Internen Namen für die Variablen suchen, die finden sich im Abschnitt
Code:
<key>variables</key>
Dort findet sich die Variable, die von Automator mit einer UUID sersehen wird. Dieser String kann zb so aussehen:
Code:
<string>27784E8F-0253-4621-AB44-FFE2B9D9BA8F</string>

Wenn man diese Angabe kopiert, ist es möglich innerhalb von Automator den Wert der Variable in beliebige Felder einzutragen, auch wenn das nicht vorgesehen war. Dazu muss man diesen String innerhalb der runden Klammern schreiben: $( ).

Das war jetzt ne ganz schnelle und vermutlich etwas verwirrende Erklärung. Der Originaltext ist da besser, aber eben englisch.

Ich habe es jedenfalls geschafft, den von Dir geforderten Ablauf hinzubekommen, zumindest für einzelne Dateien. Leider funktioniert das nicht mit mehreren, da dann die Benennung nicht mehr gelingt. Evtl ist das auch eher etwas für nen bash-script.

HTH Diolch
 
Was ist denn eigentlich das Ziel bzw der Hintergrund Deiner Anfrage? Geht es Dir um die Reduktion der Auflösung eines PDFs? Das könntest Du nämlich auch über "Quartz-Filter auf PDF-Dokumente anwenden" erreichen. Dadurch könnte man womöglich das Benennungsproblem umgehen.

Gruß
Diolch
 
Das ist schnel erklärt. Ich erzeuge regelmäßig PDFs aus einem CAD Programm heraus.
Die Dateien sind allesamt ca. 750 KB bis 1,5 MB groß. Ein paar ganz bestimmte davon, können zwar mit Vorschau problemlos geöffnet und gedruckt werden. Mit Adobe Reader dauert das Öffnen einieger einzelner dieser Dateien rund 1/2 Stunde und länger. Das können wir unserm Kunden und den Planungspartnern natürlich nicht zumuten.

Die Quartfilter habe ich alle schon probiert. Das Umwandeln in jpeg und dann wieder in pdf ist das Einzige was bisher zu akzeptablen Ergebnissen geführt hat. Das Problem ist auch nicht die Auflösung der Dateiinhalte sondern die Anzahl der Linien.

Ich hab heute schon wieder fast ne Stunde mit Automator vergeigt. Da kann man wunderbar den Dateinamen in eine Variable extrahieren, die Variable kann man auch Als Pfadangabe verwenden, einzig das Feld für den Dateinamen sträubt sich hartnäckig.

Zwischenzeitlich ist ein weiteres Problem aufgetaucht. Meist werden die Zieldateien etwa 50% größer, als die Quelldatei. Das wäre okay. Seit kurzem werden die Zieldateien manchmal etwa 20 x so groß und zwar ohne dass am Arbeitsablauf etwas geändert wurde (ich speichere Zwischenstände, die zumindest teilweise funktionieren. :Ächz:

Was gäbe ich um ein Shellkommando, dass aus pdfs jpegs und aus jpegs pdfs macht.
sips kann ja leider nicht mit pdfs umgehen.
 
Zuletzt bearbeitet:
Hallo,

Code:
set zielDPI to "72"

set nDatei to choose file

-- Zielpfad bauen
tell application "Finder"
	set AppleScript's text item delimiters to ("." & (name extension of nDatei))
	set zielPfad to ((container of nDatei) as string) & (first text item of (name of nDatei as string))
	set AppleScript's text item delimiters to ""
end tell

-- Zu Bild konvertieren
do shell script "/usr/bin/sips -s dpiHeight " & zielDPI & " -s dpiWidth " & zielDPI & " -s format jpeg " & quoted form of POSIX path of (nDatei as string) & " --out " & quoted form of POSIX path of (zielPfad & ".jpg")
delay 0.5

-- Original löschen
do shell script ("rm -f " & quoted form of POSIX path of nDatei)

-- Zu PDF exportieren
do shell script "/System/Library/Printers/Libraries/./convert" & " -f " & quoted form of POSIX path of (zielPfad & ".jpg") & " -o " & quoted form of POSIX path of (zielPfad & ".pdf")
delay 0.5

-- TMP-Bild löschen
do shell script ("rm -f " & quoted form of POSIX path of (zielPfad & ".jpg"))

You are welcome ;-)

Viele Grüße
 
Zurück
Oben Unten