[GastForen Programmierung/Entwicklung AppleScript Batch-PS-Print (Quark 6.1) - fehlende Bilder/file exist

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Batch-PS-Print (Quark 6.1) - fehlende Bilder/file exist

Anonym
Beiträge gesamt: 22827

28. Okt 2004, 07:30
Beitrag # 1 von 7
Bewertung:
(1645 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ich habe in Applescript Studio ein "Batch-PS-Print"-Programm für Quark 6.1 geschrieben.
Es können per drag and drop einzelne Quark-Dokumente oder aber auch komplette Ordner in einem TableView abgelegt werden.
Sobald ein Ordner in dem TableView abgelegt wird werden nur die darin enthaltenen QuarkDokumente aufgelistet (Subfolder werden auch durchsucht)

Danach können noch verschiedene Einstellungen getroffen werden, wie z.B. paper size, bleeds, ps-name usw.

Und zum Schluss werden Einzelseiten-PS erzeugt.....

Nun zu meinen Problemen:
1.) Zur Zeit gibt es keine Fehlermeldung wenn ein Bild fehlt.
Wie kann ich das aktuelle Dokument nach fehlenden Bildern abfragen.
Sobald ein Bild den Status fehlt hat, soll das QuarkDokument nicht mehr weiterbearbeitet werden und in einen Ordner "Error" kopiert werden.


2.) wie kann ich kontollieren, ob sich filePath schon im Ausgabeordner "theFolder" befindet? Wenn ja, soll der neue Dateiname automatisch numeriert werden, wie z.B.
Dokument.ps -> if exist in theFolder -> neue Name: Dokument1.ps

anbei meine zwei Zeilen aus dem Script:
set filePath to ((theFolder as string) & ausgabe & "_" & fileNum & ".ps")
print PostScript file filePath


Vielen Dank für Eure Hilfe im Voraus!
X

Batch-PS-Print (Quark 6.1) - fehlende Bilder/file exist

Hans Haesler
  
Beiträge gesamt: 5826

28. Okt 2004, 10:37
Beitrag # 2 von 7
Beitrag ID: #419173
Bewertung:
(1644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo mikelchris,

willkommen im Forum! :-)

Zu 1.): Es sollte auch nach modifizierten Bildern gefahndet werden. Man könnte in einer Wiederholschleife die Bildboxen
eine nach der anderen besuchen. Aber weil uns nur interessiert, ob alles okay ist, kann man eine schnellere Methode anwenden.

Kurze Erklärung des Scripts. Die Variablen 'missList' und 'modList' werden als leer definiert. Dann wird jedes Bild gebeten,
den 'missing'- und den 'modified'-Status in die entsprechende Liste zu setzen. Im Test wird geprüft, ob eine der Listen das
Element 'true' enthält. Ist dies der Fall, dann kann eventuell der Name des Projekts in eine Rapportdatei geschrieben werden.
Sonst wird grünes Licht zum Printen gegeben. Die beiden 'set msg to'-Zeilen sind nur zum Testen da, damit das Resultat in der
Ergebnisöffnung erscheint.
---
tell document 1 of application "QuarkXPress 6.1"
  set missList to {}
  set modList to {}
  try
    tell every picture box
      set missList to missing of every image
      set modList to modified of every image
    end tell
  end try
  if missList contains true or modList contains true then
    -- den Namen des Projekts in eine Rapportdatei schreiben
    set msg to "No good."
  else
    -- den Befehl zum Printen geben
    set msg to "Okay."
  end if
end tell
---

Zu 2.): Man sieht immer wieder Scripts, welche in diesem Fall den Finder einsetzen (if exists ...). Aber es gibt eine schnellere
Methode. Versuchen, ob ein Alias der Datei bekannt ist. Wenn ein Fehler generiert wird, dann ist alles okay, das heisst die Datei
existiert noch nicht. Die Numerierung ist etwas schwieriger.

Kurze Erklärung des Scripts. Zu Beginn den Pfad zum Zielordner in einen String verwandeln, damit dies nicht in der Wiederholschleife
gemacht werden muss. Tip: Vermeiden, Variablen mit 'the' oder 'my' zu beginnen. Das sind reservierte Wörter. Wenn mal versehentlich
ein Zwischenraum hineingerät, geht nichts mehr.

