[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt FindChangeScripts fehlendes Absatzformat ignorieren

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

FindChangeScripts fehlendes Absatzformat ignorieren

Arielle93
Beiträge gesamt: 10

19. Jan 2021, 09:42
Beitrag # 1 von 4
Bewertung:
(3513 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Leute,

ich hoffe ihr seit alle gesund und munter.. ich habe mal wieder ein Problem mit einem Skript.


Die Basis ist FindChangeScripts.


Ich suche bestimmte Wörter in einem Dokument, findet er das, weißt es diesem einem bestimmten Absatzformat zu.

z.B.. Suche "1. Anleitung|2. Technische Daten" und weise diese dann das Absatzformat "Überschrift DE" zu
Das gleiche habe ich dann mit dem Englischen, Französischen u.s.w. (insgesamt 24 Sprachen) Dokumenten,
in Englisch sieht das dann so aus "1. Manual|2. Technical specifications" und weise diese dann das Absatzformat "Überschrift ENG" zu
diese Sammlung habe ich in einem Skript zusammengepackt...

Das Problem welches ich jetzt habe, ist das in dem Deutschen Dokument natürlich nicht das Absatzformat "Überschrift ENG" (+ die weiteren Sprach-Überschriften) vorhanden sind, diese will ich auch nicht dort drin haben.

Er meldet mir dann immer nach dem jeweiligen fehlenden Absatzformat folgenden Fehler:


Script Alert
Error: Fehlendes Ersetze-Absatzformat
[Überschrift ENG] bei Abfrage [01. 03 ENG Überschrift] at line 45



Kann man diese Erros´s irgendwie ignorieren? Ich weiß ja dass das Absatzformat nicht drin ist und will nicht in einem Dokument 23x auf OK drücken müssen....




Hier als Beispiel der Ausschnitt vom Tschechischen:

Code
 
// Query [[03. 03 CZ Kapitelüberschrift richtig]] -- If you delete this comment you break the update function
try {
app.findChangeGrepOptions.properties = ({includeFootnotes:true, kanaSensitive:true, widthSensitive:true});
app.findGrepPreferences.properties = ({findWhat:"1.\\tBezpečnostní pokyny\\r|2.\\tPopis přístroje\\r|3.\\tPoužití podle účelu určení\\r|4.\\tTechnická data\\r|5.\\tPřed uvedením do provozu\\r|6.\\tObsluha\\r"});
app.changeGrepPreferences.properties = ({});
style = getStyleByString(doc, 'Überschrift CZ', 'paragraphStyles');
if (!style.isValid) throw Error(localize(({en:"Missing change pagraphstyle [%1] for query [%2]", de:"Fehlendes Ersetze-Absatzsformat [%1] bei Abfrage [%2]", fr:"La requête [%2] invoque en remplacement un style de paragraphe manquant : [%1]", ja_JP:"クエリ[%2]の置換形式に設定された段落スタイル[%1]が見つかりませんでした", nl:"Vervangende alineastijl [%1] mist voor zoekopdracht [%2]"}), 'Überschrift CZ', '03. 03 CZ Kapitelüberschrift richtig') );
app.changeGrepPreferences.appliedParagraphStyle = style;
changeObject.changeGrep();
} catch (e) {alert(e + ' at line ' + e.line)}
app.findGrepPreferences = NothingEnum.NOTHING;
app.changeGrepPreferences = NothingEnum.NOTHING;




Danke im vorraus für eure Hilfe!
X

FindChangeScripts fehlendes Absatzformat ignorieren

WernerPerplies
Beiträge gesamt: 2572

20. Jan 2021, 08:12
Beitrag # 2 von 4
Beitrag ID: #578303
Bewertung:
(3417 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Arielle93,

Fehler ignorieren ist in der Programmierung die schlechteste aller Lösungen, aber wenn Du das unbedingt willst:
ersetzte
catch (e) {alert(e + ' at line ' + e.line)}
durch
catch (e) {/*alert(e + ' at line ' + e.line)*/}

Noch eine neugierige Frage_
rufst Du dieses Skript
24 x Anzahl der Begriffe + Laden der Dateien auf?

Wenn ja, könnte das Skript sicherlich eine Optimierung vertragten.

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: [#578282]

FindChangeScripts fehlendes Absatzformat ignorieren

Arielle93
Beiträge gesamt: 10

20. Jan 2021, 09:54
Beitrag # 3 von 4
Beitrag ID: #578306
Bewertung:
(3401 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Morgen Werner,

hat an sich funktioniert, leider merk ich jetzt aber dass das doch nicht ganz zum Ziel führt.. aber für die Zukunft bestimmt trotzdem gut zu wissen das man Fehlermeldungen ignorieren kann.

Jetzt muss ich wohl für jede Sprache nochmal ein extra Skript erstellen der mir dann die Überschriften richtig formatiert...
Leider haut er mir ja die formatierungen mit den Skript ChainGREP raus... denn davor sind die Überschriften noch korrekt.
Gibt es vielleicht die Möglichkeit die formatierung beizubehalten oder im Skript zu sagen "Formatiere mir die gefundenen Texte in "Überschrift DE" wenn dieses Format nicht vorhanden ist, nehme "Überschrift ENG" "Überschrift FR" "Überschrift IT" ... usw.?

Ich wende dieses Skript 1x für jede Sprache an und nicht 1x für 24 Sprachen. An sich ist das auch gut so, da ich danach nochmal kontrollieren muss ob nicht zu viel oder zu wenig gelöscht worden ist.

Für ein anderes Skript könnte ich das allerdings gut gebrauchen....

Code
7	function main() {	 
8 if (app.layoutWindows.length == 0) return;
9 var changeObject = app.documents[0];
10 if (changeObject.hasOwnProperty('characters') && changeObject.characters.length == 0) return;
11 var doc = app.documents[0];
12 var style;
13 var scriptVersion = app.scriptPreferences.version;
14 app.scriptPreferences.version = 16.0;
15 var options = app.findChangeGrepOptions.properties;
16 app.findGrepPreferences = NothingEnum.NOTHING;
17 app.changeGrepPreferences = NothingEnum.NOTHING;


Glaub der knackende Punkt verbirgt sich hier unter Zeile 9. & 11. richtig?




Und wenn wir schon dabei sind... gibt es eine Möglichkeit gefundene Texte zu kopieren? Bisher hab ich dazu absolut nichts gefunden...
Nur den gefundenen Text mit der Zwischenablage zu ersetzen ist mir bisher bekannt... oder den gefundenen Text beizubehalten indem ich in GREP $0 sage und dann noch einen Text hinzufüge... ist aber trotzdem nicht das selbe wie kopieren

Code
133	try {		 
134 app.findChangeGrepOptions.properties = ({includeFootnotes:true, kanaSensitive:true, widthSensitive:true});
135 app.findGrepPreferences.properties = ({findWhat:"(Gefahr!)"});
136 app.changeGrepPreferences.properties = ({changeTo:"KOPIERE GEFUNDENEN TEXT"});


Hier muss wohl in der Zeile 136 was geändert werden...

Ganz liebe Grüße
Franzi


als Antwort auf: [#578303]

FindChangeScripts fehlendes Absatzformat ignorieren

WernerPerplies
Beiträge gesamt: 2572

20. Jan 2021, 11:01
Beitrag # 4 von 4
Beitrag ID: #578309
Bewertung:
(3369 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Franzi,

vorweg, ich lebe von Skriptprogrammierung, und deswegen werde ich Dir kein fertiges Skript liefern, kann Dir aber schildern, wie ich solch eine Aufgabe angehen würde.

Zuerst einmal, wie ich Dir schon schrieb, ist Fehler ignorieren für mich keine Option, weil dann auch Fehler durchrutschen, die ich gerne kennen würde.

Es wäre also besser, statt
(!(isValid)) throw Error
if (isValid)
mache etwas zu programmieren.

Für Deine Anwendung wäre es natürlich schön, wenn es eine echte Fehlerbehandlung gäbe.

Doch dazu später.

Ich weiß nicht, ob ich richtig liege, aber ich vermute mal, Du musst mehrere Formate in 24 Sprachen zuweisen.

Also muss Dein Skript wissen, welche (Sprachdatei) es gerade am Wickel hat.
Das hann man über den Dateinamen oder über ein bestimmtes Format ermitteln.
Dann muss Dein Skript wissen, welchen Textstellen welche Formate zuzuweisen sind und was Dein Skript machen muss, wenn das passende Format nicht vorhanden ist.

Ich würde dafür nicht viele Skripte schreiben, sondern ein Skript mit allen notwendigen Informationen versehen, die es dann nacheinander abarbeiten kann.

Solche Informationen speichert Du am besten in eine separate JSON-Datei (JSON-Datei erzeugen und wieder einlesen)
JSON-Object:
Code
var /*Object*/SkriptInfo = { 
[
{inddFile: "Vollständiger Dateipfad:",
toDoes: [
{text2Search: "xyz", style: "StyleName"},
.,
.,
.
]
]
}



Solch ein Objekt kannst Du dann mit zwei verschachtelten Schleifen in Deinem Skript komplett in einem Rutsch abarbeiten.

In etwa so:
äußere Schleife:
Datei öffnen;
innere Schleife:
Begriffe nacheinander suchen und Format zuweisen
äußere Schleife:
Datei speichern

Fehlerbehandlung:
Fehler erkennen, Art und Ort in eine Protokolldatei speichern.

Damit kannst Du [b]nachträglich die Fehler gezielt korrigieren.

Zitat Leider haut er mir ja die formatierungen mit den Skript ChainGREP raus... denn davor sind die Überschriften noch korrekt.

Dazu kann ich ohne konkrete Beispieldatei nichts sagen.

Zitat Gibt es vielleicht die Möglichkeit die formatierung beizubehalten oder im Skript zu sagen "Formatiere mir die gefundenen Texte in "Überschrift DE" wenn dieses Format nicht vorhanden ist, nehme "Überschrift ENG" "Überschrift FR" "Überschrift IT" ... usw.?

Klar, aber besser wäre es, wenn Du gezielt prüfst, ob das gewünschte Format vorhanden ist.

Zitat Ich wende dieses Skript 1x für jede Sprache an und nicht 1x für 24 Sprachen. An sich ist das auch gut so, da ich danach nochmal kontrollieren muss ob nicht zu viel oder zu wenig gelöscht worden ist.


Dann wäre es doch besser, dass das Skript Dir direkt die Ersetzung zeigt, Du das Problem behebst, und das Skript dann weiterläuft.

Zitat if (app.layoutWindows.length == 0) return;


Code
// besser: 
if (app.documents.length > 0){
// erledige, was zu tun ist!
}


Zitat Und wenn wir schon dabei sind... gibt es eine Möglichkeit gefundene Texte zu kopieren?


Klar, lese den Text aus und verwende bei formatierten Text das Textobject mit der Methode duplicate (textObject.duplicate(to, reference)) oder per Zuweisung durch auslesen von contents.

So, ich hoffe, diese Anmerkungen können Dir ein wenig helfen.

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: [#578306]
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
05.02.2021 - 05.11.2021

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Freitag, 05. Feb. 2021, 13.00 Uhr - Freitag, 05. Nov. 2021, 17.00 Uhr

Lehrgang

Bilden Sie sich zum zertifizierten Publishing-Multimedia-Profi aus. Neben Fotografie und Video befassen Sie sich mit der Medienproduktion, digitalen Publikationen und dem Webdesign für Desktop- und mobile Endgeräte.

Preis: CHF 10'500.-
Dauer: 30 Tage (ca. 210 Lektionen) – Unterricht findet jeweils am Freitag von 13 - 19 Uhr und Samstag von 09 - 17 Uhr statt

Ja

Organisator: Digicomp Academy AG

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

digicomp.ch/d/9PM

Veranstaltungen
01.03.2021 - 05.03.2021

Persönlichkeitsentwicklung

Online
Montag, 01. März 2021, 00.17 Uhr - Freitag, 05. März 2021, 00.18 Uhr

Webinar

Personal Power Coaching - Um was geht es? ​ Potenzialentfaltung: Potenzial entdecken und entfalten Talente entdecken: Deine Talente und Fähigkeiten erkennen und loslegen Gewohnheiten: schlechte Gewohnheiten durch Positive ersetzen Selbstbewusstsein stärken: Dein Bewusstsein stärken Eigendynamik entwickeln: Mehr Erfolg durch Eigenverantwortung & Disziplin Ängste kontrollieren: Ängste als Antrieb nutzen Entscheidungen treffen: Mit mehr Mut an die Sache ran! Lebensenergie steigern: Deine Lebensenergie steigern und aufrechterhalten Ziele erreichen: Ziele setzen und übertreffen! Motivationssteigerung: Mehr Erfolg durch Selbstmotivation Selbstvertrauen: Selbstvertrauen auf- und ausbauen

Details:
https://www.snfa.ch/swiss-personal-power-birolisik

Ja

Organisator: Birol Isik

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

https://www.snfa.ch/swiss-personal-power-birolisik

Neuste Foreneinträge


Serien-Dateinamenänderung (mit Automator?) "nur die ersten 7 Schreibstellen"

Barrierefreies PDF> keine klickbaren Fußnoten im PDF (Tagbaum)

Arbeitsfarbraum ändert sich bei neu angelegten Dokumenten von selbst

Adobe Acrobat DC Namen für Speicherung vorgeben

Update Problem

PSD CS6 (!) Mac: Dialog "Dateiinformationen" Fenster leer und Sackgasse

Illustrator Datei aktualisieren

Schwarz überdruckt nicht

Schwarz überdruckt nicht

CC 2020: Problem mit Textumfluss mit verankerten Objekten
medienjobs