[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt IndexFromCharacterStyle CS 4

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

IndexFromCharacterStyle CS 4

vanlent
Beiträge gesamt: 153

16. Feb 2011, 10:01
Beitrag # 16 von 65
Beitrag ID: #464884
Bewertung:
(12984 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Martin,

ich glaube, wenn jemand das Bundesverdienstkreuz für angewandtes DTP verdient hat, dann Du.

Habe Dein Script ausprobiert, da hat es ein paar fehlerhafte Stellen gefunden (Leerstellen die solo mit dem ZF Index formatiert waren).
Danach hat es einmal ein paar Indexmarken generieren lassen, aber dann wieder eine Fehlermeldung ausgegeben:
http://img34.imageshack.us/i/indexfehl2.png/

Seltsam ist – das habe ich danach nochmal wiederholt –, dass es dann keine Marken mehr generiert hat.

Komisch.

Grüße
Frank


als Antwort auf: [#464835]
X

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

16. Feb 2011, 10:24
Beitrag # 17 von 65
Beitrag ID: #464887
Bewertung:
(12982 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Frank,
lieber Schmeichler, ;-)

Mist, da ist mir beim Aufräumen ein Fehler unterlaufen.
Die try-catch Klammer ist falsch positioniert.

Versuch's mal mit dieser Variante:

Code
// IndexFromCharacterStyle_z_CS4.jsx   
//
// ggf. mit Zoom auf fehlerhafte Fundstelle
//
var myErr = mySucc = 0;
var myList = "";
var doc = app.activeDocument
var myCharacterStyle = myDisplayDialog(doc);
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;


app.findTextPreferences.appliedCharacterStyle = myCharacterStyle;
var _index = ( doc.indexes.length == 0 )
? doc.indexes.add()
: doc.indexes.firstItem();
f = doc.findText()
for( oneEntry = f.length-1; oneEntry > -1; oneEntry-- ) {
var _topic = null;
try {
_topic = _index.topics.itemByName( f[oneEntry].contents );
if (_topic == null)
_topic = _index.topics.add( f[oneEntry].contents );
}
catch(e) {
selectIt(f[oneEntry]);
}
try {
_topic.pageReferences.add( f[oneEntry], PageReferenceType.currentPage ) ;
mySucc++;
}
catch(e) {
myList += f[oneEntry].contents + "\r" ;
myErr++;
}
}

alert( "Das Ergebnis:\r" + mySucc + " x erfolgreich\r" + myErr + " x versagt:\r-----------\r" + myList );


function myDisplayDialog(doc){
var myFieldWidth = 120;

var myCharStyles = doc.characterStyles.everyItem().name;

var myDialog = app.dialogs.add({name:"Index-Begriffe"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Zeichenformat:", minWidth:myFieldWidth});
}
with(dialogColumns.add()){
var mySourceDropdown = dropdowns.add({stringList:myCharStyles, selectedIndex:myCharStyles.length-1});
}
}
}
var myResult = myDialog.show();
if(myResult == true){
var theCharStyle =myCharStyles[mySourceDropdown.selectedIndex];
myDialog.destroy();
}
else{
myDialog.destroy()
exit();
}
return theCharStyle;
}

function selectIt( theObj )
{
var myZoom = 400;
app.select(theObj,SelectionOptions.replaceWith);
app.activeWindow.zoomPercentage = myZoom;

// Option zum Abbruch, falls innerhalb einer Schleife aufgerufen
var myChoice = confirm ('Fundstelle fehlerhaft!\rWeiter?' );
if (myChoice == false)
exit();
return app.selection[0];
}



als Antwort auf: [#464884]

IndexFromCharacterStyle CS 4

vanlent
Beiträge gesamt: 153

16. Feb 2011, 11:23
Beitrag # 18 von 65
Beitrag ID: #464895
Bewertung:
(12957 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Martin,

was soll ich sagen?
Dein Skript hat mir ein paar Fehler angezeigt (Softreturns), die habe ich anders formatiert, und anschließend hat er 1.400 Indexmarken gesetzt.
Perfekt.

Schreibe doch mal ein Buch übers Skripten.
Das würde ich sofort kaufen. ;)
Und ich bin bestimmt nicht der Einzige!

D A N K E!!!!!!
Mal wieder: großes Kino!

ein total erleichterter
Frank


als Antwort auf: [#464887]

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

16. Feb 2011, 11:38
Beitrag # 19 von 65
Beitrag ID: #464899
Bewertung:
(12954 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Schreibe doch mal ein Buch übers Skripten.


Dann fände ich wohl keine Zeit mehr für's Skripten. ;-)

Vor ein paar Jahren habe ich mal eine englischsprachige Einführung ins Skripten von Peter Kahrel ins Deutsche übersetzt. Dabei habe ich in der Praxis erfahren, mit was für einem Aufwand allein eine Übersetzung verbunden ist, geschweige denn ein eigenständiges Buch zu schreiben.

Demnächst erscheint eine dickes Buch von Gregor Fellenz in deutscher Sprache:
InDesign automatisieren. Keine Angst vor Skripting, GREP & Co.


als Antwort auf: [#464895]

IndexFromCharacterStyle CS 4

vanlent
Beiträge gesamt: 153

16. Feb 2011, 13:24
Beitrag # 20 von 65
Beitrag ID: #464935
Bewertung:
(12923 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke auch für diesen Hinweis.
Werde ich mir auf meiner Amazon-Wunschliste merken.

Grüße
Frank


als Antwort auf: [#464899]

IndexFromCharacterStyle CS 4

uswd
Beiträge gesamt: 317

22. Feb 2011, 11:29
Beitrag # 21 von 65
Beitrag ID: #465393
Bewertung:
(12878 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

eine zu meinem Posting im Office-Forum passende Frage: Kann dieses Skript so angepasst werden, dass es nicht Seitenzahlen, sondern Absatznummern (basierend auf einem AF) ausgibt?

Ciao
Uli


als Antwort auf: [#464835]

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

22. Feb 2011, 11:46
Beitrag # 22 von 65
Beitrag ID: #465398
Bewertung:
(12873 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Uli,

ich habe Dir im Office-Forum auf Deine Frage bereits geantwortet:
Zitat In InDesign wäre dies per Skript zu lösen. Vorausgesetzt, die Autorennamen weisen ein bestimmtes, eindeutiges Merkmal (z.B. Zeichenformat) auf.

Dann könnte man die Autoren und die zum Absatz gehörige Absatznummer per Skript ermitteln und z.B. tabsepariert in eine Textdatei exportieren, die wiederum in Excel, Word o.ä. zur alphabetischen Sortierung und Restrukturierung verwendet werden könnte.

Letzteres (Sortierung und Zusammenfassung) wäre u.U. auch (per Skript) in InDesign möglich.


Es würde keinen Sinn machen, dafür das hier diskutierte Skript als Ausgangsbasis zu verwenden, denn dieses Skript greift auf die Index-Funktion von InDesign zurück. Für Deine Aufgabe kommt die interne Index-Funktion aber nicht in Betracht (deswegen wäre auch hier eine Diskussion in einem neuen Thread angebracht).

Die oben skizzierte Lösung wäre statisch.
D.h. die Zuordnung Autor und Absatznummer würde sich beim Einfügen von neuen Absätzen und einer damit verbundenen Änderung der Nummerierung nicht automatisch anpassen.

Handelt es sich um statische Absatznummern oder um dynamische (Absatznummerierungs-Funktion)?
In letzterem Fall könntest Du das Autor für Autor über Querverweise auf die Absatznummer erledigen.
Manuell eine Menge Geschäft.
Per Skript eine interessante Herausforderung. ;-)


als Antwort auf: [#465393]
(Dieser Beitrag wurde von Martin Fischer am 22. Feb 2011, 11:58 geändert)

IndexFromCharacterStyle CS 4

JayBee75
Beiträge gesamt: 5

15. Nov 2011, 14:59
Beitrag # 23 von 65
Beitrag ID: #484444
Bewertung:
(12354 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

das ist mein erstes Posting hier, hab aber schon oft als Gast mitgelesen. Hab nun ein kleines Problem, daß für andere wahrscheinlich garkeins ist... Außerdem schonmal ein Dank an alle, die hier so sinnvolle Informationen posten, das ist schon toll...

Also, ich habe das Script "Index aus Zeichenstil" versucht so zu modifizieren, daß es einen "Index aus Absatzstil" erzeugt. Im prinzip hat Id auch alles richtig gemacht, aber wenn zwei aufeinanderfolgende Absätze den für den Index markierten Stil haben, werden diese nicht getrennt sondern zusammen behandelt. Wie kann ich das Script dazu bringen, die Fundstellen an Absatzmarken zu trennen?

Hintergrund: Hier ist ein Buch mit 100 Firmenportraits, in jedem Portrait ist eine Liste mit Referenzkunden. Diese Referenzkunden sollen jetzt in einen Index. Die Referenzkunden sind ganz simpel in einem Textrahmen, jeder ein eigener (kurzer) Absatz.

Danke schonmal, falls mir da jemand helfen könnte...

VG
Jan


als Antwort auf: [#465398]

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

15. Nov 2011, 16:50
Beitrag # 24 von 65
Beitrag ID: #484452
Bewertung:
(12331 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Jan,

Antwort auf: Wie kann ich das Script dazu bringen, die Fundstellen an Absatzmarken zu trennen?


Verwende statt der Textsuche die GREP-Suche und ergänze die Suchbedingung durch den Ausdruck [^\r]+ (alle Zeichen außer der Absatzmarke mindestens einmal und öfters).


als Antwort auf: [#484444]

IndexFromCharacterStyle CS 4

JayBee75
Beiträge gesamt: 5

15. Nov 2011, 17:43
Beitrag # 25 von 65
Beitrag ID: #484458
Bewertung:
(12308 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

vielen Dank, wusste doch, daß das ganz einfach zu lösen ist. Am längsten hab ich gebraucht, um die Referenz bei Adobe zu finden, wie man Grep in Scripten anspricht :-)

Danke nochmal!!
Jan


als Antwort auf: [#484452]

IndexFromCharacterStyle CS 4

Christian Glombitza
Beiträge gesamt: 493

27. Jun 2012, 09:49
Beitrag # 26 von 65
Beitrag ID: #497093
Bewertung:
(11939 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

kurze Frage zu deinem "Super"Script "IndexFromCharacterStyle_z_CS4.jsx" - funktioniert dies auch für CS6?

Dein Script hat mir schon sehr viel Zeit erspart - DANKE!

lg
Christian


als Antwort auf: [#464835]

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

27. Jun 2012, 10:25
Beitrag # 27 von 65
Beitrag ID: #497102
Bewertung:
(11925 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christian,

Antwort auf: "IndexFromCharacterStyle_z_CS4.jsx" - funktioniert dies auch für CS6?


So aus der Erinnerung heraus wage ich zu behaupten, dass es unter CS6 (und CS5/CS5.5) wie unter CS4 funktionieren sollte. Diesbezüglich hat sich seit CS4 nichts verändert.
Leider, denn man könnte sich etwa die Verwaltung mehrerer unabhängiger Register (Stellenregister, Autoren, Orte, Sachen ...) vorstellen.

Hast Du's mal – an einer Kopie eines CS6-Dokuments – probiert?

Gib Bescheid, wenn etwas hakt.


Antwort auf: Dein Script hat mir schon sehr viel Zeit erspart

Dahinter steckt Absicht. ;-)


als Antwort auf: [#497093]

IndexFromCharacterStyle CS 4

Christian Glombitza
Beiträge gesamt: 493

27. Jun 2012, 10:34
Beitrag # 28 von 65
Beitrag ID: #497107
Bewertung:
(11919 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

nein, kann es erst in ein paar Tagen versuchen - wenn neuer PC und CS6 geliefert und eingerichtet ist.

Wollte nur mal vorab nachfragen - damit die wirklich wichtigen Dinge funktionieren ;-)

Melde mich diesbezüglich zurück.

Danke für deine guten Absichten! ;-)

lg
Christian


als Antwort auf: [#497102]

IndexFromCharacterStyle CS 4

Klaus_HH
Beiträge gesamt: 6

4. Mär 2013, 12:56
Beitrag # 29 von 65
Beitrag ID: #509359
Bewertung:
(11192 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

ich habe als stiller Leser diesen Thread verfolgt und auch das geniale Script ausprobiert, das für meine einfache Indizierungsaufgabe für eine Vereinszeitung sehr gut passt (große "Universallösungen" wären bei uns völlig überdimensioniert) und mir stundenlanges händisches Indizieren erspart. Hierfür herzlichen Dank, das hilft mir sehr!!

Zwei(einhalb) Fragen hätte ich noch:

1. Ist es möglich, durch eine unaufwendige Modifikation des Scripts dieses dazu zu bringen, Indexmarkierungen für Eigennamen (sonst manuell in Windows über "Umschalt + Alt + Strg + Ä") anstatt der Standard-Marken zu vergeben?

Ich muss ausschließlich historische Personennamen indizieren, und bei Adligen mit "von" oder "v." vor dem Namen liefert die Standard-Marke nicht die gewünschte Sortierung. Es wird also bei der späteren Indexerstellung bspw. "von Sallwitz" anstatt "Sallwitz, von" erzeugt, was schade ist, da ich dann manuell nachkorrigieren muss.

2a. Angesichts der Funktionsweise des Scrips (vom Code verstehe ich allerdings absolut gar nichts...) ist es vermutlich nicht mit geringem Aufwand möglich, Satzzeichen am Ende des indizierten Namens automatisch auszusparen?

Bei uns kommen die Namen oft als Satzbestandteile vor, dann häufig mit einem Satzzeichen dahinter. Diese Satzzeichen besitzen korrekterweise aber auch das Attribut "kursiv", nach dem das Script bei mir sucht. Also bspw: "Herr Müller, im Jahre 1832 nach Amsterdam verzogen." Die Indizierung liefert dafür also "Müller," einschließlich Satzzeichen. Leider kann ich die Kursivierung des Satzzeichens nicht entfernen, weil das typografisch nicht korrekt wäre.

Und wenn ich ein Workaround anwenden würde - mir fiele im Moment nur ein zusätzlich definiertes kursives Zeichenformat ein, das ich nur dem Satzzeichen zuweise, damit dieses dann nicht mit indiziert wird - ist der Aufwand so groß, dass ich auch gleich manuell indizieren könnte.

Mir fällt gerade noch etwas ein... Ich gehe normalerweise so vor: Ich lasse alle kursiven Namen im Dokument suchen (glücklicherweise gibt es im Fließtext keine anderweitigen kursiven Wörter) und weise diesen durch die Suchen+Ersetzen-Funktion das spezielle kursive Zeichenformat zu. Dieses stellt dann die Basis für die Indizierung per Script dar.

Möglicherweise könnte ich mein Problem mit den nicht mitzuindizierenden Satzzeichen schon durch einen besser definierten Suchen+Ersetzen-Durchlauf lösen, der mir nur die Namen selbst mit dem kursiven Zeichenformat versieht, aber das endende Satzzeichen ausspart. Möglicherweise ist das über eine GREP-Aktion zu erledigen, aber davon habe ich bisher auch nur seeeehr wenig verstanden... - Aber ein denkbarer Ansatz? Vielleicht kämen mir dabei aber wieder die Adligen mit "v." in die Quere?

und 2b. Wir haben auch häufig Namens-Aufzählungen ("Müller, Meier, Schulze, von Sallwitz."), die das Script dann als einen einzigen langen Block indiziert. Vermutlich müsste ich hier bei den Leerschritten das "kursiv"-Attribut entfernen (außer bei "von Sallwitz"), damit es die Namen einzeln indiziert?

Danke und Grüße
Klaus

Ach ja: ID CS5 unter Windows 7


als Antwort auf: [#464887]
(Dieser Beitrag wurde von Klaus_HH am 4. Mär 2013, 13:01 geändert)

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

4. Mär 2013, 13:18
Beitrag # 30 von 65
Beitrag ID: #509363
Bewertung:
(11176 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Klaus,

das alles könnte man implementieren.
Allerdings fehlt mir dazu die Zeit.


als Antwort auf: [#509359]
X

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