[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Bilder löschen via Verknüpfungspalette

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

Bilder löschen via Verknüpfungspalette

Martin Eckert
Beiträge gesamt: 102

28. Apr 2011, 16:15
Beitrag # 1 von 12
Bewertung:
(16011 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Script-Experten,
ich habe mal die ID-Skript-Datenbank durchforstet und hab jede Menge Scripte gefunden, wie Bilder ins Dokument kommen.
Ich habe nun das Problem, daß ich gerne Bilder AUS dem Dokument bekommen möchte, und das faul wie immer mit einem Klick ;-)
Hintergrund ist der: Ich habe ein Dokument mit einigen vielen Piktogrammen, die sich recht häufig wiederholen. Nun habe ich zwar in ID 5 die Möglichkeit alle auf einmal in der Link-Palette auszuwählen, jedoch nicht zu aktivieren, damit ich diese löschen kann.
Hat jemand einen Tipp?

Vielen Dank im voraus und LG
Martin
X

Bilder löschen via Verknüpfungspalette

Hans Haesler
  
Beiträge gesamt: 5826

28. Apr 2011, 17:17
Beitrag # 2 von 12
Beitrag ID: #470092
Bewertung:
(15993 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich kenne keine Möglichkeit, die Auswahl in der Verknüpfungspalette abzufragen.

Sind es verschiedene Piktogramme? Haben sie ein Merkmal im Namen, welche sie von normalen Bildern unterscheidet?

Eine Lösung wäre: Per Script eine Liste der Bilder erstellen, diese in einem Dialog anbieten und dann die Auswahl des Anwenders entfernen.

Gruss, Hans


als Antwort auf: [#470083]

Bilder löschen via Verknüpfungspalette

Martin Eckert
Beiträge gesamt: 102

29. Apr 2011, 19:20
Beitrag # 3 von 12
Beitrag ID: #470212
Bewertung:
(15939 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans, ja es sind verschiedene Piktogramme. Ich habe 10 Stück, brauche aber nachher nur noch 2 Stück. Diesen wird dann eine neue Verknüpfung zugewiesen (4c->sw). Da die Piktogramm im Text verkettet sind, kann ich auch nicht mit der Maus drüber fahren um sie zu löschen (nur einzeln).

Da ich die Piktogramme nur für ein Inhaltsverzeichnis brauche, also nur auf einer Seite, habe ich mir schon überlegt, ob ich über das "Datencheck-Script" mir nicht den Namen in eine Tabelle schreibe und diese dann dort lösche und per Datenzusammenführung wieder einlaufen lasse.

Das geht in die Richtung, die Du andenkst, allerdings ist Deine Lösung es über einen Dialog zu machen eleganter.

Grüsse Martin


als Antwort auf: [#470092]

Bilder löschen via Verknüpfungspalette

Hans Haesler
  
Beiträge gesamt: 5826

29. Apr 2011, 19:51
Beitrag # 4 von 12
Beitrag ID: #470216
Bewertung:
(15929 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich habe da mal ein AppleScript geschrieben.

Es zeigt einen Dialog mit einer Liste aller Bildnamen (mehrfach geladene nur einmal). Mit Umschalt-Klick eine zusammenhängende Auswahl vornehmen, mit Befehl-Klick wenn ein Name übersprungen werden soll.

Ich bin nicht sicher, ob es Dir nützlich sein wird, weil von jedem ausgewählten Namen alle entsprechenden Bilder entfernt werden.

Code
(* 
BilderEntfernen_501d.scpt
Ein AppleScript zum Entfernen von per Dialog ausgewählten Bildern
*)

-- die Namen der Bilder auflisten
tell application "Adobe InDesign CS5"
tell document 1
set allGraphics to name of every link
end tell
end tell

-- Duplikate herausfiltern
set defList to {}
set nGraphics to count allGraphics
repeat with i from 1 to nGraphics
set curItem to item i of allGraphics
if curItem is not in defList then
set end of defList to curItem
end if
end repeat

-- den Dialog zum Wählen der Bildnamen zeigen
if (count of defList) is not 0 then
set toDelete to choose from list defList with multiple selections allowed
else
display dialog "Keine Bilder gefunden." buttons "OK" default button 1 with icon 2
error number -128
end if

-- eine Schleife durch die Bilder; entfernen, wenn in Liste
if toDelete is not false then
tell application "Adobe InDesign CS5"
activate
tell document 1
repeat with i from nGraphics to 1 by -1
if item i of allGraphics is in toDelete then
try
delete parent of link i
end try
end if
end repeat
end tell
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell
end if

Sollte nur ein Teil von gleichnamigen Bildern gelöscht werden, müsste man sich etwas Zusätzliches einfallen lassen.

Gruss, Hans


als Antwort auf: [#470212]

Bilder löschen via Verknüpfungspalette

Martin Eckert
Beiträge gesamt: 102

29. Apr 2011, 20:57
Beitrag # 5 von 12
Beitrag ID: #470224
Bewertung:
(15917 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans, das könnte funktionieren allerdings meckert das Script bei mir einen Klassennamen an, weil einen Identifier erwartet.


Code
set allGraphics to name of every link 



als Antwort auf: [#470216]

Bilder löschen via Verknüpfungspalette

Hans Haesler
  
Beiträge gesamt: 5826

29. Apr 2011, 21:40
Beitrag # 6 von 12
Beitrag ID: #470226
Bewertung:
(15896 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

also hier klappt es. Auch mit verankerten Rahmen. Mit CS5 unter Mac OS X 10.6.6.
Das Ergebnis ist eine Liste der Bildnamen.

Gruss, Hans


als Antwort auf: [#470224]

Bilder löschen via Verknüpfungspalette

Martin Eckert
Beiträge gesamt: 102

30. Apr 2011, 10:35
Beitrag # 7 von 12
Beitrag ID: #470238
Bewertung:
(15849 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
seltsam, aber heute tut es. Hatte es mehrfach probiert gestern???
Klappt super, aber leider bleiben die leeren Bildboxen stehen. Hast Du da noch eine Idee. s. Screenshot.


als Antwort auf: [#470226]
Anhang:
leereboxen.png (28.2 KB)

Bilder löschen via Verknüpfungspalette

Martin Eckert
Beiträge gesamt: 102

30. Apr 2011, 13:57
Beitrag # 8 von 12
Beitrag ID: #470255
Bewertung:
(15830 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Martin Eckert ] aber leider bleiben die leeren Bildboxen stehen.

Das Script "Select Objects" in ID CS5 könnte das "killen", nur leider funzt das nicht innerhalb eines Textrahmens. Ich habe auch schon versucht eine Kombination aus Deinem Script zu machen und dem Adobe Script. Nur leider bekomme ich keins bzw. brauchbares Ergebnis.
Könnte es sein, dass der Textrahmen das Problem ist?


als Antwort auf: [#470238]

Bilder löschen via Verknüpfungspalette

Hans Haesler
  
Beiträge gesamt: 5826

30. Apr 2011, 14:16
Beitrag # 9 von 12
Beitrag ID: #470257
Bewertung:
(15825 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ach sooo ... Die Rahmen müssen auch weg. Das haben wir gleich:

Code
(* 
BilderEntfernen_502d.scpt
Ein AppleScript zum Entfernen von per Dialog ausgewählten Bildern mitsamt dem Rahmen
*)

-- die Namen der Bilder auflisten
tell application "Adobe InDesign CS5"
tell document 1
set allGraphics to name of every link
end tell
end tell

-- Duplikate herausfiltern
set defList to {}
set nGraphics to count allGraphics
repeat with i from 1 to nGraphics
set curItem to item i of allGraphics
if curItem is not in defList then
set end of defList to curItem
end if
end repeat

-- den Dialog zum Wählen der Bildnamen zeigen
if (count of defList) is not 0 then
set toDelete to choose from list defList with multiple selections allowed
else
display dialog "Keine Bilder gefunden." buttons "OK" default button 1 with icon 2
error number -128
end if

-- eine Schleife durch die Bilder; entfernen, wenn in Liste
if toDelete is not false then
tell application "Adobe InDesign CS5"
activate
tell document 1
repeat with i from nGraphics to 1 by -1
if item i of allGraphics is in toDelete then
try
delete parent of parent of link i
end try
end if
end repeat
end tell
display dialog "Fertig." buttons "OK" default button 1 with icon 1 giving up after 1
end tell
end if

Die kleine Änderung: Statt "delete parent of link i" heisst es nun "delete parent of parent of link i".

In der Zwischenzeit habe ich mit der Portierung des Codes nach JavaScript begonnen. Falls jemand Interesse haben sollte: bitte melden.

Gruss, Hans


als Antwort auf: [#470255]

Bilder löschen via Verknüpfungspalette

BigMac
Beiträge gesamt: 10

30. Apr 2011, 15:35
Beitrag # 10 von 12
Beitrag ID: #470267
Bewertung:
(15804 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kleiner Buchstabe, große Wirkung ;-)
Tut einwandfrei. Und nun auch viel schneller. Vielen Dank.


als Antwort auf: [#470257]

Bilder löschen via Verknüpfungspalette

Hans Haesler
  
Beiträge gesamt: 5826

1. Mai 2011, 22:33
Beitrag # 11 von 12
Beitrag ID: #470326
Bewertung:
(15736 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

bisher hat niemand Interesse an der JavaScript-Version bekundet. Verständlich, weil solch eine Aufgabe nicht alltäglich ist.

Ich habe dennoch das Script fertiggestellt und in der "Datenbank für ID-Skripte" veröffentlicht.

Weil ScriptUI eingesetzt werden muss, ist es nur lauffähig in CS3, CS4 und CS5 (aber nicht in CS2).

Gegenüber der AppleScript-Version sind zwei Verbesserungen eingebaut:
1. Per Checkbox kann gewählt werden, ob die Rahmen auch gelöscht werden sollen.
2. Gesperrte Ebenen werden vorübergehend entsperrt.

Zwei Dinge waren mit AppleScript einfacher:
1. Den Array der Bildnamen auf je ein Vorkommen reduzieren.
2. Das Anbieten einer Liste, welche eine Mehrfach-Auswahl erlaubt.

Mit JavaScript ist es komplizierter, aber dennoch lösbar. Für den zweiten Punkt muss anstelle eines Dropdowns eine ListBox definiert werden, bei welcher die Option multiselect auf true gesetzt wird.

Gruss, Hans


als Antwort auf: [#470267]
(Dieser Beitrag wurde von Hans Haesler am 2. Mai 2011, 09:04 geändert)

Bilder löschen via Verknüpfungspalette

Hans Haesler
  
Beiträge gesamt: 5826

2. Mai 2011, 09:04
Beitrag # 12 von 12
Beitrag ID: #470340
Bewertung:
(15682 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

und schon ist die Version 02 des JavaScripts bereit. Immer noch hier: BilderEntfernen_02d.js

Zwei weitere Verbesserungen sind eingefügt:
3. Wenn kein Bildname gewählt wurde, bleibt der Dialog nach der Warnung offen.
4. Eine zweite Checkbox: Zum Bestimmen, ob gesperrte Rahmen entsperrt werden sollen.

Eigentlich wäre diese neue Checkbox nicht notwendig. Gesperrte Rahmen könnten stillschweigend entsperrt werden. Aber wenn von gleichnamigen Bildern eines erhalten werden soll: Dessen Rahmen sperren, bei der Checkbox das Häkchen weg.

Gruss, Hans


als Antwort auf: [#470326]
X