[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt 2 immer wiederkehrende Objekte im gesamten Dokument löschen

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

2 immer wiederkehrende Objekte im gesamten Dokument löschen

JoPo
Beiträge gesamt: 491

14. Okt 2014, 14:23
Beitrag # 1 von 38
Bewertung:
(8572 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi zusammen,

isr es möglich efolgendes Problem zu scripten?

1. Eine weiße Linie in einer bestimmten Dicke soll aus einem Dokument mit 700 Seiten enfernt werden. Auf etwa 600 Seiten kommt dies Linie 1 bis 15 mal vor.

2. Ein Linie in einer bestimmten Farbe, bestimmten Breite und bestimmten Stärke löschen. Gleiches wie unter Punkt 1.

Leider kann ich unter CS6 solche Objekte zwar suchen und finden, aber bei S&E nur andere Obejktformate zuweisen, nur gänzlih löschen geht nicht. Oder doch? Mit Text funktioniert das, aber leider nicht mit Objekten.

Vielen Dank für Hinweise wie das funktionieren kann.

Salü
Joachim
X

2 immer wiederkehrende Objekte im gesamten Dokument löschen

drerol74
Beiträge gesamt: 434

15. Okt 2014, 01:14
Beitrag # 2 von 38
Beitrag ID: #533017
Bewertung:
(8509 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Joachim,

kommte jetzt auch darauf an, wie dein Dokument aufgebaut ist.

Aber ganz allgemein: Alle Elemente sammeln und dann vergleichen:

Code
GraphicLine.strokeWeight == 2  
GraphicLine.strokeColor.name == "Paper"


Länge müsste man sich ausrechnen.

Schöne Grüße
Roland


als Antwort auf: [#532996]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

JoPo
Beiträge gesamt: 491

15. Okt 2014, 10:45
Beitrag # 3 von 38
Beitrag ID: #533023
Bewertung:
(8457 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Roland,

danke für Deine Antwort.
Leider verstehe ich sie nicht.
Die beiden Codezeilen sollen wohl die Suchhilfe innerhalb eines kompletten Scriptes darstellen?
Und was meinst du mit "Länge müsste man sich ausrechnen"?
Meinst du mit Länge die Häufigkeit des Vorkommens des gesuchten Objektes?

Ich kann nicht scripten. Daher hoffte ich auf ein Script, in dem ich "nur" die Werte für die Farbe, die Linienstärke und die Linienlänge angeben muss.

Ich kann ein Beispieldokument bereitstellen, für CS6.

Salü
Joachim


als Antwort auf: [#533017]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

Kai Rübsamen
Beiträge gesamt: 4659

15. Okt 2014, 11:24
Beitrag # 4 von 38
Beitrag ID: #533024
Bewertung:
(8362 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jo,

versuch es mal so:
Code
var meineFarbe = "meineFarbe"; 
var meineStrichstaerke = 2;

var curDoc = app.activeDocument;
var allLines = curDoc.graphicLines;

for ( var i = allLines.length-1; i>-1; i-- ) {
var curLine = allLines[i];
if ( curLine.strokeWeight == meineStrichstaerke && curLine.strokeColor.name == meineFarbe ) {
curLine.remove();
}
}


@ alle:
Ich wollte eigentlich zuerst so suchen:
Code
var curDoc = app.documents[0];  
var curColor = curDoc.swatches.itemByName("C=15 M=100 Y=100 K=0");

// das Objekt mit entsprechender Formatierung suchen
app.findObjectPreferences = app.changeObjectPreferences = null;
app.findObjectPreferences.strokeWeight = 2;
app.findObjectPreferences.strokeColor = curColor;
var fund = curDoc.findObject();
app.findObjectPreferences = app.changeObjectPreferences = null;

for ( var f = 0; f < fund.length; f++ ) {
var curFund = fund[f];
// die Linien löschen
fund[f].remove();
}


Beim Ausführen der Zeile app.findObjectPreferences.strokeColor = curColor;
erhalte ich einen Fehler, egal ob ich eine Variable oder den String direkt eingebe.
Hans H. konnte in der Zwischenzeit den Fehler bestätigen.

Hat jemand eine Idee, ob es sich hierbei um einen bug handelt oder wo mein Fehler liegt? Danke.

Gruß Kai Rübsamen


als Antwort auf: [#533023]
(Dieser Beitrag wurde von Kai Rübsamen am 15. Okt 2014, 11:26 geändert)

2 immer wiederkehrende Objekte im gesamten Dokument löschen

mx
Beiträge gesamt: 161

15. Okt 2014, 11:33
Beitrag # 5 von 38
Beitrag ID: #533025
Bewertung:
(8318 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich hab auch noch einen Ansatz:
Code
Document.prototype.RemoveLine = function(properties){ 
if(properties == null)
return null;
app.changeObjectPreferences = NothingEnum.nothing;
app.findObjectPreferences = NothingEnum.nothing;
app.findChangeObjectOptions.properties = {includeFootnotes:false, includeMasterPages:true};
app.findObjectPreferences.properties = properties;
var searchResults = this.findObject();
app.changeObjectPreferences = NothingEnum.nothing;
app.findObjectPreferences = NothingEnum.nothing;
for(var i=0; searchResults.length > i; i++)
if(searchResults[i].constructor.name == "GraphicLine")
searchResults[i].remove();
}

app.activeDocument.RemoveLine({strokeColor:"C=0 M=100 Y=0 K=0", strokeWeight:1});
app.activeDocument.RemoveLine({strokeColor:"C=100 M=100 Y=0 K=0", strokeWeight:17});
//usw.

strokeColor ist der Name der Farbe, strokeWeight ist die Dicke in pt.
Was war oben mit Stärke und Breite gemeint?

@Kai:
Die Properties müssen auf einen Rutsch gesetzt werden, einzeln klappt das nicht.

Viele Grüße
Jo


als Antwort auf: [#533024]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

Kai Rübsamen
Beiträge gesamt: 4659

15. Okt 2014, 11:53
Beitrag # 6 von 38
Beitrag ID: #533026
Bewertung:
(8307 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jo,

woher soll man nun das wieder wissen :(

Ich hab aber noch einen Fehler, denn bei mir wird jetzt die Farbe ignoriert. Was stimmt denn an meiner Schreibweise nicht?

Code
var curDoc = app.documents[0];   
var props = { strokeColor: "C=0 M=100 Y=0 K=0", strokeWeight: 1 };

// das Objekt mit entsprechender Formatierung suchen
app.findObjectPreferences = app.changeObjectPreferences = null;
app.findObjectPreferences.properties = props;
var fund = curDoc.findObject();
//~ app.findObjectPreferences = app.changeObjectPreferences = null;

for ( var f = 0; f < fund.length; f++ ) {
var curFund = fund[f];
if ( curFund.constructor.name == "GraphicLine" ) {
// die Linien löschen
fund[f].remove();
}
}


Gruß Kai Rübsamen


als Antwort auf: [#533025]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

WernerPerplies
Beiträge gesamt: 2548

15. Okt 2014, 12:03
Beitrag # 7 von 38
Beitrag ID: #533027
Bewertung:
(8301 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

Zitat Hat jemand eine Idee, ob es sich hierbei um einen bug handelt oder wo mein Fehler liegt? Danke.


InDesign verrät Dir meistens, was Du falsch gemacht hast.

Dafür braucht man aber mindestens die Fehlermeldung und die Fehlerzeile.

Diese Informationen findest Du im Fehlerobjekt.

Manchmal, - eher selten -, erhältst Du auch blödsinnige Meldungen wie:
Erwarte Color oder String, habe aber Color erhalten;-).

Aber das ist eher die Ausnahme.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#533024]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

mx
Beiträge gesamt: 161

15. Okt 2014, 12:50
Beitrag # 8 von 38
Beitrag ID: #533030
Bewertung:
(8283 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

dein Code läuft bei mir unter ID CC 2014 und die Farbe passt auch bzw. wird gefunden.
Heißen bei Dir die Farben im Dokument anders oder hast Du die Farbe nicht im Dokument als Farbfeld angelegt?

Oder hast Du nur direkt an der Linie die Farbe eingestellt?
Einmal im Viewlet "Farbfelder" auf die Optionen und "Unbenannte Farben hinzufügen", dann sollte es gehen.
Die StrokeColor-Eigenschaft braucht ein Swatch-Objekt oder einen Namen.

Das mit den Properties hab ich mir gemerkt, als ich da vor langer Zeit mal genau wie du drübergeflogen bin. Die geometricBounds sind ähnlich, die lassen sich auch nicht feldweise ändern, sondern nur am Stück.

Viele Grüße
Jo


als Antwort auf: [#533026]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

Kai Rübsamen
Beiträge gesamt: 4659

15. Okt 2014, 13:30
Beitrag # 9 von 38
Beitrag ID: #533032
Bewertung:
(8227 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jo,

ich habs gerade nur in CS6 getestet. Zur Sicherheit ein Snippet anbei.

Ergebnis hier:
Es werden magenta und schwarze Linien mit einer Strichstärke von 1 pt gelöscht.
Richtig wäre aber nur das Löschen der einen roten Linie. Wenn ich das Script zeilenweise laufen lasse, sehe ich im S&E-Feld, das die Farbe nicht ankommt.

Gruß Kai Rübsamen


als Antwort auf: [#533030]
Anhang:
Kontur.idml (32.5 KB)

2 immer wiederkehrende Objekte im gesamten Dokument löschen

JoPo
Beiträge gesamt: 491

15. Okt 2014, 13:54
Beitrag # 10 von 38
Beitrag ID: #533033
Bewertung:
(8204 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi zusammen,

vielen Dank für die rege Teilnahme.
Ich habe in meiner Dropbox eine zip mit einer indd und einer idml inkl. Beschreibung.
https://dl.dropboxusercontent.com/u/69229719/linien_loeschen_test.zip
Vielleicht ist es gar nicht so kompliziert wie ich mich ausgedrückt habe. Schaut es euch mal an.
Nochmals besten Dank für eueren Einsatz.
Salü
Joachim


als Antwort auf: [#533032]
(Dieser Beitrag wurde von JoPo am 15. Okt 2014, 13:58 geändert)

2 immer wiederkehrende Objekte im gesamten Dokument löschen

Kai Rübsamen
Beiträge gesamt: 4659

15. Okt 2014, 14:07
Beitrag # 11 von 38
Beitrag ID: #533035
Bewertung:
(8191 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Jo, hier gibt es doch schon funktionierende Lösungen?!

Wir klären lediglich ein paar Details, bei denen du außen vor bist ;-)

Gruß Kai Rübsamen


als Antwort auf: [#533033]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

JoPo
Beiträge gesamt: 491

15. Okt 2014, 15:03
Beitrag # 12 von 38
Beitrag ID: #533041
Bewertung:
(8166 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,
du hast Recht. Deine Lösung funktioniert.
Zumindest für einen Teil der Aufgabe.
Aber bei dem zweiten Teil stehe ich immer noch auf dem Schlauch. Das liegt aber nicht an Deiner funktionierenden Lösung, sondern an meinem Problem dem Script beizubringen, dass ich Linien in der Farbe "Papier" löschen will. Wenn ich nur "Papier" eintrage, passiert nichts, trage ich "[Papier]" ein, passiert auch nichts. Was muss ich für diese Spezialfarbe eintragen?

Übrigens habe ich in meinen Beispieldateien noch eine "nette" Zusatzaufgabe versteckt. Wer Lust hat darf sich die gerne mal anschauen.

Dank
Joachim


als Antwort auf: [#533035]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

mx
Beiträge gesamt: 161

15. Okt 2014, 15:14
Beitrag # 13 von 38
Beitrag ID: #533042
Bewertung:
(8160 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

du hast Recht, das funktioniert nicht, da hab ich nicht drauf geachtet.
Das muss doch ein echtes Color- oder Swatch-Object sein...


So sollte es jetzt gehen:

Code
Document.prototype.RemoveLine = function(properties){   
if(properties == null)
return null;
if(properties.strokeColor != null && properties.strokeColor.constructor.name == "String" && app.activeDocument.swatches.itemByName(properties.strokeColor) != null)
properties.strokeColor = app.activeDocument.swatches.itemByName(properties.strokeColor);
app.changeObjectPreferences = NothingEnum.nothing;
app.findObjectPreferences = NothingEnum.nothing;
app.findChangeObjectOptions.properties = {includeFootnotes:false, includeMasterPages:true};
app.findObjectPreferences.properties = properties;
var searchResults = this.findObject();
app.changeObjectPreferences = NothingEnum.nothing;
app.findObjectPreferences = NothingEnum.nothing;
for(var i=0; searchResults.length > i; i++)
if(searchResults[i].constructor.name == "GraphicLine")
searchResults[i].remove();
}

app.activeDocument.RemoveLine({strokeColor:"C=0 M=100 Y=0 K=0", strokeWeight:1});
app.activeDocument.RemoveLine({strokeWeight:17});
//usw.


Viele Grüße
Jo


als Antwort auf: [#533032]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

WernerPerplies
Beiträge gesamt: 2548

15. Okt 2014, 15:31
Beitrag # 14 von 38
Beitrag ID: #533043
Bewertung:
(8145 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Joachim,

Zitat Was muss ich für diese Spezialfarbe eintragen?

Die folgenden Möglichkeiten sollten funktionieren:
1. Zugriff über Index, bei mir 2
app.swatches[2]
2. Zugriff über Namen:
app.swatches.itemByName("Paper")

In beiden Fällen gibt es ein Swatch zurück.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 16.12.2020, Version 3.XX, neue Funktionen
Kundenstimmen


als Antwort auf: [#533041]

2 immer wiederkehrende Objekte im gesamten Dokument löschen

mx
Beiträge gesamt: 161

15. Okt 2014, 15:40
Beitrag # 15 von 38
Beitrag ID: #533044
Bewertung:
(8139 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner, Kai und Joachim,

weil es grad so schön in diesem Thread ist:

Es gibt noch die Sonderfarben "Registration" für die Passermarken und "None" für die Farbe "[Ohne]".

Viele Grüße
Jo


als Antwort auf: [#533043]
X

Aktuell

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
21.01.2021 - 22.01.2021

Digicomp Academy AG, Bern oder Basel
Donnerstag, 21. Jan. 2021, 08.30 Uhr - Freitag, 22. Jan. 2021, 17.00 Uhr

Kurs

Dieser Basic-Kurs ist der perfekte Einstieg in die Welt von InDesign, dem vielseitigen Layout-Programm. Sie lernen, wie InDesign aufgebaut ist, wie saubere Dokumente erstellt werden und wie man korrekt mit gelieferten InDesign-Projekten umgeht.

Dauer: 2 Tage
Preis: CHF 1'400.–

Ja

Organisator: Digicomp Academy AG

Kontaktinformation: Kundenberater-Team, E-Mailkundenberatung AT digicomp DOT ch

digicomp.ch/d/INDEM1

Veranstaltungen
21.01.2021

Illustrator - das unbekannte Wesen

Online
Donnerstag, 21. Jan. 2021, 19.00 Uhr

Vortrag

Millionen Funktionen, und immer kommen neue dazu! Monika Gause ist jeden Januar aufs Neue ein gern gesehener Gast bei der IDUG Stuttgart. - Sie bringt alle Neuerungen mit, die 2020 dazukamen und jede Menge Tipps und Tricks. - Zudem wird sie uns informieren, was wir in Illustrator beachten müssen, wenn wir Daten fürs Web erstellen bzw. aufbereiten. - Wichtig zu wissen: "Dos and Don'ts" in Illustrator. Welche Fehler sollte man dringend vermeiden und was muss man unbedingt tun, damit es Spaß macht mit Illustrator zu arbeiten. - Dieses Jahr hast Du zusätzlich die Möglichkeit Monika im Voraus Fragen zu stellen. Fülle dieses Formular mit deinen Fragen; auch Beispieldateien sind anfügbar: https://forms.gle/fJmF8C6MjbDoEhED8

Nein

Organisator: InDesign Usergroup Stuttgart

Kontaktinformation: Christoph Steffens, E-Mailidug AT satzkiste DOT de

https://idugs67.eventbrite.de/

IDUGS #67 Illustrator mit Monika Gause

Neuste Foreneinträge


Affinity Photo od. Designer -Bildecke einrollen

CC 2020: Problem mit Textumfluss mit verankerten Objekten

Abrisse im Druck

Farbmanagement bei Fotoabzügen

Dokument einrichten per Javascript [AI24.3, WIN10]

Problem mit arabischer Schrift: Wie von rechts nach links setzen?

Suchen u. Ersetzen von Strings mit bestimmter horizontaler Skalierung [INDD15.1.1 WIN10]

Netzwerklaufwerke verbinden -> Bei nicht verfügbar Fehlermeldung unterdrücken

Fortlaufende Nummerierung der Druckbogen

Verschiedene Netzwerke Handeln
medienjobs