[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt IndexFromCharacterStyle - Formatgruppe

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

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 331

13. Feb 2015, 12:33
Beitrag # 1 von 8
Bewertung:
(4114 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich habe das Script [url=http://hilfdirselbst.org/index1.php?t=Index&read_article=17]IndexFromCharacterStyle angepasst, damit aus Absatzformaten ein Index erstellt wird. Soweit so gut. Nun werden aber keine Absatzformate angezeigt, die in einer Formatgruppe enthalten sind. Wie kann ich es dazu bringen, es doch zu machen?
Code
var myErr = mySucc = 0;     
var myList = "";
var doc = app.activeDocument
var myParagraphStyle = myDisplayDialog(doc);
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;


app.findTextPreferences.appliedParagraphStyle = myParagraphStyle;
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.paragraphStyles.everyItem().name;

var myDialog = app.dialogs.add({name:"Index-Begriffe"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Absatzformat:", 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];
}


Besten Dank für Anregungen.
---
Viele Grüße
Mario
X

IndexFromCharacterStyle - Formatgruppe

Martin Fischer
  
Beiträge gesamt: 12491

13. Feb 2015, 14:20
Beitrag # 2 von 8
Beitrag ID: #537059
Bewertung:
(4073 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

verwende allParagraphStyles statt paragraphStyles.

Bedenke, dass allParagraphStyles keine Collection wie paragraphStyles ist, sondern ein Array. Demnach funktionieren everyItem(), firstItem(), item(x) ... nicht.

Das betrifft in erster Linie die Zeile
Code
var myCharStyles = doc.paragraphStyles.everyItem().name; 


Das Array mit den Namen von allParagraphStyles musst Du also in einer Schleife aufbauen.

Viele Grüße
Martin




als Antwort auf: [#537057]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 331

13. Feb 2015, 16:04
Beitrag # 3 von 8
Beitrag ID: #537061
Bewertung:
(4021 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
danke für die Antwort. Ich stehe noch etwas auf Kriegsfuss mit Skripting, aber ich werde mich diesbezüglich mal einlesen ;-)
Gruß
---
Viele Grüße
Mario


als Antwort auf: [#537059]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 331

13. Feb 2015, 17:04
Beitrag # 4 von 8
Beitrag ID: #537062
Bewertung:
(3983 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Habe das von dir gefunden http://www.hilfdirselbst.ch/foren/Absatzformatabweichungen_ausgew%E4hlter_Formate_entfernen_P507242.html#507242
Muss mich doch etwas länger damit beschäftigen :-D
---
Viele Grüße
Mario


als Antwort auf: [#537061]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 331

1. Okt 2015, 20:53
Beitrag # 5 von 8
Beitrag ID: #543228
Bewertung:
(3439 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ich muss dieses Thema noch einmal auf machen.
Ich hatte ein Script, welches aus einen gewählten Absatzformat einen Index erstellt. Das hat auch super geklappt. Nun will es nicht mehr das tun, wass ich gern hätte und ich habe keine Ahnung, wo der Fehler ist:
Code
var myErr = mySucc = 0;      
var myList = "";
var doc = app.activeDocument
var myParagraphStyle = myDisplayDialog(doc);
app.changeTextPreferences = NothingEnum.nothing;
app.findTextPreferences = NothingEnum.nothing;


app.findTextPreferences.appliedParagraphStyle=myParagraphStyle;
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.paragraphStyles.everyItem().name;

var myDialog = app.dialogs.add({name:"Index-Begriffe"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Absatzformat:", 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];
}



Es erscheint der Fehler 30477; hier mal die Fehlermeldung: https://dl.dropboxusercontent.com/...%20um%2022.46.48.png

Danke für eure Hilfe!
---
Viele Grüße
Mario


als Antwort auf: [#537062]

IndexFromCharacterStyle - Formatgruppe

Martin Fischer
  
Beiträge gesamt: 12491

2. Okt 2015, 06:47
Beitrag # 6 von 8
Beitrag ID: #543230
Bewertung:
(3378 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

was hat sich bei Dir geändert seit es nicht mehr funktioniert?
Die InDesign-Version?

Ersetze versuchsweise die Zeile 63
Code
return theCharStyle; 


durch
Code
if (doc.paragraphStyles.itemByName(theCharStyle).isValid) 
return doc.paragraphStyles.itemByName(theCharStyle);
else
{
alert('Hier stimmt was nicht (' + theCharStyle + ').') ;
exit();
}


Viele Grüße
Martin




als Antwort auf: [#543228]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 331

2. Okt 2015, 07:46
Beitrag # 7 von 8
Beitrag ID: #543231
Bewertung:
(3351 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,
Antwort auf: was hat sich bei Dir geändert seit es nicht mehr funktioniert?
Die InDesign-Version?

Sorry, hätte ich zuschreiben müssen. Ein Versionssprung von CS6 -> CC 2015 ist erfolgt. Ich habe das Script aber mit der CS 6 getestet, da geht es auch nicht mehr. Was mich sehr wundert, da es bis dato gute Dienste geleistet hat.

Zu dein Änderungsvorschlag kann ich leider noch nix sagen, da ich es gerade nicht testen kann. Ich werde berichten.

Besten Dank schon mal

Mario
---
Viele Grüße
Mario


als Antwort auf: [#543230]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 331

2. Okt 2015, 20:14
Beitrag # 8 von 8
Beitrag ID: #543282
Bewertung:
(3265 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nochmals besten Dank. Klappt wieder super.
---
Viele Grüße
Mario


als Antwort auf: [#543230]
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
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
30.07.2021

Chur, SNF Academy Birol Isik
Freitag, 30. Juli 2021, 07.45 - 20.00 Uhr

Onlinekurs

Digitalisierung Chancen & Herausforderungen CRM / Kundenbetreuung Produkte digitalisieren Unternehmenskommunikation Content Publishing

Ja

Organisator: Birol Isik

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

https://www.snfa.ch/fitness-training-schweiz