[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt AppleScript mit place Image on rectangle

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

AppleScript mit place Image on rectangle

marka17
Beiträge gesamt: 47

13. Jun 2017, 17:03
Beitrag # 1 von 10
Bewertung:
(5861 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich habe ein bestehendes Applescript, das ehemals für Indesign CS5.5 genutzt wurde und für CS6 nicht mehr funktioniert.

Es liest eine Inputdatei mit den Pfadnamen von verschiedenen PDF-Datein, um diese in einem ID-Dokument mit vorgefertigen Musterseiten in bestehende Bildrahmen zu platzieren. Die Inputdatei sieht so aus:

Musterseite:01-210x297@1
SSD:Users:prepress:Desktop:platzhalter.pdf
Schwarz@


Bisher hat das mit

Code
tell rectangle bildboxname 
place bildboxpfad
end tell


funktioniert.

Jetzt kommt an dieser Stelle folgende Fehlermeldung:

error "„Adobe InDesign CS6“ hat einen Fehler erhalten: \"SSD:Users:test:Desktop:platzhalter.pdf\" versteht die Nachricht „place“ nicht." number -1708 from "SSD:Users:test:Desktop:platzhalter.pdf"

wenn ich den code wie folgt ändere:

Code
tell rectangle bildboxname	 
place (bildboxpfad) as alias
end tell


gibt es den Fehler:

error "„Adobe InDesign CS6“ hat einen Fehler erhalten: „alias \"SSD:Users:test:Desktop:platzhalter.pdf\"“ kann nicht gelesen werden." number -1728 from alias "SSD:Users:test:Desktop:platzhalter.pdf"

Der Pfad stimmt und die Datei ist da auch vorhanden.

Wenn ich kein rectangle aus der Musterseite nehme, sondern mit dem Skript ein neues setzte klappt das Platzieren:

Code
set myRectangle to make rectangle with properties {geometric bounds:{-3, -3, 300, 210}} 
set myPlacedPDF1 to place bildboxpfad as alias on myRectangle



Das ganze Skript ist über 200 Zeilen lang. Wenn jemand helfen könnte wäre das toll. Das ganze Skript gibt es hier: http://guidestar.de/IDSkript.txt

Der Bildplatzierungsteil spielt sich bei Zeile 217 ab.

Ich blick's nicht mehr.

Danke und viele Grüße

Mark
Hier Klicken X

AppleScript mit place Image on rectangle

TMA
Beiträge gesamt: 353

14. Jun 2017, 07:44
Beitrag # 2 von 10
Beitrag ID: #558018
Bewertung:
(5826 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mark,
ab CS6 mache ich das immer so und funktioniert auch:
Code
place file (theFile as string) 


Probiere das mal bitte aus:
Code
set myPlacedPDF1 to place file (bildboxpfad as string) on myRectangle 


Gruß,
TMA


als Antwort auf: [#558006]

AppleScript mit place Image on rectangle

marka17
Beiträge gesamt: 47

14. Jun 2017, 08:55
Beitrag # 3 von 10
Beitrag ID: #558022
Bewertung:
(5813 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo TMA

ich hab's mal geändert auf

Code
tell rectangle bildboxname 
place file (bildboxpfad as string)


Leider funktioniert es nicht. Die Fehlermeldung hat sich ein klein wenig geändert auf:

error "„Adobe InDesign CS6“ hat einen Fehler erhalten: „file \"SSD:Users:test:Desktop:platzhalter.pdf\" of rectangle \"B01\" of page id 10713 of spread id 10706 of document id 1“ kann nicht gelesen werden." number -1728 from file "SSD:Users:test:Desktop:platzhalter.pdf" of rectangle "B01" of page id 10713 of spread id 10706 of document id 1

Zumindest scheint jetzt der Verweis auf den bestehenden Rahmen zu funktionieren. Aber eigentlich ist doch die Pfadangabe mit Doppelpunkten ein alias-Format. Kann das dann funktionieren?


Und
Code
set myPlacedPDF1 to place file (bildboxpfad as string) on bildboxname 


führt wieder zu:

„Adobe InDesign CS6“ hat einen Fehler erhalten: file "SSD:Users:test:Desktop:platzhalter.pdf" of page id 10789 of spread id 10782 of document id 2 versteht die Nachricht „place“ nicht.
Grüße

Mark


als Antwort auf: [#558018]
(Dieser Beitrag wurde von marka17 am 14. Jun 2017, 09:02 geändert)

AppleScript mit place Image on rectangle

TMA
Beiträge gesamt: 353

14. Jun 2017, 09:29
Beitrag # 4 von 10
Beitrag ID: #558024
Bewertung:
(5804 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So wie es scheint, hast du nicht die Reference zum Rahmenobjekt.

Erstelle mal bitte ein neues InDesign Dokument mit EINEM Rahmen und führe folgendes Script mal aus. Dateipfad musst du natürlich noch anpassen.

Code
set fileToPlace to alias "Macintosh HD:Users:tma:Desktop:test.jpg" 

tell application id "com.adobe.InDesign"
tell front document
place file (fileToPlace as string) on rectangle 1
end tell
end tell


Das sollte bei dir auch funktionieren.

Gruß,
TMA


als Antwort auf: [#558022]

AppleScript mit place Image on rectangle

marka17
Beiträge gesamt: 47

14. Jun 2017, 10:16
Beitrag # 5 von 10
Beitrag ID: #558029
Bewertung:
(5791 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ja, das funktioniert bei mir auch. Ich schrieb ja am Anfang schon:

Zitat Wenn ich kein rectangle aus der Musterseite nehme, sondern mit dem Skript ein neues setzte klappt das Platzieren


Aber wenn die Referenz zum Rahmenobjekt fehlt, warum bekomme ich dann

error "„Adobe InDesign CS6“ hat einen Fehler erhalten: „file \"SSD:Users:test:Desktop:platzhalter.pdf\" of rectangle \"B01\" of page id 10713 of spread id 10706 of document id 1“ kann nicht gelesen werden."

das er das file nicht lesen kann?

Der Labelname des Rahmens B01 der in der Fehlermeldung angegeben wird, stimmt mit dem Label für den Rahmen auf der Musterseite des ID-Dokumentes überein. Hm..


als Antwort auf: [#558024]

AppleScript mit place Image on rectangle

TMA
Beiträge gesamt: 353

14. Jun 2017, 10:39
Beitrag # 6 von 10
Beitrag ID: #558031
Bewertung:
(5784 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kann es evtl sein das der deinen Rahmen anhand des Namens nicht kennt bzw zuordnen kann?

Was passiert denn wenn du den Rahmen einfach mal selektierst?

Code
select rectangle \"B01\" of page id 10713 of spread id 10706 of document id 1 


Danach das Script einfach mal abbrechen lassen mit:
error code -128
falls es nicht vorher schon abbricht.

Soweit ich weiß bekommen Rahmen auch eine neue ID wenn sie von der Musterseite überschrieben werden (override).

Du kannst auch den Boxen ein Scriptetikett geben (label), auch zu finden in der Scriptpalette wenn es über den Namen nicht funktioniert.

Dann kann man sich z.B. so die Objekte holen:
Code
select (every page item of spread 1 whose label = "deinString") 


Evtl hilft dir das weiter.

Gruß,
TMA


als Antwort auf: [#558029]

AppleScript mit place Image on rectangle

Dirk Becker
Beiträge gesamt: 163

20. Jun 2017, 23:16
Beitrag # 7 von 10
Beitrag ID: #558147
Bewertung:
(5611 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Mark,

probier mal das leicht überarbeitete Script aus:

Code
on run 
tell application "Finder"
set todoFile to a reference to file "todo.txt" of folder "todo" of desktop
set dirk to exists todoFile
if not dirk then
set todoFile to choose file with prompt "Wählen Sie eine Steuerdatei aus:"
end if

set todoAccess to open for access (todoFile as alias)
set todoText to read todoAccess as «class utf8»
close access todoAccess

set AppleScript's text item delimiters to "Musterseite:"
set todoItems to rest of text items of todoText

tell application id "com.adobe.indesign"
if not (exists active document) then
display dialog "Bitte öffnen Sie eine enstprechende Musterseite" buttons {"Ende"}
return
end if
tell active document
repeat with todoItem in todoItems
set AppleScript's text item delimiters to ASCII character 10
set zeilen to text items of todoItem
set zeile1 to item 1 of zeilen
set zeilen to rest of zeilen

set AppleScript's text item delimiters to "@"
set Musterseite to first text item of zeile1
set Seitenzahl to second text item of zeile1

set masterSpread to master spread Musterseite
set newPage to make page at end with properties {applied master:masterSpread}
tell newPage
set n to index of newPage
set pageItems to override page items of page n of masterSpread destination page newPage
repeat with pageItem in pageItems
if name of pageItem is "" then set name of pageItem to label of pageItem
end repeat

if exists text frame "Seitenzahl" then
set contents of text frame "Seitenzahl" to Seitenzahl
end if

set n to 1
repeat while (count zeilen) > 2
set pfad to item 1 of zeilen
set zeile2 to item 2 of zeilen
set zeilen to rest of rest of zeilen

set AppleScript's text item delimiters to "@"
set farbe to first text item of zeile2
set inhalt to second text item of zeile2

set nn to n
if n < 10 then set nn to "0" & n
set Bnn to "B" & nn
set Tnn to "T" & nn

try
tell rectangle Bnn to place (pfad as alias)
end try
try
tell text frame Tnn
set contents to inhalt
set fill color to farbe
end tell
end try
set n to n + 1
end repeat
end tell -- page
end repeat -- pages
if not dirk then
delete page 1
display dialog ("Satzvorgang abgeschlossen!") buttons {"OK"}
end if
end tell -- document
end tell -- InDesign
end tell
set AppleScript's text item delimiters to {}
end run



als Antwort auf: [#558031]

AppleScript mit place Image on rectangle

marka17
Beiträge gesamt: 47

21. Jun 2017, 12:10
Beitrag # 8 von 10
Beitrag ID: #558156
Bewertung:
(5580 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Dirk,


wow, vielen Dank. Das funktioniert. Jetzt muß ich das mal analysieren und versuchen zu verstehen.

Viele Grüße

Mark


als Antwort auf: [#558147]

AppleScript mit place Image on rectangle

marka17
Beiträge gesamt: 47

21. Jun 2017, 12:47
Beitrag # 9 von 10
Beitrag ID: #558161
Bewertung:
(5576 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Dirk,

noch so als Nachtrag: in Deinem Satz "probier mal das leicht überarbeitete Script aus:" hätte das leicht durchaus auch in Anführungszeichen gepaßt :-)

Nochmal vielen Dank


als Antwort auf: [#558147]

AppleScript mit place Image on rectangle

Dirk Becker
Beiträge gesamt: 163

22. Jun 2017, 11:05
Beitrag # 10 von 10
Beitrag ID: #558180
Bewertung:
(5521 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,

Ihr wart ja schon ziemlich weit gekommen. Das verbleibende Problem war, dass damals von Adobe name und label auseinanderdividiert wurden und die Adressierung per Name nicht mehr wie gewohnt funktionierte - hing auch damit zusammen dass die Ebenenpalette mehr anzeigt und jetzt für die Namen zuständig ist. Das habe ich in der kleinen Schleife nach dem Kopieren der Master-Items gelöst, wo der Name gesetzt wird wenn leer. Also nicht wundern wenn Namensänderungen im Label ab jetzt nichts bewirken, das muss in der Ebenenpalette gemacht werden!

Der Rest war nur etwas aufräumen, ich hatte Probleme das gewachsene Script zu verstehen. Hoffentlich übernimmt es auch bei längeren Listen alle Bilder pro Seite, ich hatte das nur begrenzt getestet. Ggf mal mit dem ">2" probieren.

Grüße,
Dirk


als Antwort auf: [#558161]
Hier Klicken X
Hier Klicken

Aktuell

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
26.09.2018

Hochschuloe der Medien, Stuttgart
Mittwoch, 26. Sept. 2018, 19.00 - 21.00 Uhr

Vertrag

Nur auf den ersten Blick scheint dieses Thema exotisch. Aber eine neue EU-Richtlinie und deren Auswirkungen auf deutsche Gesetze werden dieses Thema auch für Publisher interessant machen. Die EU-Richtlinie "2102 zu Barrierefreiheit" besagt folgendes: Ab dem 23. September 2018 müssen alle öffentlichen Stellen ihre neuen (Office- oder PDF-) Dokumente grundsätzlich barrierefrei veröffentlichen. Im Juni wurde der Gesetzentwurf zur Umsetzung dieser Richtlinie im deutschen Bundestag vom "Ausschuss für Arbeit und Soziales" (19/2728) angenommen. Es wird also ernst für "öffentliche Stellen" und damit auch für deren Dienstleister, die mit der Umsetzung beauftragt werden. Die Richtlinie gilt nämlich nicht nur für Bundes- und Landesbehörden, sondern auch für Verbände, die im Allgemeininteresse liegende Aufgaben erfüllen. Das wären somit auch Gerichte, Polizeistellen, Krankenhäuser, Universitäten, Bibliotheken und einige mehr. Weitere Informationen findest Du hier, hier und hier. Wenn also oben genannte Auftraggeber zu Deinen Kunden zählen, solltest Du Dich vorbereiten. Und da es neben Websites auch um alle downloadbaren Dateien geht sind eben auch PDFs zukünftig barrierefrei zu erstellen. Arbeitet man in InDesign, können dort einige Vorbereitungen getroffen werden. Klaas Posselt ist der ausgewiesene Spezialist im deutschsprachigen Raum für alle Fragen rund um das Thema. Deshalb freuen wir uns, dass er uns in einem Vortrag die Grundlagen dazu vermitteln wird. Wir setzen voraus, dass Du den Umgang mit InDesign gewohnt bist, die Gründe und Vorteile von der Nutzung von Formaten kennst und weißt, wie man lange Dokumente „richtig“ aufbaut. Der Vortrag setzt bewusst DANACH ein. Inhalt des Vortrages ist der Hintergrund von „Barrierefreiheit“ und Möglichkeiten und Grenzen innerhalb von InDesign. Es wird erklärt, welche Bedeutung das kostenpflichtige PlugIn MadeToTag hat und warum und für was man es braucht. Ziel ist es den Rahmen aufzuzeigen, in dem sich das Thema „Barrierefreiheit“ in InDesign abspielt. Du weißt hinterher, wo die „Baustellen“ sind, wo Du weitergehende Infos bekommst und welchen Weg Du einschlagen musst. Am nächsten Tag veranstalten wir zwei Bootcamps, die das Thema praktisch vertiefen. "IDUGS Bootcamp #2" und "IDUGS Bootcamp #3" Klaas Posselt ist studierter Dipl.-Ing. für Druck- und Medientechnik und kam über verschiedene Anfragen zum Thema barrierefreie PDF Dokumente. Seit über 10 Jahren arbeitet er in den Bereichen Medientechnik und Publishing zwischen Medienherstellern, Druckermaschinen und digitalen Ausgabekanälen. Er schult, begleitet und unterstützt Kunden bei der Einführung und Optimierung von Publikationsprozessen und auf dem Weg zu neuen digitalen Ausgabekanälen — egal ob E-Books, barrierefreie PDFs oder Webplattformen. Als Chairman des PDF/UA Competence Center der PDF Association beteiligt er sich an der Weiterentwicklung und Verbreitung des Standards PDF/UA für barrierefreie PDF Dokumente. Diese Veranstaltung kommt nur zu Stande durch die freundliche Unterstützung von "Six Offene Systeme GmbH" -- Enterprise-Content-Management-System und Media-Asset-Management-System.

Nein

Organisator: IDUG Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailchristoph.steffens AT gmail DOT com

https://idug47.eventbrite.de

Veranstaltungen
27.09.2018

Screen IT, Uster
Donnerstag, 27. Sept. 2018, 17.30 - 20.00 Uhr

Infoveranstaltung

Das Angebot an Publishing-Software ist gross. Deshalb empfiehlt sich eine externe Beratung durch unabhängige Software-Experten aus der jeweiligen Branche. Nicht immer muss es eine teure Mietlösung sein, die nach Beendigung der Mietdauer einem nicht einmal gehört. Es gibt sehr gute und auch in der Qualität ausreichende Alternativen, ja sogar kostenlose Freeware. Lassen Sie sich an diesem Abend einmal vor Augen führen, was diese Programme können und wie viel sie kosten.

Ja

Organisator: Screen IT und pre2media

Kontaktinformation: Peter Jäger, E-Mailinfo AT pre2media DOT ch

https://www.pre2media.ch/-1/de/infoanlass/