[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: 378

13. Feb 2015, 13:33
Beitrag # 1 von 8
Bewertung:
(4747 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.
X

IndexFromCharacterStyle - Formatgruppe

Martin Fischer
  
Beiträge gesamt: 12684

13. Feb 2015, 15:20
Beitrag # 2 von 8
Beitrag ID: #537059
Bewertung:
(4706 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.


als Antwort auf: [#537057]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 378

13. Feb 2015, 17:04
Beitrag # 3 von 8
Beitrag ID: #537061
Bewertung:
(4654 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ß


als Antwort auf: [#537059]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 378

13. Feb 2015, 18:04
Beitrag # 4 von 8
Beitrag ID: #537062
Bewertung:
(4616 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


als Antwort auf: [#537061]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 378

1. Okt 2015, 22:53
Beitrag # 5 von 8
Beitrag ID: #543228
Bewertung:
(4072 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!


als Antwort auf: [#537062]

IndexFromCharacterStyle - Formatgruppe

Martin Fischer
  
Beiträge gesamt: 12684

2. Okt 2015, 08:47
Beitrag # 6 von 8
Beitrag ID: #543230
Bewertung:
(4011 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();
}



als Antwort auf: [#543228]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 378

2. Okt 2015, 09:46
Beitrag # 7 von 8
Beitrag ID: #543231
Bewertung:
(3984 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


als Antwort auf: [#543230]

IndexFromCharacterStyle - Formatgruppe

MarioF
Beiträge gesamt: 378

2. Okt 2015, 22:14
Beitrag # 8 von 8
Beitrag ID: #543282
Bewertung:
(3898 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Nochmals besten Dank. Klappt wieder super.


als Antwort auf: [#543230]
X

Aktuell

PDF / Print
300_PDF20

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
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

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

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/