[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Absatzformatabweichungen ausgewählter Formate entfernen

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

Absatzformatabweichungen ausgewählter Formate entfernen

pitware2005
Beiträge gesamt: 39

23. Jan 2013, 15:23
Beitrag # 1 von 15
Bewertung:
(5174 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

kann mir jemand bitte schnell auf die sprünge helfen?

Ich habe ein Menü gebastelt welches mir alle Absatzformate auflisten soll die es in einem Dokument gibt, leider nimmt er nicht alle sondern nur die welche nicht in Ordner sind.

Code
if (app.documents.length != 0)  
{
var myDoc = app.activeDocument;
var myParagraphStyleArray = new Array();

myParagraphStyleArray = app.activeDocument.paragraphStyles.everyItem().name.slice(2);


var myDialog = app.dialogs.add({name:"Absatzformat auswählen",canCancel:true});

with(myDialog)
{
with(dialogColumns.add())
{
with(borderPanels.add())
{
staticTexts.add({staticLabel:"Absatzformate:"});
// Ein Dropdown Menue wird erzeugt
var myDocumentTypeMenu = dropdowns.add({stringList:myParagraphStyleArray, selectedIndex:0});
}
}
}

var myResult = myDialog.show();
}


Was muss ich da ergänzen?

Und den Befehl "Abweichungen löschen" bekomme ich nicht dazu nur die zuvor getroffene Auswahl zu ändern.
Hier ist der Globale Befehl:
Code
app.selection[0].paragraphs.everyItem().clearOverrides(OverrideType.all); 


Hoffe ihr könnt mir wie immer auf die richtige Bahn helfen.

Viele Grüße
Peter
X

Absatzformatabweichungen ausgewählter Formate entfernen

-hans-
Beiträge gesamt: 748

23. Jan 2013, 18:00
Beitrag # 2 von 15
Beitrag ID: #507229
Bewertung:
(5138 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

myDoc.allParagraphStyles gibt dir einen Array mit Refernzen zu allen Absatzformaten. -> in Array sichern

-> Schleife durch diesen Array um die Namen für deinen Dialog ebenfalls in einen Array zu schreiben.

Index des zurüchgegebenen dropdown items = index des Absatzformates im Referenzarray.

-> Die Vorkommen des Absatzformates im Dokument suchen
-> Schleife durch Ergebnisse mit Befehl clearOverrides


als Antwort auf: [#507213]

Absatzformatabweichungen ausgewählter Formate entfernen

pitware2005
Beiträge gesamt: 39

24. Jan 2013, 07:41
Beitrag # 3 von 15
Beitrag ID: #507240
Bewertung:
(5087 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

danke für den Hinweis. Aber warum geht das nicht mit dem
Code
myParagraphStyleArray = app.activeDocument.paragraphStyles.everyItem().name.slice(2); 


Hier müsste er doch auch alle Items in Absatzformaten auflisten, aber er macht leider nur die oberen Elemente z.B.
Absatzformat 1
Absatzformat 2
Arial/
Arial/Absatzformat 3
Arial/Absatzformat 4

Absatzformat 1 und 2 zeigt er im Dropdown an aber alles was in Ordnern ist nicht. Warum?
Weil in der Referenz steht:
ParagraphStyleeveryItem () => Returns every ParagraphStyle in the collection.

Hoffe das kann mir wer noch beantworten :-)

Viele Grüße
Peter


als Antwort auf: [#507229]
(Dieser Beitrag wurde von pitware2005 am 24. Jan 2013, 07:52 geändert)

Absatzformatabweichungen ausgewählter Formate entfernen

Martin Fischer
  
Beiträge gesamt: 12783

24. Jan 2013, 08:19
Beitrag # 4 von 15
Beitrag ID: #507242
Bewertung:
(5072 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Peter,

hier als Anregung ein Basis-Dialog zur Auswahl von Absatzformaten auch in Gruppen.

Code
var ps = get_ps(app.activeDocument); 

function get_ps( _doc )
{
var all_ps = get_allparagraphstyles (app.activeDocument);
var _dialog = app.dialogs.add({name:"Auswahl Absatzformat"});
with(_dialog.dialogColumns.add())
{
with(dialogRows.add())
{
with(dialogColumns.add())
{
staticTexts.add({staticLabel:"Absatzformat: "});
}
with(dialogColumns.add())
{
var ps_dropdown = dropdowns.add({stringList:all_ps.name, selectedIndex:2});
}
}
}
var r = _dialog.show();
if(r == true)
{
var ps = all_ps.p_style[ps_dropdown.selectedIndex];
_dialog.destroy();
}
else
{
_dialog.destroy();
exit();
}
return ps;
}

function get_allparagraphstyles (_doc)
{
var all_ps_names = new Array;
var all_ps = _doc.allParagraphStyles;
for (var i = 0; i < all_ps.length; i++)
{
a_name = all_ps[i].name;
var g = all_ps[i];
while (g.parent.constructor == ParagraphStyleGroup)
{
g = g.parent;
a_name = g.name + ' || ' + a_name;
}
all_ps_names.push(a_name);
}
return {p_style:all_ps, name:all_ps_names}
}



als Antwort auf: [#507240]
(Dieser Beitrag wurde von Martin Fischer am 24. Jan 2013, 08:20 geändert)

Absatzformatabweichungen ausgewählter Formate entfernen

cwenet
Beiträge gesamt: 1139

29. Mai 2016, 17:30
Beitrag # 5 von 15
Beitrag ID: #549967
Bewertung:
(4155 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

danke für diese Anregung.

Wie kann ich nun den zurückgegeben Wert ps weiterverarbeiten?

Z.B. hierfür:
Code
app.findTextPreferences.appliedParagraphStyle = ps; 


ps wird ohne Gruppe ausgegeben.

Bitte um Hilfe.

Grüße
Christoph


als Antwort auf: [#507242]
(Dieser Beitrag wurde von cwenet am 29. Mai 2016, 17:31 geändert)

Absatzformatabweichungen ausgewählter Formate entfernen

Kai Rübsamen
Beiträge gesamt: 4684

29. Mai 2016, 20:35
Beitrag # 6 von 15
Beitrag ID: #549968
Bewertung:
(4108 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

z.B. so:
Code
  if (ps.parent.constructor.name == "ParentStyleGroup") { 
ps = app.activeDocument.paragraphStyleGroups.itemByName(ps.parent.name).paragraphStyles.itemByName(ps.name);
return ps;
}
else {
return ps;
}



als Antwort auf: [#549967]
(Dieser Beitrag wurde von Kai Rübsamen am 29. Mai 2016, 20:37 geändert)

Absatzformatabweichungen ausgewählter Formate entfernen

Martin Fischer
  
Beiträge gesamt: 12783

30. Mai 2016, 07:07
Beitrag # 7 von 15
Beitrag ID: #549980
Bewertung:
(4043 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

Antwort auf [ cwenet ] ps wird ohne Gruppe ausgegeben.



Diesen Fehler kann ich nicht nachvollziehen.
Siehe Bildschirmfoto.

In welcher Version von InDesign und auf welcher Plattform taucht der Fehler (Ignorieren der Formatgruppe) bei Dir auf?


als Antwort auf: [#549967]

Absatzformatabweichungen ausgewählter Formate entfernen

cwenet
Beiträge gesamt: 1139

30. Mai 2016, 07:16
Beitrag # 8 von 15
Beitrag ID: #549981
Bewertung:
(4039 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Matthias,

ich verwende gerade CS6 und WIN10(1511).

Folgendes habe ich an Deinen Code angehängt:

Code
app.findTextPreferences = NothingEnum.nothing; 
app.changeTextPreferences = NothingEnum.nothing;

function sunde(zeichenformat,ueberschrift) {

try {
app.findChangeTextOptions.includeFootnotes = true;
app.findChangeTextOptions.includeHiddenLayers = false;
app.findTextPreferences.appliedCharacterStyle = zeichenformat;
app.findTextPreferences.appliedParagraphStyle = ueberschrift;
app.changeTextPreferences.appliedCharacterStyle = '[No character style]';
var myFound = app.activeDocument.findText();
app.activeDocument.changeText();


if (myFound.length > 0){
alert("Fertig Treffer: "+myFound.length);
}
if (myFound.length == 0){
alert("Fertig Treffer: "+myFound.length);
}


}

catch (_)
{
alert("Nichts gefunden "+ps.name);
}




}

sunde('Bold',ps.name);


//Aufräumen
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;


Ich denke, es handelt sich sicher um einen Bedienungsfehler.



Grüße
Christoph


als Antwort auf: [#549980]

Absatzformatabweichungen ausgewählter Formate entfernen

cwenet
Beiträge gesamt: 1139

30. Mai 2016, 07:21
Beitrag # 9 von 15
Beitrag ID: #549982
Bewertung:
(4034 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen Kai,

vielen Dank. So klappt es.

Einen schönen Tag

Christoph


als Antwort auf: [#549968]

Absatzformatabweichungen ausgewählter Formate entfernen

cwenet
Beiträge gesamt: 1139

30. Mai 2016, 07:31
Beitrag # 10 von 15
Beitrag ID: #549983
Bewertung:
(4031 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Martin,

mit Ergänzung von Kai klappt es wie gewünscht.


Code
app.findTextPreferences = NothingEnum.nothing; 
app.changeTextPreferences = NothingEnum.nothing;

function sunde(zeichenformat,ueberschrift) {

try {
app.findChangeTextOptions.includeFootnotes = true;
app.findChangeTextOptions.includeHiddenLayers = false;
app.findTextPreferences.appliedCharacterStyle = zeichenformat;
app.findTextPreferences.appliedParagraphStyle = ueberschrift;
app.changeTextPreferences.appliedCharacterStyle = '[No character style]';
var myFound = app.activeDocument.findText();
app.activeDocument.changeText();


if (myFound.length > 0){
alert("Fertig Treffer: "+myFound.length);
}
if (myFound.length == 0){
alert("Fertig Treffer: "+myFound.length);
}

}
catch (_)
{
alert("Nichts gefunden "+ps.name);
}
}

sunde('Bold',ps);

//Aufräumen
app.findTextPreferences = NothingEnum.nothing;
app.changeTextPreferences = NothingEnum.nothing;



Einen schöne Tag
Christoph


als Antwort auf: [#549980]

Absatzformatabweichungen ausgewählter Formate entfernen

Martin Fischer
  
Beiträge gesamt: 12783

30. Mai 2016, 07:32
Beitrag # 11 von 15
Beitrag ID: #549984
Bewertung:
(4032 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Christoph,

beim Aufruf der Funktion sunde übergibst du nicht das ermittelte Absatzformat ps, sondern nur dessen Namen ps.name.
Damit wird die Absatzformatgruppe umgangen.

Code
sunde('Bold',ps.name); 



Richtig wäre:

Code
sunde('Bold',ps); 



Edit:
Wie ich sehe, hast Du das nun selbst herausgefunden. ;-)
Aber wo hast Du den Code von Kai versteckt?
Dieser ist zwar durchaus interessant, aber hier nicht nötig.


als Antwort auf: [#549982]
(Dieser Beitrag wurde von Martin Fischer am 30. Mai 2016, 07:36 geändert)

Absatzformatabweichungen ausgewählter Formate entfernen

cwenet
Beiträge gesamt: 1139

30. Mai 2016, 07:36
Beitrag # 12 von 15
Beitrag ID: #549985
Bewertung:
(4020 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

dankeschön. Es klappt auch ohne Schnipsel von Kai.

Trotzdem danke an Euch beide.

Schönen Tag
Christoph


als Antwort auf: [#549984]

Absatzformatabweichungen ausgewählter Formate entfernen

Kai Rübsamen
Beiträge gesamt: 4684

30. Mai 2016, 09:42
Beitrag # 13 von 15
Beitrag ID: #549989
Bewertung:
(3687 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Dieser ist zwar durchaus interessant, aber hier nicht nötig.

Hm, ich hätte geschworen, dass es gestern um halb neun nur so ging. Heute morgen geht es auch ohne … Danke Martin.


als Antwort auf: [#549985]

Absatzformatabweichungen ausgewählter Formate entfernen

cwenet
Beiträge gesamt: 1139

30. Mai 2016, 09:52
Beitrag # 14 von 15
Beitrag ID: #549990
Bewertung:
(3677 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Kai's Schnipsel hatte ich hier versteckt:

Am Ende der ersten Funktion habe ich diese Zeile ersetzt:

Code
return ps; 



Schönen Tag
Christoph


als Antwort auf: [#549984]

Absatzformatabweichungen ausgewählter Formate entfernen

Martin Fischer
  
Beiträge gesamt: 12783

30. Mai 2016, 10:04
Beitrag # 15 von 15
Beitrag ID: #549991
Bewertung:
(3672 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Kai,

Antwort auf: Hm, ich hätte geschworen, dass es gestern um halb neun nur so ging. Heute morgen geht es auch ohne … Danke Martin.


Ja, um 7 heute früh ging es ohne. ;-)

Dein Ansatz sieht verführerisch aus.
Allerdings funktioniert das so nur auf der ersten Ebene der Formatgruppen. Für tiefere Verschachtelungen wären weitere parent-Kletterstufen nötig.


als Antwort auf: [#549989]
(Dieser Beitrag wurde von Martin Fischer am 30. Mai 2016, 10:25 geändert)
X