[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt ungenutzte Zeichenformate entfernen (CS6, WIN7)

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

ungenutzte Zeichenformate entfernen (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

6. Jan 2014, 10:31
Beitrag # 1 von 9
Bewertung:
(2471 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Tag,

hiermit versuche ich bestimmte Zeichenformate (im Array definiert) zu entfernen:

Code
var myCharStyles =  
Array(
"Underline double Italic",
"Underline double Bold",
"Underline double Bold Italic",
"Underline Bold",
"Underline Bold Italic",
"SubScript Italic",
"SubScript Bold",
"SubScript Bold Italic",
"SuperScript Italic",
"SuperScript Bold",
"SuperScript Bold Italic",
"Kapitaelchen Bold",
"Light Condensed",
"Light Condensed Italic",
"Condensed",
"Condensed Italic",
"Semibold Condensed",
"Semibold Condensed Italic",
"Bold Condensed",
"Bold Condensed Italic",
"Black Condensed",
"Black Condensed Italic",
"Light SemiCondensed",
"Light SemiCondensed Italic",
"SemiCondensed",
"SemiCondensed Italic",
"Semibold SemiCondensed",
"Semibold SemiCondensed Italic",
"Bold SemiCondensed",
"Bold SemiCondensed Italic",
"Black SemiCondensed",
"Black SemiCondensed Italic",
"Light",
"Light Italic",
"Kursiv",
"Semibold",
"Semibold Italic",
"Black",
"Black Italic",
"Light SemiExtended",
"Light SemiExtended Italic",
"SemiExtended",
"SemiExtended Italic",
"Semibold SemiExtended",
"Semibold SemiExtended Italic",
"Bold SemiExtended",
"Bold SemiExtended Italic",
"Black SemiExtended",
"Black SemiExtended Italic",
"SuperScript",
"SubScript",
"Underline double",
"Underline",
"StrikeThru"
);


for (var i=0; i<myCharStyles.length; i++) {
removeUnusedCharStyle(myCharStyles[i]);
}

function removeUnusedCharStyle(myChStyle) {
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences.appliedCharacterStyle = myChStyle;
var myFoundStyles = app.activeDocument.findText();
if (myFoundStyles == 0) {
myChStyle.remove();
}
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;
}


Es scheitert aber an dieser Zeile:
Code
myChStyle.remove(); 

Fehler: myChStyle.remove(); ist keine Funktion

Beispieldokument anbei:
https://dl.dropboxusercontent.com/u/80200772/remove-chstyl.idml

Bitte um Hilfe.

Herzliche Grüße
Christoph
X

ungenutzte Zeichenformate entfernen (CS6, WIN7)

Martin Fischer
  
Beiträge gesamt: 12785

6. Jan 2014, 10:56
Beitrag # 2 von 9
Beitrag ID: #521604
Bewertung:
(2447 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

Du übergibst Deiner Funktion Strings, mögliche Namen von Zeichenformaten.
Bevor Du mit den vermeintlichen Zeichenformaten etwas anstellst, solltest Du prüfen, ob ein Zeichenformatmat mit dem angegebenen Namen überhaupt existiert.

Und hier solltest Du die length-Eigenschaft überprüfen und nicht den Array der Fundstellen.
Code
if (myFoundStyles.length == 0) 



als Antwort auf: [#521602]

ungenutzte Zeichenformate entfernen (CS6, WIN7)

Hans Haesler
  
Beiträge gesamt: 5826

6. Jan 2014, 10:57
Beitrag # 3 von 9
Beitrag ID: #521605
Bewertung:
(2445 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

der Name allein reicht nicht. Die Zeile zum Entfernen musst Du so ergänzen:

Code
app.documents[0].characterStyles.itemByName(myChStyle).remove(); 

Die meisten werden dann entfernt. Aber ein paar bleiben stehen.

Versuche es bitte mal mit dem Script UnbenutzteFormate. Zu finden hier: http://www.fachhefte.ch / Links "JavaScripts", "Windows deutsch", (oder "Mac OS X deutsch").

Gruss, Hans


als Antwort auf: [#521602]

ungenutzte Zeichenformate entfernen (CS6, WIN7)

Martin Fischer
  
Beiträge gesamt: 12785

6. Jan 2014, 11:00
Beitrag # 4 von 9
Beitrag ID: #521606
Bewertung:
(2442 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Gib Acht:

Zeichenformate, die im Text nicht als Auszeichnung verwendet werden, könnten auch als Basis von anderen Zeichenformaten dienen.
Oder in GREP-Stilen oder verschachtelten Formaten stecken.


als Antwort auf: [#521602]
(Dieser Beitrag wurde von Martin Fischer am 6. Jan 2014, 11:07 geändert)

ungenutzte Zeichenformate entfernen (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

6. Jan 2014, 19:07
Beitrag # 5 von 9
Beitrag ID: #521628
Bewertung:
(2334 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen Dank an Martin und Hans,

für die Tipps.
Das Script von Hans funktioniert gut.

Aber wieso etwas übrigbleibt, wenn ich diese Zeile verwende, verstehe ich nicht:
app.documents[0].characterStyles.itemByName(myChStyle).remove();
Das Script läuft sonst fehlerfrei.

Das Problem ist, ich möchte tatsächlich nur die im Array befindlichen Formate löschen.
Andere sollen bleiben.

Grüße
Christoph


als Antwort auf: [#521606]

ungenutzte Zeichenformate entfernen (CS6, WIN7)

Hans Haesler
  
Beiträge gesamt: 5826

6. Jan 2014, 20:27
Beitrag # 6 von 9
Beitrag ID: #521630
Bewertung:
(2308 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

es bleibt etwas übrig, weil sich diese neun Zeichenformat-Namen nicht im Array befinden.
Dieser enthält 54 Zeichenformat-Namen.
Aber das Beispieldokument enthält 64 Zeichenformate (inklusive "[Ohne]").

Dein Script führt also genau das aus, was vorgesehen ist.

Gruss, Hans


als Antwort auf: [#521628]

ungenutzte Zeichenformate entfernen (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

6. Jan 2014, 20:42
Beitrag # 7 von 9
Beitrag ID: #521632
Bewertung:
(2299 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Hans,

Du hast Recht, das habe ich übersehen.
Es läuft wie gewünscht, dank Deiner Code-Zeile.

Schönen Abend
Christoph


als Antwort auf: [#521630]

ungenutzte Zeichenformate entfernen (CS6, WIN7)

Hans Haesler
  
Beiträge gesamt: 5826

6. Jan 2014, 21:18
Beitrag # 8 von 9
Beitrag ID: #521635
Bewertung:
(2281 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

einen hab' ich noch (oder zwei :-) ...

Weil bei jedem Umgang der Schleife anschliessend in der Funktion der 'appliedCharacterStyle' gesetzt wird, müssen hinterher die Preferences nicht zurückgesetzt werden. Es reicht, dies zu Beginn und am Schluss der Script-Ausführung zu machen:

Code
var myCharStyles = new Array( 
"Underline double Italic",
/*
und so weiter
und so fort
*/
"StrikeThru");

app.findTextPreferences = app.changeTextPreferences = null;

for (var i=0; i<myCharStyles.length; i++) {
removeUnusedCharStyle(myCharStyles[i]);
}

app.findTextPreferences = app.changeTextPreferences = null;

alert ("Fertig.", " ");

function removeUnusedCharStyle(myChStyle) {
try {
app.findTextPreferences.appliedCharacterStyle = myChStyle;
var myFoundStyles = app.activeDocument.findText();
if (myFoundStyles.length == 0) {
app.documents[0].characterStyles.itemByName(myChStyle).remove();
}
}
catch (e) {
}
}

So wird das zwar nicht spürbar schneller ablaufen. Aber es ist dennoch besser so :-).

Wichtiger aber ist – wie Martin schon bemerkt hat –, dass geprüft wird, ob das aktuelle Zeichenformat vorhanden ist. Doch es kann auch "nur" ein try/catch-Wickel eingefügt werden. Wie oben gezeigt.

Gruss, Hans


als Antwort auf: [#521632]

ungenutzte Zeichenformate entfernen (CS6, WIN7)

cwenet
Beiträge gesamt: 1139

7. Jan 2014, 09:59
Beitrag # 9 von 9
Beitrag ID: #521647
Bewertung:
(2179 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Merci viel mal lieber Hans,

für das optimierte Script.

Schönen Tag
Christoph


als Antwort auf: [#521635]
X

Aktuell

PDF / Print
IWS-Logo_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
20.06.2024

Online
Donnerstag, 20. Juni 2024, 15.00 - 15.45 Uhr

Webinar

Etiketten-Workflows gehören zu den anspruchsvollsten in der grafischen Industrie. Ihre PDF-Dateien sind oft sehr komplex und erfordern eine spezielle Vorbereitung. pdfToolbox bietet viele Möglichkeiten, um diese Arbeit zu automatisieren. Nehmen Sie an unserem Webinar "pdfToolbox für den Etikettendruck" teil und lernen Sie einige der Funktionen kennen, die Ihren Etiketten-Workflow effizienter gestalten. Einige der Bereiche, die Sie kennenlernen werden, sind: Beschnitt erzeugen Beim Etikettendruck ist das Druckmotiv oft nicht rechteckig. Lernen Sie, wie Sie einen passenden Beschnitt für alle Arten von Formen hinzufügen können. Produktionsreife Dateien erstellen nutzen Sie bereits vorliegende Inhalte oder Seiteninformationen, um eine Weißform hinter dem Seiteninhalt hinzuzufügen, eine passgenaue Lackform für bestimmte Objekte zu erzeugen oder eine Stanzlinie mit korrektem Sonderfarbnamen zu erstellen. Ausschießen, Step & Repeat, N-Up Mit der Ausschieß-Engine von pdfToolbox lassen sich Seiten zu größeren Druckbögen zusammenfassen, wobei verschiedene Layouts und Komplexitäten unterstützt werden. Hochwertige Freigabe-Bögen Erstellen Sie automatisch Freigabe-Bögen mit Vorschaubildern Ihrer Produktionsdatei und Auftragsdaten aus dem MIS. Qualitätskontrolle pdfToolbox enthält Standard-Preflight-Profile, die die grundlegenden Anforderungen an PDF-Dateien in Etiketten-Workflows abdecken. Prüfen Sie ob Ihre Dokumente internationalen Standards wie ISO PDF/X oder GWG (Ghent Workgroup) Spezifikationen entspricht. Verpackungs- und etikettenspezifische Vorgaben, wie der ISO-Standard „Processing Steps“, werden ebenfalls unterstützt.

kostenlos

Ja

Organisator: callassoftware

https://www.impressed.de/schulung.php?c=sDetail&sid=322

pdfToolbox für den Ettikettendruck
Veranstaltungen
02.07.2024

Online
Dienstag, 02. Juli 2024, 10.00 - 10.30 Uhr

Webinar

In diesen beiden kostenlose Webinaren erfahren Sie, wie Sie mit Hilfe von Enfocus Griffin und dem Impressed Workflow Server Ihren LFP-Workflows optimieren können. 18.06.2024: So optimieren Sie Ihre Prozesse mit Enfocus Griffin 02.07.2024: So sparen Sie Zeit und Geld mit Impressed Workflow Server in der LFP-Edition Griffin: Griffin ist das leistungsstarke Kraftpaket für das automatische Nesting im Großformatdruck. Dank eines ausgeklügelten, KI-basierten Nesting-Algorithmus können Sie mit Griffin Vorlagen schnell und effizient vernutzen – und das klappt auch mit unregelmäßigen Formen perfekt. Das spart Ihnen unzählige Stunden, die Sie bisher mit dem manuellen Nesting und Ausschießen verbracht haben. Einige wichtige Funktionen ≡ Anlage von Beschnittzugaben ≡ Automatische Erzeugung der Schnittkontur ≡ Erstellung von Strichcodes, Textmarkierungen und Registrierungen IWS LFP Edition: Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Mit dem IWS LFP Edition automatisieren Sie Ihre Produktion von der Übernahme der Daten aus dem ERP-System bis zur Erzeugung der verschachtelten Druckform und der Übergabe an den RIP. Phoenix Core ist eine hochentwickelte KI-Technologie für die Planung und das Nesting von Druckerzeugnissen. Anders als herkömmliche Ausschießlösungen arbeitet Phoenix nicht auf Basis von Vorlagen, sondern erzeugt entsprechend der Maschinen- und Produktionsanforderungen druckfertige Layouts „on-the-fly“.

kostenlos

Ja

Organisator: Impressed GmbH

Kontaktinformation: E-Mailschulungen AT impressed DOT de

https://www.impressed.de/schulung.php?c=sDetail&sid=328

So optimieren Sie Ihren LFP-Workflow