[GastForen Programme Print/Bildbearbeitung Adobe InDesign Text zwischen zwei Markierungen hochstellen per Script

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

Text zwischen zwei Markierungen hochstellen per Script

Nimroy
Beiträge gesamt: 29

16. Jan 2006, 16:29
Beitrag # 1 von 9
Bewertung:
(10942 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo.

Mal wieder eine kleine JavaScript-Frage.

Ich möchte in einem sehr umfangreichen Dokument Elemente automatisch hochstellen. Wenn zum Beispiel im Text irgendwo E=mc<hoch>2</hoch> steht, möchte ich, dass die Tags rausfliegen und die 2 hochgestellt wird. Das tag für hochstellen ist also fix und das was dazwischen liegt, ist der zu bearbeitende Teil.

Hat irgendjemand schon mal was in der Richtung gemacht?
X

Text zwischen zwei Markierungen hochstellen per Script

Martin Fischer
  
Beiträge gesamt: 12785

16. Jan 2006, 16:51
Beitrag # 2 von 9
Beitrag ID: #205161
Bewertung:
(10932 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Nimroy,

hier ein schon etwas betagtes Skript, das ich mal zur Zuweisung des Zeichenformats "Bold" unter InDesign CS1 entwickelt habe.

Kannst Du es mal testen?
Und wenn's läuft, selber für die Hochstellung umschreiben?

Die anzupassende Startcodierung lautet unten: var myStart="#20";
Und die Endcodierung: var myEnd="#21";

Das Skript weist in dem Textfluß, in dem sich der Cursor befindet, allen Zeichen, die sich zwischen Start-TAG und Ende-Tag befinden, das Zeichenformat BOLD zu. Anschließend werden Start-TAG und Ende-Tag gelöscht.

Code
// Style2TextBetweenTags.js 
//
// code at beginning and code at end
var myStart="#20";
var myEnd="#21";

var myDocument = app.activeDocument;
var myCharacterStyleName ="Bold"; // name of CharacterStyle

app.findPreferences = null; app.changePreferences = null;

// try to set CharacterStyle - if not exists then create one
var myCharacterStyle = myDocument.characterStyles.item(myCharacterStyleName);
try{
myCharacterStyle.name;
}
catch (myError){
myCharacterStyle = myDocument.characterStyles.add({name:myCharacterStyleName,fontStyle:"Bold"});
}

// fetch start codes and end codes
start=myDocument.search(myStart,false,false,undefined);
stop=myDocument.search(myEnd,false,false,undefined);

// there must be at least one occurence of the code at beginning
// count of code at beginning has to be equal to count of code at the end
if(start.length>0 && start.length == stop.length)
{
st=start[0].parentStory;
for ( myCounter=0 ; myCounter < start.length ; myCounter++) {
st.characters.itemByRange(start[myCounter].index,stop[myCounter].index).appliedCharacterStyle=app.activeDocument.characterStyles.item(myCharacterStyle.name);
}
myDocument.search(myStart,false,false,"");
myDocument.search(myEnd,false,false,"");
}
else
{
myText="Maybe there is no start code - or count of start code and count of stop code are not equal!" + "\n" + "Start: " + start.length + "\n" + "Stop: " + stop.length;
alert (myText);
}



als Antwort auf: [#205160]
(Dieser Beitrag wurde von Martin Fischer am 16. Jan 2006, 17:09 geändert)

Text zwischen zwei Markierungen hochstellen per Script

Nimroy
Beiträge gesamt: 29

16. Jan 2006, 17:13
Beitrag # 3 von 9
Beitrag ID: #205167
Bewertung:
(10915 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

vielen Dank für die fixe Antwort. Ich guck mir das mal an, knabber mich durch die Referenz und bin da ganz guter Dinge.


als Antwort auf: [#205161]

Text zwischen zwei Markierungen hochstellen per Script

Nimroy
Beiträge gesamt: 29

18. Jan 2006, 12:24
Beitrag # 4 von 9
Beitrag ID: #205586
Bewertung:
(10880 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nachtrag: Skript funktioniert einwandfrei und ich konnte es mittels der referenz nach meinen Wünschen abändern.


als Antwort auf: [#205167]

Text zwischen zwei Markierungen hochstellen per Script

Nimroy
Beiträge gesamt: 29

20. Jan 2006, 11:03
Beitrag # 5 von 9
Beitrag ID: #206030
Bewertung:
(10855 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hier mein modifiziertes Skript:
Code
// Zuweisen von zeichenformaten mittels Formatierungs-Tags 
//
// Marker
var myStart="<hoch>";
var myEnd="</hoch>";

var myDocument = app.activeDocument;
var myCharacterStyleName ="Hochgestellt"; // Name des Zeichenformates

app.findPreferences = null; app.changePreferences = null;

// Abfrage, ob Zeichenformat vorhanden - andernfalls Meldung und Abbruch
var myCharacterStyle = myDocument.characterStyles.item(myCharacterStyleName);
try{
myCharacterStyle.name;
}
catch (myError){
myAlert="Es ist kein Zeichenformat mit dem Namen vorhanden. Ein leeres Zeichenformat wurde daher automatisch erzeugt." +"\n" +"Bitte kontrollieren Sie dessen Einstellungen";
alert(myAlert);
myCharacterStyle = myDocument.characterStyles.add({name:myCharacterStyleName,baselineShift:"4",pointSize:"6"});
}

// Auszählen der Start- und End-Tags
start=myDocument.search(myStart,false,false,undefined);
stop=myDocument.search(myEnd,false,false,undefined);

// Wenn eine paarige Anzahl Start- und End-tags gesetzt wurde, wird das Fomat zugewiesen,
// andernfalls wird geprüft, ob überhaupt Tags gesetzt wurden und eine entsprechende Meldung ausgegeben
if(start.length>0 && start.length == stop.length)
{
st=start[0].parentStory;
for ( myCounter=0 ; myCounter < start.length ; myCounter++) {
st.characters.itemByRange(start[myCounter].index,stop[myCounter].index).appliedCharacterStyle=app.activeDocument.characterStyles.item(myCharacterStyle.name);
}
myDocument.search(myStart,false,false,"");
myDocument.search(myEnd,false,false,"");
}
else
{
if(start.length!=stop.lenght &&start.length!=0){
myText="Ungleiche Anzahl Start- und End-Tags. Bitte überprüfen Sie Ihre Formatierungen" + "\n" + "Start-Tags: " + start.length + "\n" + "Stop-Tags: " + stop.length;
}
else
{
myText="Keine Formatierungsmarker gesetzt" + "\n" + "Start-Tags: " + start.length + "\n" + "Stop-Tags: " + stop.length;
}
alert (myText);
}



als Antwort auf: [#205586]

Text zwischen zwei Markierungen hochstellen per Script

Vikimaus
Beiträge gesamt: 214

16. Feb 2008, 13:43
Beitrag # 6 von 9
Beitrag ID: #337251
Bewertung:
(9266 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

wäre es mit diesem Script auch möglich alle Wörter in einem ganzen Dokument in Bold oder Italic zu stellen? Jeder Text sthet in einer extra Tabelle un somit müsste ich so in jede Sprache gehen und das Script auslösen.

Ich habe folgendes vor: Ich habe eine Excel-Liste mit verschiedenen Texten (zum Beispiel Haftungssätze oder Garantien) in diversen Sprachen. Da es sich hier um absolute Routineaufgaben handelt und es bisher immer mit Copy und Paste aus einer Indesign-Tabelle gelöst wurde, würde ich das gerne über eine Datenzusammenführung lösen.
Entweder über Excell oder direkt über die sowieso schon bestehende Indesign-Tabelle, die ja ohne Probleme in .txt abgespeichert werden könnte. Leider ist es mir nicht möglich, die Formatierung der Datei mir zu übertragen, da ja leider nur .txt-Dateien bei der Datenzusammenführung unterstützt werden.

Nun war meine Idee die Wörter, die gefettet werden sollen, mit einer im Text auf alle Fälle nicht vokommenden Kombination von Zeichen zu versehen. (wie zum Beispiel im Script #20 und #21). Die Arbeit würde nur einmal gemacht werden müssen und somit wäre schnell eine immense Zeitersparnis drin. Datenbankanbindung ist bisher noch nicht spruchreif. Aber eine schnelle und einfache Zwischenlösung wäre echt toll.

Wenn das funktionieren würde, könnte ich diese Arbeit echt vereinfachen, da man nach der Datenzusammenführung nur noch ein oder zwei Scripte auslösen müßte und die Texte fertig formatiert hätte.

Gibt es eigentlich bei dem Format .txt eine Begrenzung der Zeichen? Ich hatte mal probiert, ob das auch mit den Zeichen der Hiraginu Kaku funktioniert, doch leider kam dabei nichts heraus.

Ich würde mich riesig über eine Antwort freuen und bedanke mich schon einmal für dieses tolle Forum in dem ich schon viele tolle Lösungen gefunden habe.

Achso, ich verwende dazu Indesign CS2 auf einem Mac mit 10.4.11. Die .txt-Dateien können wie oben beschrieben direkt aus Indesign kommen oder aus Microsoft Excel für Macintosh.

Greets
vikimaus


als Antwort auf: [#205161]
(Dieser Beitrag wurde von Vikimaus am 16. Feb 2008, 13:49 geändert)

Text zwischen zwei Markierungen hochstellen per Script

pixxxelschubser
Beiträge gesamt: 1710

16. Feb 2008, 13:57
Beitrag # 7 von 9
Beitrag ID: #337254
Bewertung:
(9262 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Vikimaus,

a) die Angabe Deiner InDesign-Version fehlt (CS3 Zell- und Tabellenstile)

Antwort auf: wäre es mit diesem Script auch möglich alle Wörter in einem ganzen Dokument in Bold oder Italic zu stellen?

[Strg]+[A] und Absatzformat zuweisen

Antwort auf: Jeder Text sthet in einer extra Tabelle

Tabellen vorher verknüpfen, dann alle Tabellen auswählen und Absatzformat zuweisen.

b) ich sehe noch keine Notwendigkeit für ein Script


als Antwort auf: [#337251]

Text zwischen zwei Markierungen hochstellen per Script

Vikimaus
Beiträge gesamt: 214

16. Feb 2008, 14:09
Beitrag # 8 von 9
Beitrag ID: #337258
Bewertung:
(9256 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
UI so schnelle Antorten??? Danke!

Verwendete Version ist CS2.

Vielleicht noch etwas konkreter: Also, es geht um die automatische Erstellung von Standard-Teilen in Bedienungsanleitungen. Standard ist z.B. immer die Haftung und CE für fast jedes Produkt. Allerdings werden verschiedene Formate für die Bedienungsanleitungen benötigt. Auch die Sprachen sind von BA zu BA verschieden. Es gibt welche mit 12 bis zu sogar 22 Sprachen. Bei älteren Dateien müssen z.B. diese beiden Bereiche immer aktualisiert werden. Das läuft eben bisher über Copy und Paste aus einer "Master"-Datei. Meine Überlegung war nun diese Standards in eine Excel-Liste zu packen. Einfach Platzhalter in allen Sprachen an die entsprechende Stelle zu stellen und über die Datenzusammenführung zusammen zu kopieren.

Das ganze habe ich schon probiert und es funktioniert bis auf eben die Sprachen, die besondere Zeichen verwenden einwandfrei. Leider wird auf den Text das komplette Absatzformat des Platzhalters angewendet und die gefetteten Teile aus der "Master-Datei" sind weg.

Deshalb war meine Überlegung in die "Master-TXT ein Anfangs und End-Zeichen für den zu fettenden Teil zusetzen.

Falls jemand eine Idee hätte, könnte ich auch gerne mal eine Muster ID-Datei und entsprechende txt.Datei hochladen.

Danke!
vikimaus


als Antwort auf: [#337254]
(Dieser Beitrag wurde von Vikimaus am 16. Feb 2008, 14:10 geändert)

Text zwischen zwei Markierungen hochstellen per Script

Vikimaus
Beiträge gesamt: 214

16. Feb 2008, 19:49
Beitrag # 9 von 9
Beitrag ID: #337285
Bewertung:
(9220 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hm, noch ein Problem,

das Script funktioniert eigentlich ganz gut, allerdings nur in einem Textrahmen. Was muss den geändert werden, damit ich auch in einer Tabelle suchen und ersetzen kann?

Ich bekomme immer folgende Fehlermeldung:

JavaScript Fehler!

Fehlernummer: 45
Fehlerzeichenfolge: Object is invalid
Zeile: 31
Quelle: st.characters.itemByRange(Start
(myCounter).index, stopp
(myCounter).index)appliedCharacterStyle=app.active
Document.characterStyles.tiem
(myCharacterStyle.name);

Würde mich freuen, wenn mir da noch einmal jemand ein wenig Hilfestellung geben könnte!

Viele Grüße
vikimaus


als Antwort auf: [#337258]
X

Aktuell

InDesign / Illustrator
MTT_300x300_11_2022

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
18.06.2024

Online
Dienstag, 18. Juni 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

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

So optimieren Sie Ihren LFP-Workflow
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