Forenindex » Programmierung/Entwicklung » AppleScript » Acrobat Distiller skripten

Acrobat Distiller skripten

Goar
Beiträge gesamt: 395

20. Mai 2003, 09:36
Bewertung:

gelesen: 3269

Beitrag als Lesezeichen
Hallo Forum,

im Funktionsverzeichnis des Acrobat Distiller 4.05 findet sich u.a.
Code
  [destination  alias]  -- For each document specified, you may optionally specify the output file. 

Ich vermute, dass damit Name und Ablageort der pdf-Datei bestimmt werden können.

Nur ist mir als Anfänger nicht klar, mit welcher Syntax ich diesen Ausdruck ins Skript einbringe. Mehrere Versuche führten zu Fehlermeldungen bzw. keiner Reaktion.

Provisorisch helfe ich mir mit dem "move"-Befehl, aber eine Lösung gleich über den Distiller wäre mir lieber.
Kennt sich jemand damit aus?

Gruß, Goar

Acrobat Distiller skripten

Hans Haesler
  
Beiträge gesamt: 5826

20. Mai 2003, 22:11
Bewertung:

gelesen: 3268

Beitrag als Lesezeichen
Hallo Goar,

der "move"-Befehl ist schon mal okay. Denn damit verschiebst Du die Datei in den In-Ordner des Distillers.
Ich werde mir aber die Sache morgen näher anschauen und melde mich dann wieder.

Hans Haesler, hsa@ringier.ch

Acrobat Distiller skripten

Hans Haesler
  
Beiträge gesamt: 5826

21. Mai 2003, 10:40
Bewertung:

gelesen: 3268

Beitrag als Lesezeichen
Hallo Goar,

die Option '[destination alias]' gehört zum 'open'-Befehl des Distillers. Mit 'destination' ist der Pfad der
PostScript-Datei gemeint. Dieser Pfad kann durch einen Dialog mit 'choose folder' ermittelt werden.

So wird das Distillen der PostScript-Datei ausgelöst:
---
DistillFile(FilePath)

on DistillFile(FilePath)
  tell application "Acrobat™ Distiller™ 4.0"
    open alias FilePath
  end tell
end DistillFile
---

Ich werde Dir ein kommentiertes Script senden (es ist zu umfangreich, um hier veröffentlicht zu werden), welches
wahlweise PS oder PS und PDF erzeugt.

Hans Haesler, hsa@ringier.ch

Acrobat Distiller skripten

Goar
Beiträge gesamt: 395

27. Mai 2003, 15:41
Bewertung:

gelesen: 3268

Beitrag als Lesezeichen
Hallo Hans,

im Zusammenhang mit dem Distiller habe ich im Web eine 'Technical Note #5158, Version: Acrobat 5.0' (ein pdf von Adobe) gefunden, in dem die verschiedenen Elemente aus der Core Suite beschrieben waren. Interessanterweise beginnt das Beispielskript:
Code
tell application "Acrobat™ Distiller™ 4.0" 

danach sollte es mit 'destination alias' möglich sein, den Ablagepfad - optional sogar den Dateinamen - für das erzeugte pdf vorzugeben. Den Pfad zur PS-Datei legt man doch schon mit 'open alias'. Auszug aus dem 'offiziellen' Muster:
Code
open "report.ps" destination "mayreport.pdf" 

Auch sollte es mit 'joboptions alias' möglich sein, die für die Dokumente der Liste zu verwendende .joboptions-Datei vorzugeben.

Mit diesen beiden und einigen der Befehle, die die Sicherheitseinstellungen des pdf betreffen, habe ich ein wenig herumprobiert.
Die Sicherheitseinstellungen, die ich getestet hatte, wurden alle ordnungsgemäß ausgeführt …
Code
open psFile changepassword "Test" without changing, selecting, notechanging and wait 

… der Test mit 'ordPDF' als Pfad zum Ablageordner für die pdf …
Code
open psFile destination ordPDF 

… brachte die Rückmeldung 'Bad name for file. some object' (ordPDF als alias). Die gleiche Zeile brachte die Rückmeldung 'Can't make some data into the expected type.' (ordPDF als string).
Der weitere Versuch mit 'pdfFile' als kompletter Pfad zum Ablageordner incl. Dateiname …
Code
open psFile destination pdfFile 

… brachte die Rückmeldung 'Can't make some data into the expected type.' (ordPDF als string). Die gleiche Zeile brachte die Rückmeldung 'File Macintosh HD:…:d200d.pdf wasn't found. (ordPDF als alias). Natürlich konnte diese Datei nicht gefunden werden, da sie erst angelegt werden soll. Interessanterweise klappte diese Version, wenn sich bereits ein pdf mit diesem Namen im Ablageordner befand, das wurde dann überschrieben.
Mit den Joboptions versuchte ich es so (distPfad ist der komplette Pfad zur .joboptions-Datei):
Code
open psFile joboptions distPfad 

… mit der von mir meistgehassten Rückmeldung 'Can't make some data into the expected type.'


Anzumerken wäre vielleicht noch Folgendes: Skripteditor kann ja auch zum Aufzeichnen von Makros verwendet werden. Alle meine Versuche, im Zusammenhang mit Distiller etwas aufzuzeichnen, schlugen fehl: Der Skripteditor blieb immer leer. Gegenproben brachten plausible Ergebnisse. Fällt dazu jemandem etwas ein?