Die Zählervariable 'ctr' wird auf Null gesetzt. Die Variable 'okay' auf 'false'. In einer Repeatschleife wird geprüft, ob 'ctr' Null ist.
Wenn ja, wird der Pfad zusammengesetzt. Im 'try wrapper' wird das Vorhandensein der Datei getestet. Wenn sie nicht existiert,
dann ergibt das einen Fehler, das 'okay' wird auf 'true' gesetzt, die Schleife verlassen, der Befehl zum Printen wird gegeben.
Wenn aber schon eine gleichnamige Datei existiert, dann wird kein Fehler erzeugt, das 'okay' bleibt auf 'false', der Wert des Zählers
wird um eins erhöht, der Pfad wird zusammengesetzt, das Vorhandensein wird geprüft usw.
---
set folderPath to theFolder as string
set ctr to 0
set okay to false
repeat while okay is false
  if ctr is 0 then
    set filePath to (folderPath & ausgabe & "_" & fileNum & ".ps")
  else
    set filePath to (folderPath & ausgabe & "_" & fileNum & ctr & ".ps")
  end if
  try
    alias filePath
  on error
    set okay to true
  end try
  set ctr to ctr + 1
end repeat
print PostScript file filePath
---
Viel Spass!

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#419172]

Batch-PS-Print (Quark 6.1) - fehlende Bilder/file exist

Anonym
Beiträge gesamt: 22827

28. Okt 2004, 10:55
Beitrag # 3 von 7
Beitrag ID: #419174
Bewertung:
(1644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank für die schnelle Antwort! :-)
Ich bin total begeistert, dass ich endlich ein Forum gefunden habe, wo einem weitergeholfen wird.......

Ich werde mich gleich mal an die Arbeit machen und mein Programm weiterschreiben.


als Antwort auf: [#419172]

Batch-PS-Print (Quark 6.1) - fehlende Bilder/file exist

Anonym
Beiträge gesamt: 22827

28. Okt 2004, 11:50
Beitrag # 4 von 7
Beitrag ID: #419175
Bewertung:
(1644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Haesler,
das mit der "Bildstatus-Kontrolle" funktioniert einwandfrei.
Vielen Dank dafür!!!!

Doch allerdings mit dem "if file exist-script" habe ich ein Problem.
Es wird kein neuer Dateiname vergeben - bereits existierende Dateien im Ordner "folderPath" werden einfach überschrieben.

[code:1]script saveAsPS
 tell application "QuarkXPress Passport"
  try
   tell document 1
    try
     tell page p
      set pageName to name
      set fileNum to text -3 thru -1 of &#40;"00" & pageName&#41;
      set folderPath to theFolder as string
      set ctr to 0
      set okay to false
      repeat while okay is false
       if ctr is 0 then
        set filePath to &#40;folderPath & ausgabe & "_" & fileNum & ".ps"&#41;
       else
        set filePath to &#40;folderPath & ausgabe & "_" & fileNum & ctr & ".ps"&#41;
       end if
       try
        alias filePath
       on error
        set okay to true
       end try
       set ctr to ctr + 1
      end repeat
      print PostScript file filePath
     
     end tell
    end try
   end tell
  end try
 end tell
end script
[/code:1]


als Antwort auf: [#419172]

Batch-PS-Print (Quark 6.1) - fehlende Bilder/file exist

Hans Haesler
  
Beiträge gesamt: 5826

28. Okt 2004, 12:28
Beitrag # 5 von 7
Beitrag ID: #419176
Bewertung:
(1644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo mikelchris,

das zweite Script habe ich aus Zeitgründen nicht getestet, sondern nur theoretisch durchgespielt.
Sonst hätte ich gemerkt, dass der Test in einem Handler ausserhalb der XPress-Schleife gemacht werden muss.
Das heisst, den 'try wrapper' durch diese Zeile ersetzen:
Code
set okay to my existsFile(filePath) 

Und ausserhalb des Script-Objekts diesen Handler einsetzen.
---
on existsFile(filePath)
  try
    alias filePath
    set okay to false
  on error
    set okay to true
  end try
end existsFile
---
So sollte es funktionieren.

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#419172]

Batch-PS-Print (Quark 6.1) - fehlende Bilder/file exist

Anonym
Beiträge gesamt: 22827

28. Okt 2004, 12:50
Beitrag # 6 von 7
Beitrag ID: #419177
Bewertung:
(1644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
es funktioniert!:lol:

Vielen Dank!


als Antwort auf: [#419172]

Batch-PS-Print (Quark 6.1) - fehlende Bilder/file exist

Hans Haesler
  
Beiträge gesamt: 5826

28. Okt 2004, 14:14
Beitrag # 7 von 7
Beitrag ID: #419178
Bewertung:
(1644 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo mikelchris,

bitteschön. Wunderbar, dass es klappt.

Übrigens: Dein Projekt hört sich vielversprechend an. Ich muss nächstens
Zeit finden, um mich mit dem Studium von AppleScript Studio zu befassen.

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#419172]
X