[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

Guzzi-Birgit
Beiträge gesamt: 81

11. Dez 2009, 10:50
Beitrag # 1 von 65
Bewertung:
(44839 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe HDSler,

ich muss demnächst ein Buch mit 700 Seiten layouten, welches 2 Indexe bekommen soll, einmal für Orte und einmal für Namen.

Vor ein paar Jahren haben wir das Problem bei einem ähnlichen Projekt mit dem Script »IndexFromCharakterStyle« von Herrn Fischer prima lösen können.

Leider läuft dieses Script wohl nur in CS2. Wenn ich versuche es in CS 4 zu nutzen kommt folgende Fehlermeldung:

Fehlernummer: 55
Fehlerzeichenfolge: Objekt unterstützt Eigenschaft oder Methode findPreferences nicht
Datei:/Applications/Adobe InDesign CS4/Scripts/Script Panel/IndexFromCharakterStyle_CS2.jsx
Zeile: 59
Quelle: app.findPreferences = null;
app.changePreferences = null


Auch über die Suche konnte ich für CS 4 nicht fündig werden.
Besteht die Möglichkeit dieses Script für CS4 zu modifizieren? Leider habe ich davon NULL Ahnung.

Kann mir da jemand weiterhelfen?

Lieben Dank im voraus!
Birgit

MAC Power PC G5
InDesign CS4 Version 6.0.4
X

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

11. Dez 2009, 11:19
Beitrag # 2 von 65
Beitrag ID: #427412
Bewertung:
(44769 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Birgit,

es gibt eine Version des Skripts für CS3, die auch in CS4 funktionieren sollte:
IndexFromCharacterStyle_CS3a.jsx


als Antwort auf: [#427406]

IndexFromCharacterStyle CS 4

Guzzi-Birgit
Beiträge gesamt: 81

11. Dez 2009, 11:27
Beitrag # 3 von 65
Beitrag ID: #427420
Bewertung:
(44766 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Fischer,
vielen Dank für die schnelle Antwort!
Wenn ich versuche das Script in CS 4 anzuwenden, dann erhalte ich folgende Fehlermeldung:

JavaScript Fehler!
Fehlernummer: 8
Fehlerzeichenfolge: Syntaxfehler
Datei: /Applications/Adobe InDesign CS4/Scripts/Scripts Paneld/IndexFromCharacterstyle_CS3a.jsx
Zeile: 1
Quelle: {\rtf1/mac/ansicpg10000\cocoartf824\cocoasubrtf480
Problematischer Text:\


Was mache ich da falsch?

LG
Birgit


als Antwort auf: [#427412]

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

11. Dez 2009, 11:35
Beitrag # 4 von 65
Beitrag ID: #427421
Bewertung:
(44757 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Birgit,

> Was mache ich da falsch?

Du hast den Code im RTF-Format gesichert.
Es muß als reine Text-Datei gesichert werden.

Siehe auch Skripte installieren.


als Antwort auf: [#427420]

IndexFromCharacterStyle CS 4

Guzzi-Birgit
Beiträge gesamt: 81

11. Dez 2009, 11:42
Beitrag # 5 von 65
Beitrag ID: #427422
Bewertung:
(44754 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ups, Sorry! Ja, wer lesen kann ist klar im Vorteil :-)

Jetzt hab ich das nochmal als reine Text-Datei gesichert. Nun kommt folgende Fehlermeldung:

JavaScript Fehler!
Fehlernummer: 25
Fehlerzeichenfolge: Erwartet: )
Datei: /Applications/Adobe InDesign CS 4/Scripts/Scripts Panel/IndexFormCharacterstyle_CS3a.jsx
Zeile: 27


Was mache ich jetzt noch falsch?

LG
Birgit


als Antwort auf: [#427421]

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

11. Dez 2009, 12:12
Beitrag # 6 von 65
Beitrag ID: #427432
Bewertung:
(44726 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Birgit,

hast Du den kompletten Code kopiert?
Schau mal nach, ob, die letzte Zeile tatsächlich mit myList ); abschließt.


als Antwort auf: [#427422]

IndexFromCharacterStyle CS 4

Guzzi-Birgit
Beiträge gesamt: 81

14. Dez 2009, 07:09
Beitrag # 7 von 65
Beitrag ID: #427598
Bewertung:
(44661 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Herr Fischer,

ich hab den Code aus dem Link kopiert, den Sie mir genannt hatte:

Code
// IndexFromCharacterStyle_CS3a.jsx  
//
var myErr = mySucc = 0;
var myList = ""
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;

app.findTextPreferences.appliedCharacterStyle = "Index"
doc = app.activeDocument
if( doc.indexes.length == 0 )
doc.indexes.add()
f = doc.findText()
for( oneEntry = f.length-1; oneEntry > -1; oneEntry-- ) {
doc.indexes[0].topics.add( f[oneEntry].contents )
try {
doc.indexes[0].topics.item( f[oneEntry].contents).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"



Fehlt da was?

Birgit


als Antwort auf: [#427432]
(Dieser Beitrag wurde von Martin Fischer am 15. Feb 2011, 19:40 geändert)

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

14. Dez 2009, 08:18
Beitrag # 8 von 65
Beitrag ID: #427604
Bewertung:
(44647 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Birgit,

Antwort auf: Fehlt da was?


Ja.

Die letzte Zeile muss so lauten:

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


Man kann's auch so schreiben:

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



als Antwort auf: [#427598]
(Dieser Beitrag wurde von Martin Fischer am 14. Dez 2009, 08:46 geändert)

IndexFromCharacterStyle CS 4

Guzzi-Birgit
Beiträge gesamt: 81

14. Dez 2009, 08:47
Beitrag # 9 von 65
Beitrag ID: #427611
Bewertung:
(44633 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Fischer,

ich mags schon gar nicht mehr sagen . . . aber ich hab schon wieder ne andere Fehlermeldung:

JavaScript Fehler!
Fehlernummer: 30477
Fehlerzeichenfolge: Ungültiger Wert für Einrichtung der Eigenschaft "appliedCharacterStyle". String, CharacterStyle or NothingEnum enumerator erwartet aber "Index" erhalten.
Datei: /Applications/Adobe InDesign CS4/Scripts/Sripts Panel/IndexFromCharacterStyle_CS4.jsx
Zeile: 8
Quelle:
app.findTextPreferences.appliedCharacterStyle = "Index"


Und nun?

Gruß
Birgit


als Antwort auf: [#427604]

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

14. Dez 2009, 09:10
Beitrag # 10 von 65
Beitrag ID: #427614
Bewertung:
(44619 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nun, ich vermute, dass das Skript kein Zeichenformat mit dem Namen 'Index' findet.

Im Originalskript habe ich inzwischen eine entsprechende Abfrage eingearbeitet.


als Antwort auf: [#427611]

IndexFromCharacterStyle CS 4

Guzzi-Birgit
Beiträge gesamt: 81

14. Dez 2009, 09:21
Beitrag # 11 von 65
Beitrag ID: #427615
Bewertung:
(44606 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ach so, dann hab ich nen Gedankenfehler gemacht.

Bei dem Script für CS 2 war es so, dass man nach der gewünschten Zeichenstilvorlage gefragt wurde. Das war für uns optimal, weil wir ja zwei verschiedene Indexe benötigen (Personen und Orte) und dementsprechend natürlich auch zwei verschiedene Zeichenstilvorlagen angelegt haben.

Wenn ich die eine Stilvorlage in INDEX umbenenne, dann funktioniert es! Aber wie bekomme ich dann den zweiten Index hin?

LG
Birgit


als Antwort auf: [#427614]

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

14. Dez 2009, 09:39
Beitrag # 12 von 65
Beitrag ID: #427620
Bewertung:
(44592 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Skript ist nicht für mehrere verschiedene Indexe ausgelegt.

Aber wenn Du das Zeichenformat auswählen möchtest, dann versuch's mal damit:
Code
// IndexFromCharacterStyle_CS4.jsx 
//
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;
if( doc.indexes.length == 0 )
doc.indexes.add()
f = doc.findText()
for( oneEntry = f.length-1; oneEntry > -1; oneEntry-- ) {
var _topic = doc.indexes[0].topics.add( f[oneEntry].contents )
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;
}



als Antwort auf: [#427615]
(Dieser Beitrag wurde von Martin Fischer am 12. Nov 2010, 21:46 geändert)

IndexFromCharacterStyle CS 4

Guzzi-Birgit
Beiträge gesamt: 81

14. Dez 2009, 09:44
Beitrag # 13 von 65
Beitrag ID: #427623
Bewertung:
(44580 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Super Sache, genau DAS ist es, funktioniert einwandfrei!

Vielen lieben Dank Herr Fischer, Sie sind (mal wieder) meine Rettung!

LG
Birgit


als Antwort auf: [#427620]

IndexFromCharacterStyle CS 4

vanlent
Beiträge gesamt: 153

15. Feb 2011, 16:31
Beitrag # 14 von 65
Beitrag ID: #464822
Bewertung:
(42687 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Ind-Gemeinde,

habe dieses Skript schon einige Male in CS3 eingesetzt, und hatte die Hoffnung, dass es in CS4 so weitergeht. Leider gehts bei mir nicht.
(CS4 Mac 10.4.11)

Auf http://img713.imageshack.us/i/indexfehlmeld.png/ kan man die Fehlermeldung sehen. Hat jemand ähnliche Erfahrungen gemacht?

Grüße
Frank


als Antwort auf: [#427623]

IndexFromCharacterStyle CS 4

Martin Fischer
  
Beiträge gesamt: 12783

15. Feb 2011, 19:38
Beitrag # 15 von 65
Beitrag ID: #464835
Bewertung:
(42661 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Frank,

das Skript sollte genauso wie in CS3 funktionieren.
Ich vermute, dass mit dem Inhalt einer Fundstelle etwas nicht passt.
Vermutlich hat ein verankertes Objekt das entsprechende Zeichenformat zugewiesen bekommen.

Die folgende Variante sollte die fehlerauslösende Stelle heranzoomen.
Dann kannst Du prüfen, ob mit der Fundstelle etwas nicht in Ordnung ist.
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;
_topic = _index.topics.itemByName( f[oneEntry].contents );
if (_topic == null) {
try {
_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: [#464822]
(Dieser Beitrag wurde von Martin Fischer am 16. Feb 2011, 08:21 geändert)
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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

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

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

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? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

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

Und es geht doch: Automatisierung im Großformatdruck!