Ich spiele mit dem Gedanken, einen Beitrag in das Forum von Adobe zu setzen. Aber ich fürchte, dieses Problem haben die dort nicht vorgesehen.

Gruß, Goar

Acrobat Distiller skripten

Hans Haesler
  
Beiträge gesamt: 5826

27. Mai 2003, 21:16
Bewertung:

gelesen: 3268

Beitrag als Lesezeichen
Hallo Goar,

Deine Beobachtungen sind alle recht ausführlich, aber zuwenig transparent. Wie werden die Pfade 'psFile', 'ordPDF',
'pdfFile' und 'distPfad' zusammengesetzt? Geschieht dies innerhalb oder ausserhalb eines 'tell application'-Blocks?
Wird 'as alias' am Anfang oder am Schluss der Befehlszeile eingesetzt?

Ja, der Skripteditor hat einen Button zum Aufzeichnen. Aber wenn die adressierte Applikation nicht dafür vorgesehen ist,
dann geschieht... nichts. Ist auch besser so. Denn: intelligentes Error-Handling lässt sich nicht aufzeichnen.

Gute Idee, der Beitrag im Adobe-Forum. Aber bitte mit kompletteren Angaben. Und englischen Namen für die Variablen.
Statt 'ordPDF' vielleicht 'fldrPDF'. Was ein Ordner ist, weiss kaum ein Teilnehmer. Aber 'folder' kennen alle...

Hans Haesler, hsa@ringier.ch

Acrobat Distiller skripten

Goar
Beiträge gesamt: 395

3. Jun 2003, 11:10
Bewertung:

gelesen: 3268

Beitrag als Lesezeichen
Hallo Hans,

Deine Geduld tut gut. Manchmal spare ich an der falschen Stelle, und dann nützt es auch nichts.

Dies ist das komplette Script, in dem ich die o.g. Funktionen getestet habe. Es ist eine Auslagerung aus dem großen XPress->ps->pdf-Script, und dient nur dem Zweck, die fraglichen Funktionen ohne weiteres Brimborium zu klären. Die Pfade habe ich für diesen Forumsbeitrag gekürzt.
---
on run
  set distPfad to "Macintosh HDns (Mac OS 9):Adobe Acrobat 4.0:Distiller:Settings:"
  set d to distPfad & "Bildschirm(1).joboptions"
  set p to distPfad & "Color-Druck.joboptions"
  set psFile to "Macintosh HD:Users:goar:Documents:TricAS:ps_Dateien_e:d200d.ps" as alias
  set ordPDF to "Macintosh HD:Users:goar:Documents:TricAS:pdf_Dateien_e:" as string -- alternativ 'as alias'
  set pdfFile to "Macintosh HD:Users:goar:Documents:TricAS:pdf_Dateien_e:d200d.pdf" as alias -- alternativ 'as string'
  set jobOptID to d
 
  tell application "Acrobat™ Distiller™ 4.05"
      open psFile destination pdfFile -- Testzeile
  end tell
end run
Code
Und das sind die kommentierten Testzeilen die ich in einer Kommentarklammer unterhalb des Scriptes gesammelt habe: 

(*
geht:
• open psFile
• open psFile with wait
• open psFile changepassword "Test"
• open psFile changepassword "Test" without changing and selecting
• open psFile changepassword "Test" without changing, selecting and notechanging
• open psFile changepassword "Test" without changing, selecting, notechanging and wait
• open psFile destination pdfFile
–> das geht aber nur, wenn in dem Zielordner bereits eine Datei liegt wie in pdfFile definiert; und pdfFile als alias

geht nicht:
• open psFile destination ordPDF
-> Bad name for file. some object •• der Ablageordner als Pfad ohne Dateiname wird nicht akzeptiert (ordPDF als alias)
-> Can't make some data into the expected type. •• ordPDF als string
• open psFile destination pdfFile -- die in pdfFile definierte Datei gibt es noch nicht, soll ja auch erst so angelegt werden
-> Can't make some data into the expected type. •• pdfFile als string
-> File Macintosh HD:…:pdf_Dateien_e:d200d.pdf wasn't found. •• pdfFile als alias (stimmt, gibts ja gar nicht)
•  open psFile joboptions distPfad
-> Can't make some data into the expected type.
• open p
-> Can't make some data into the expected type. •• kann man nachvollziehen
*)
---
Im großen Script werden die Pfade per choose-Befehl und Anhängen (&) von Pfadelementen erzeugt. Aber das scheint mir hier nicht das Problem zu sein, zumal die Rückmeldungen auf dieses Script kamen.

Acrobat Distiller skripten

Hans Haesler
  
Beiträge gesamt: 5826

3. Jun 2003, 12:04
Bewertung:

gelesen: 3268

Beitrag als Lesezeichen
Hallo Goar,

ich würde 'destination' vergessen und statt dessen den Ziel-Pfad-Namen zusammensetzen:
Code
set psFile to "Macintosh HD:Users:goar:Documents:TricAS:pdf_Dateien_e:d200d.ps" 

Übrigens: 'as string' ist nicht notwendig, weil dies schon eine Textkette ist.

Mit XPress die PS-Datei in diesem Zielordner erzeugen und dann den Distiller aufrufen...
---
tell application "Acrobat™ Distiller™ 4.0"
  open psFile as alias
end tell
---
... und die PS-Datei wird in ein PDF verwandelt.

Hans Haesler, hsa@ringier.ch