[GastForen Programmierung/Entwicklung AppleScript InDesign öffnen ohne Meldungen ...

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

InDesign öffnen ohne Meldungen ...

swish
Beiträge gesamt: 75

14. Jun 2005, 08:27
Beitrag # 1 von 6
Bewertung:
(1710 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Leutz,
    (besonders Hi Hans,)

ich habe ein Miniskript für InDesign gebastelt, welches mir einfach alle Namen der Links in eine Textdatei schreibt.

Alles gut, allerdings möchte ich jetzt gerne die ganzen Fehlermeldungen NICHT angezeigt bekommen. (z.B. fehlende Schriften, fehlende Links ...), damit ich auch Stapelverarbeitungen mit dem Droplet starten kann.

Hat da jemand eine Idee ?

Gruß,
Stephan

PS: OS 10.4.1, InDesign 3.01
----

Das Skript bisher (und die siehst Hans, ich hab einige Deiner Bausteine verbastelt).


property Schreibtisch : path to desktop
property BildinfoFile : Schreibtisch & "Bildliste.txt" as string
property imgList : {}

on open DroppedObjects
 repeat with aDoc in DroppedObjects
  makeList(aDoc)
 end repeat
end open

on makeList(aDoc)
 tell application "InDesign CS"
 
  open aDoc as alias
 
  tell document 1
   set imgList to the name of every link
  end tell
 
  if imgList = {} then
   set AppleScript's text item delimiters to {""}
   display dialog "Dieses Dokument enthält keine Bilder." buttons "OK" default button 1 with icon 0
   error number -128
  end if
 
  if (count of imgList) > 1 then
   my quicksort(imgList, 1, length of imgList)
  end if
  set AppleScript's text item delimiters to return
  set aString to text items of imgList as text
  set AppleScript's text item delimiters to {""}
  my writeList(aString)
 
  tell document 1
   close
  end tell
 
 end tell
end makeList


on writeList(aString)
 -- display dialog aString
 --tell application "Finder"
 set GIBTSNICHT to false
 set BildinfoFile to ((path to desktop) as Unicode text) & "BildinfoIndd.txt"
 tell application "Finder"
  if not (exists file BildinfoFile) then
   set GIBTSNICHT to true
  end if
 end tell
 
 if GIBTSNICHT then
  open for access file BildinfoFile with write permission
  set eof of file BildinfoFile to 0
 else
  open for access file BildinfoFile with write permission
 
 end if
 
 write aString to file BildinfoFile starting at eof
 write return to file BildinfoFile starting at eof
 close access file BildinfoFile
 
 
end writeList

on quicksort(a, L, R)
 set i to L
 set n to R
 set aRef to item L of a as text
 repeat while i < n
  repeat while (aRef < item n of a) and (i < n)
   set n to n - 1
  end repeat
  if n is not i then
   set item i of a to item n of a
   set i to i + 1
  end if
  repeat while (aRef > item i of a) and (i < n)
   set i to i + 1
  end repeat
  if n is not i then
   set item n of a to item i of a
   set n to n - 1
  end if
 end repeat
 set item n of a to aRef
 if L < n then
  quicksort(a, L, n - 1)
 end if
 if R > i then
  quicksort(a, i + 1, R)
 end if
 return a
end quicksort
X

InDesign öffnen ohne Meldungen ...

Hans Haesler
  
Beiträge gesamt: 5816

14. Jun 2005, 09:52
Beitrag # 2 von 6
Beitrag ID: #419764
Bewertung:
(1710 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Stephan,

where have you been?!?

Dir schwebt sicher eine Ergänzung des Öffnen-Befehls vor. Ungefähr so wie mit QuarkXPress, wo durch
'remap fonts no do auto picture import no' die Dialoge unterdrückt werden.

Mit InDesign muss man anders vorgehen. Es gibt den feinen Zusatz without showing window.
Dadurch wird das Dokument unsichtbar geöffnet. Die Ausführung eventueller Script-Aktionen wird
beschleunigt. Nicht spektakulär, aber immerhin. Als willkommener Nebeneffekt werden die Dialoge
betreffend fehlender/modifizierter Bilder und/oder fehlender Schriften ebenfalls unterdrückt:
Code
open aDoc [b]as alias [b]without showing window 

Wichtig ist, dass man den Befehl zum Schliessen des Dokuments nicht vergisst.

Wenn man das Dokument nach dem Öffnen sichtbar machen möchte, dann kann man einer Variablen den
Öffnen-Befehl zuweisen und sie dann benutzen, um mit 'make window' das Dokument zu zeigen:
---
set aDoc to (choose file of type "IDd3") as string
tell application "InDesign CS"
   activate
   set aDocument to open aDoc as alias without showing window
   -- hier nach Bedarf weitere Befehle einfügen
   tell aDocument to make window
end tell

---

Ja, ich erkenne ein paar Code-Teile. Aber der 'write'-Handler ist nicht von mir. Er könnte gestrafft
werden. Und immer einen 'try'-Wickel verwenden und im 'on error'-Teil einen zweiten, damit bei einem
Problem des Schliessens der Datei keine Fehlermeldung gezeigt wird. Den Return würde ich oben an
'aString' anhängen. Damit vermeidet man einen zweiten Schreibbefehl.
---
on writeList(aString)
   set BildinfoFile to (Schreibtisch as string) & "BildinfoIndd.txt"
   try
      open for access file BildinfoFile with write permission
      write aString to file BildinfoFile starting at eof
      close access file BildinfoFile
   on error
      try
         close access file BildinfoFile
      end try
   end try
end writeList

---
Es ist nicht notwendig, zu prüfen, ob die Datei schon besteht. Wenn nicht, wird sie automatisch erzeugt.

Hast Du auch versucht, die Pfade aufzulisten?

Gruss, Hans


als Antwort auf: [#419763]

InDesign öffnen ohne Meldungen ...

swish
Beiträge gesamt: 75

14. Jun 2005, 10:03
Beitrag # 3 von 6
Beitrag ID: #419765
Bewertung:
(1709 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Schonmal wieder vielen Dank !!!

(where have I been ?!  - ich war kurz im vereinten königreich, hatte dann die endlich mal die möglichkeit ein paar überstunden abzufeiern ... bin jetzt aber wieder frisch und voller elan dabei =;o) )

die pfade aus dem InDesign Dok wären natürlich für so Sachen wie OPI-finden gar nicht mal so schlecht ... Gibt's da was einfaches ?

Gruß,

Stephan


als Antwort auf: [#419763]

InDesign öffnen ohne Meldungen ...

Hans Haesler
  
Beiträge gesamt: 5816

14. Jun 2005, 10:49
Beitrag # 4 von 6
Beitrag ID: #419766
Bewertung:
(1709 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Stephan,

ja, da gibt's etwas einfaches. Statt 'name' musst Du 'file path' verwenden. Dann werden die Pfade in die
Liste gesetzt, aber als Dateispezifikation, mit 'file' zu Beginn:
Code
file "Macintosh HD:Users:username:Documents:Ordner1:Ordner2:dateiname.eps" 

Wenn man die reinen Pfade haben möchte, dann müssen die Elemente der Liste in Strings verwandelt werden.

Aufgepasst: Eine fehlende Datei vereitelt das Bilden der Liste. Deshalb muss man den Befehl mit dem Zusatz
'whose status is not link missing' ergänzen. Bei fehlenden Bildern kann man nur den Namen erhalten
(dieses Problem ist in Indesign CS2 behoben).

Wenn ein Dokument verlinkte Textdateien enthält, dann kann man diese mit 'whose needed is true' ausfiltern.
---
set aDoc to (choose file of type "IDd3") as string
tell application "InDesign CS"
   open aDoc as alias without showing window
   set imgList to {}
   tell document 1
      try
         set imgList to file path of every link whose needed is true and status is not link missing
      end try
   end tell
   close document 1 saving no
   set imgString to ""
   if imgList is not {} then
      set AppleScript's text item delimiters to {return}
      set imgString to every text item of imgList as string
      set AppleScript's text item delimiters to {""}
   end if
   imgString
end tell

---
Gruss, Hans


als Antwort auf: [#419763]

InDesign öffnen ohne Meldungen ...

Anonym
Beiträge gesamt: 22827

4. Jul 2005, 18:32
Beitrag # 5 von 6
Beitrag ID: #419767
Bewertung:
(1709 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

für InDesign gibt es noch ein schönes application property:

user interaction level never interact
/interact with all/interact with self/interact with local
-- How to interact with the user (displaying dialogs/alerts)

Bisher habe ich nur never interact verwendet, die Bedeutung der anderen Abstufungen (interact with all/interact with self/interact with local) ist mir noch nicht klar!


als Antwort auf: [#419763]

InDesign öffnen ohne Meldungen ...

Hans Haesler
  
Beiträge gesamt: 5816

5. Jul 2005, 08:56
Beitrag # 6 von 6
Beitrag ID: #419768
Bewertung:
(1709 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

interact with self begrenzt die Anzeige von Dialogen auf Scripts, welche ab Script-Menü gestartet werden.

interact with local zeigt alle Dialoge von Scripts, welche auf dem lokalen Rechner ausgeführt werden.
Aber wenn ein Script einen Befehl zu einer anderen Maschine schickt, wird mit diesem 'interaction level'
verhindert, dass an einem unbesetzen Arbeitsplatz ein Dialog den Ablauf des Scripts stoppt.

interact with all dient zum Zurücksetzen auf den Default-Zustand.

Gruss, Hans


als Antwort auf: [#419763]
X

Aktuell

PDF / Print
Wolken_300

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/