Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Absatzformat wechseln

Absatzformat wechseln

painschen
Beiträge gesamt: 48

9. Jun 2010, 17:25
Bewertung:

gelesen: 9098

Beitrag als Lesezeichen
Servus!

Bin dabei über ein Skript meine Absatzformate wechseln zu lassen.
Dies funktioniert soweit auch wunderbar (wenn das Skript bei den Absatzformat-Gruppen nicht scheitern würde)..

Code
	 
try {
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "PB_Headline_9pt";
app.changeTextPreferences.appliedParagraphStyle = "Artikelnr_9pt";
var StyleReplace = myDocument.changeText();
} catch (bug){}


Das macht für mich keinen Sinn - zumal es bei "findTextPreferences" keine Möglichkeit gibt eine Angabe zur Gruppierung zu machen.

Oder ist dieser Ansatz für meinen Zweck nicht zu gebrauchen?

Vielen Dank im Voraus!

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12783

9. Jun 2010, 20:28
Bewertung:

gelesen: 9072

Beitrag als Lesezeichen
Hallo,

Antwort auf: Das macht für mich keinen Sinn - zumal es bei "findTextPreferences" keine Möglichkeit gibt eine Angabe zur Gruppierung zu machen.


Doch, das geht schon.
Anstelle des Strings für das Absatzformat musst Du eben ein Objekt paragraphStyle (als Kind eines Objekts paragraphStyleGroup) angeben:

Code
var d = app.documents.firstItem(); 
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "PB_Headline_9pt";
app.changeTextPreferences.appliedParagraphStyle = d.paragraphStyleGroups.itemByName('Formatgruppe 1').paragraphStyles.itemByName("Artikelnr_9pt");
var StyleReplace = d.changeText();


Viele Grüße
Martin


Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 09:26
Bewertung:

gelesen: 9032

Beitrag als Lesezeichen
Also das hieße, dass noch eine Schleife rein müsste, die alle Gruppen durchläuft und mit try{} abgesichert wird?

Dann probier ich das mal so und melde mich nochmal.

Danke schonmal!

Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 09:48
Bewertung:

gelesen: 9022

Beitrag als Lesezeichen
Antwort auf [ Martin Fischer ] Hallo,

Antwort auf: Das macht für mich keinen Sinn - zumal es bei "findTextPreferences" keine Möglichkeit gibt eine Angabe zur Gruppierung zu machen.


Doch, das geht schon.
Anstelle des Strings für das Absatzformat musst Du eben ein Objekt paragraphStyle (als Kind eines Objekts paragraphStyleGroup) angeben:

Code
var d = app.documents.firstItem(); 
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "PB_Headline_9pt";
app.changeTextPreferences.appliedParagraphStyle = d.paragraphStyleGroups.itemByName('Formatgruppe 1').paragraphStyles.itemByName("Artikelnr_9pt");
var StyleReplace = d.changeText();



Fehler: Ungültiger Wert für Einrichtung der Eigenschaft "appliedParagraphStyle". String,ParagraphStyle or NothingEnum enumerator erwartet, aber "PB_Headline_9pt" erhalten.

Find ich jetzt komisch..

Bei deiner und meiner abgeänderten Version:

Code
	 
var myDocument = app.activeDocument;
var myTextfields = myDocument.textFrames;

var counterParagraphStyles = myDocument.paragraphStyleGroups.count();
for(x=0;x<counterParagraphStyles;x++){
try{
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = "PB_Headline_9pt";
app.changeTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByID(x).paragraphStyles.itemByName("Artikelnr_9pt");
var StyleReplace = myTextfields.changeText();
} catch(bug){alert(bug);}
}

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12783

10. Jun 2010, 09:50
Bewertung:

gelesen: 9023

Beitrag als Lesezeichen
Wenn Du die Gruppe weißt, brauchst Du keine Schleife, um nach dem AF zu suchen.
Wenn Du sie nicht weißt, geht's nur über die Schleife.

Mit einem sauberen Code und einer Prüfung mit isValid kannst Du auf die die try-catch Klammer verzichten.

Viele Grüße
Martin


Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12783

10. Jun 2010, 09:54
Bewertung:

gelesen: 9015

Beitrag als Lesezeichen
> Find ich jetzt komisch..

Verzichte mal auf die Angabe des AF als String und verwende besser die Angabe des Objekts d.paragraphStyles.itemByName("PB_Headline_9pt").

Der String ist für Faule und funktioniert unter bestimmten Umständen.
Wer's genau nimmt, der arbeitet besser mit dem Objekt.

Viele Grüße
Martin


Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 10:18
Bewertung:

gelesen: 9002

Beitrag als Lesezeichen
Naja faul bin ich jetzt nicht unbedingt, hatte bisher nur nie Probleme mit dem String.. :)

Folgendes klappt nun:

Code
	 
var counterParagraphStylesGroups = myDocument.paragraphStyleGroups.count();
for(x=0;x<counterParagraphStylesGroups;x++){myDocument.paragraphStyleGroups[x].name
try{
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByName(myDocument.paragraphStyleGroups[x].name).paragraphStyles.itemByName("PB_Headline_9pt");
app.changeTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByName(myDocument.paragraphStyleGroups[x].name).paragraphStyles.itemByName("Artikelnr_9pt");
var StyleReplace = myDocument.changeText();
} catch(bug){}
}


Ist natürlich ganz blöd weil die Formate ja in verschiedenen Gruppen sein können.. also muss ich noch eine Schleife reinwürgen - aber sollte alles irgendwie klappen.

Das mit "isValid" kenn ich nicht, werd in der Doku mal schauen.

Hast mir aber schon sehr weitergeholfen, großes Dankeschön!

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12783

10. Jun 2010, 10:36
Bewertung:

gelesen: 8993

Beitrag als Lesezeichen
Antwort auf: Ist natürlich ganz blöd weil die Formate ja in verschiedenen Gruppen sein können.. also muss ich noch eine Schleife reinwürgen - aber sollte alles irgendwie klappen.


Noch blöder ist, wenn ein AF mit einem bestimmten Namen in mehreren Gruppen auftaucht.
Welches ist dann das richtige?
Das erste? Dann könntest Du die Schleife an dieser Stelle abbrechen.

Antwort auf: Das mit "isValid" kenn ich nicht, werd in der Doku mal schauen.


Damit prüfst Du ab CS4, ob ein Objekt gültig – in diesem Fall = vorhanden – ist.
true, wenn vorhanden
false, wenn nicht vorhanden

Viele Grüße
Martin


Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5316

10. Jun 2010, 10:39
Bewertung:

gelesen: 8989

Beitrag als Lesezeichen
Hallo, zusammen!
Oder man arbeitet mit allParagraphStyles, dann braucht man sich um die Hierachie der Verzeichnisse keine Gedanken mehr zu machen. Fast nicht, denn wenn ich folgenden Code überdenke, dann könnte das falsche Absatzformat zugewiesen werden, wenn der gleiche Name zweimal in irgendwelchen Formatgruppen auftaucht:

Code
var d = app.documents.firstItem(); 

var SUCHE = "PB_Headline_9pt";
var ERSETZE = "Artikelnr_9pt";

var allPS = d.allParagraphStyles;
var allPSindexNum;

for(n=0;n<allPS.length;n++){
if(allPS[n].name==ERSETZE){
allPSindexNum = n;
};
};


app.findTextPreferences = app.changeTextPreferences = null;

app.findTextPreferences.appliedParagraphStyle = SUCHE;
app.changeTextPreferences.appliedParagraphStyle = d.allParagraphStyles[allPSindexNum];
var StyleReplace = d.changeText();

*****
Mit herzlichem Gruß,
Uwe Laubender

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5316

10. Jun 2010, 10:41
Bewertung:

gelesen: 8986

Beitrag als Lesezeichen
Man könnte natürlich in der for-Schleife auch einen Array füttern und abfragen, ob mehr als 1 Eintrag vorhanden ist, bevor man ersetzt.
*****
Mit herzlichem Gruß,
Uwe Laubender

(Dieser Beitrag wurde von Uwe Laubender am 10. Jun 2010, 10:43 geändert)

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12783

10. Jun 2010, 10:49
Bewertung:

gelesen: 8976

Beitrag als Lesezeichen
Hallo Uwe,

> Oder man arbeitet mit allParagraphStyles

guter Hinweis!

Viele Grüße
Martin


Absatzformat wechseln

painschen
Beiträge gesamt: 48

10. Jun 2010, 17:31
Bewertung:

gelesen: 8923

Beitrag als Lesezeichen
Antwort auf [ Uwe Laubender ] Hallo, zusammen!
Oder man arbeitet mit allParagraphStyles, dann braucht man sich um die Hierachie der Verzeichnisse keine Gedanken mehr zu machen. Fast nicht, denn wenn ich folgenden Code überdenke, dann könnte das falsche Absatzformat zugewiesen werden, wenn der gleiche Name zweimal in irgendwelchen Formatgruppen auftaucht:

Code
var d = app.documents.firstItem(); 

var SUCHE = "PB_Headline_9pt";
var ERSETZE = "Artikelnr_9pt";

var allPS = d.allParagraphStyles;
var allPSindexNum;

for(n=0;n<allPS.length;n++){
if(allPS[n].name==ERSETZE){
allPSindexNum = n;
};
};


app.findTextPreferences = app.changeTextPreferences = null;

app.findTextPreferences.appliedParagraphStyle = SUCHE;
app.changeTextPreferences.appliedParagraphStyle = d.allParagraphStyles[allPSindexNum];
var StyleReplace = d.changeText();



Der Ansatz ist gut und mit allParagraphStyles hatte ich es auch schon probiert, aber es scheitert wieder am String mit der selben Fehlermeldung ganz nach dem Zitat Motto vom M. Fischer:

Zitat Der String ist für Faule und funktioniert unter bestimmten Umständen.


Und damit gehts leider auch nicht:
Code
 
var SUCHE = myDocument.paragraphStyles.itemByName("Absatzformat1");
var ERSETZE = myDocument.paragraphStyles.itemByName("Absatzformat2");


*edit* ja gut damit gehts auch nicht, weil so das Objekt ausgegeben wird.. ich brauche dann eher sowas wie:

Code
var SUCHE = myDocument.paragraphStyles.itemByName("Absatzformat1").name 


Aber natürlich klappt das auch nicht..

(Dieser Beitrag wurde von painschen am 10. Jun 2010, 17:35 geändert)

Absatzformat wechseln

painschen
Beiträge gesamt: 48

11. Jun 2010, 11:18
Bewertung:

gelesen: 8864

Beitrag als Lesezeichen
Also langsam nervt mich das wirklich..

Code
	// config datei einlesen 
var CheckFile = File(myScriptPfadCfg + "/" + myScriptConfigStyleReplace);
CheckFile.open("r");
var CheckList = CheckFile.read();
CheckFile.close();
var myCheckList = CheckList.split('\n');

// datei durchgehen
var counterParagraphStylesGroups = myDocument.paragraphStyleGroups.count();

for (oneReplace=0;oneReplace<myCheckList.length; oneReplace++) {

for(x=0;x<counterParagraphStylesGroups;x++){
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByName(myDocument.paragraphStyleGroups[x].name).paragraphStyles.itemByName(String(myCheckList[oneReplace].split(';')[0])).name;
app.changeTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByName(myDocument.paragraphStyleGroups[x].name).paragraphStyles.itemByName(String(myCheckList[oneReplace].split(';')[1])).name;
try{
var StyleReplace = myDocument.changeText();
} catch(bug){}
}

}


Das klappt nicht mal in der Form und ich erhalte immer den Fehler 30477 (Fehlerzeichenfolge: Ungültiger Wert blablabla String erwartet aber "PB_Headline_9pt" erhalten.. das ist doch ein String - wieso nervt mich InDesign trotzdem damit?

Hab sogar String(); getestet..

:(

(Dieser Beitrag wurde von painschen am 11. Jun 2010, 11:19 geändert)

Absatzformat wechseln

Martin Fischer
  
Beiträge gesamt: 12783

11. Jun 2010, 11:57
Bewertung:

gelesen: 8848

Beitrag als Lesezeichen
An welcher Stelle (Zeilennummer) taucht das Problem auf?
Existiert an der Stelle, wo die Zuweisung erfolgt, das angesprochene Absatzformat?

Viele Grüße
Martin


Absatzformat wechseln

painschen
Beiträge gesamt: 48

11. Jun 2010, 13:35
Bewertung:

gelesen: 8829

Beitrag als Lesezeichen
Mit dieser Version funktioniert das ganze wenn sich die Absatzformate in keiner Gruppe befinden (was also zeigt, dass die Absatzformate exisitieren)..

Anscheinend klappt das mit den Ordnern nicht ganz - wobei diese beim Alert-Test ausgegeben werden..

Weiß nicht ob das ein Syntex Fehler ist - wär schön wenn das jemand testen könnte..

Code
// config datei einlesen 
var CheckFile = File(myScriptPfadCfg + "/" + myScriptConfigStyleReplace);
CheckFile.open("r");
var CheckList = CheckFile.read();
CheckFile.close();
var myCheckList = CheckList.split('\n');

// suche starten
var counterParagraphStylesGroups = myDocument.paragraphStyleGroups.count();
for (i=0;i<myCheckList.length;i++) {
for(x=0;x<counterParagraphStylesGroups;x++){
try{
app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByID(x).paragraphStyles.itemByName(myCheckList[i].split(';')[0]).name;
app.changeTextPreferences.appliedParagraphStyle = myDocument.paragraphStyleGroups.itemByID(x).paragraphStyles.itemByName(myCheckList[i].split(';')[1]).name;
var StyleReplace = myDocument.changeText();
} catch(bug){}
}
}


Martin Fischer: Der Fehler in jeder Version kommt aus folg. Zeilen:
Code
app.findTextPreferences.appliedParagraphStyle = .. 
app.changeTextPreferences.appliedParagraphStyle = ..


(Dieser Beitrag wurde von painschen am 11. Jun 2010, 13:38 geändert)

Absatzformat wechseln

painschen
Beiträge gesamt: 48

11. Jun 2010, 14:14
Bewertung:

gelesen: 4348

Beitrag als Lesezeichen
GOTT SEI DANK - ich habs noch vorm Wochenende hinbekommen..

Uwe's Version hat ebenfalls nur dann funktioniert, wenn keine Gruppen verwendet wurden.

Mit folgender Änderung klappt es endlich:

Code
var myParagraphStyles = myDocument.allParagraphStyles; 

for (i=0;i<myCheckList.length;i++) {
var SUCHE = myCheckList[i].split(';')[0];
var ERSETZE = myCheckList[i].split(';')[1];

// id für suche
for(s=0;s<myParagraphStyles.length;s++){
if(myParagraphStyles[s].name==SUCHE){
allPSindexNumS = s;
};
};

// id für ersetzung
for(n=0;n<myParagraphStyles.length;n++){
if(myParagraphStyles[n].name==ERSETZE){
allPSindexNumE = n;
};
};

app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = myParagraphStyles[allPSindexNumS];
app.changeTextPreferences.appliedParagraphStyle = myParagraphStyles[allPSindexNumE];
try {
var StyleReplace = myDocument.changeText();
} catch(bug){}
}


(Dieser Beitrag wurde von painschen am 11. Jun 2010, 14:22 geändert)

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5316

11. Jun 2010, 14:26
Bewertung:

gelesen: 4344

Beitrag als Lesezeichen
Antwort auf [ painschen ] Uwe's Version hat ebenfalls nur dann funktioniert, wenn keine Gruppen verwendet wurden.

Hm. Das lag an meinem einfachen Versuchsaufbau. Bei mir hat's jedenfalls funktioniert, wenn das Zielformat in einer Gruppe lag. Auf die Quelle allerdings, das gebe ich zu, hatte ich nicht geachtet…
*****
Mit herzlichem Gruß,
Uwe Laubender

Absatzformat wechseln

painschen
Beiträge gesamt: 48

11. Jun 2010, 14:35
Bewertung:

gelesen: 4337

Beitrag als Lesezeichen
Hast mir trotzdem geholfen! :)

Danke euch beiden..

Absatzformat wechseln

gatschlochunited
Beiträge gesamt: 1

14. Sep 2010, 14:28
Bewertung:

gelesen: 4176

Beitrag als Lesezeichen
Hi!

Bin auch auf der Suche nach genau so einem Script!

Gibt's schon einen funktionierende Variante? Bekomme leider aus den geposteten CodeSchnipsel nichts vernünftiges zum Laufen ...

Danke schonmal!
Christian

Absatzformat wechseln

cwenet
Beiträge gesamt: 1139

23. Mär 2019, 17:15
Bewertung:

gelesen: 2771

Beitrag als Lesezeichen
Guten Tag,

habe gerade diese Script entdeckt und finde es prima. Danke.

Nun wollte ich noch eine kleine Anpassung machen.
Die Abweichungen sollen beim Ersetzen erhalten bleiben.

Diese Zeile will ich anpassen:
Code
app.changeTextPreferences.appliedParagraphStyle = myParagraphStyles[allPSindexNumE]; 


Es gibt ja einen zweiten Parameter:
Code
applyParagraphStyle(app.activeDocument.paragraphStyles.item(ersetzenDurch), false); 


Wie kann ich nun die genannte Zeile mit dem Parameter false ergänzen?

Mit der Bitte um Hilfe.

Grüße
Christoph
[CC2019, WIN10]

(Dieser Beitrag wurde von cwenet am 23. Mär 2019, 17:16 geändert)

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5316

23. Mär 2019, 19:33
Bewertung:

gelesen: 2742

Beitrag als Lesezeichen
Hallo Christoph,
die genannte Zeile kannst Du nicht mit dem Parameter false ergänzen.
Das Skript muss anders strukturiert werden.

Was Du machen kannst:

1. Alle Texte suchen und die Fundstücke in ein Array speichern.
2. Das Array der gefundenen Textstellen in einer Schleife durchgehen und mit
applyParagraphStyle() das gewünschte Format mit dem gewünschten Parameter zuweisen.

Also überhaupt nicht mit changeTextPreferences oder changeText() arbeiten.

Ich weiß jetzt nicht von welcher Version des Skripts weiter oben im Thread Du ausgehst, aber die Geschichte könnte dann folgendermaßen funktionieren:


Einen Textrahmen mit zwei Absätzen auswählen:

Im ersten Absatz zugewiesen das Absatzformat, das ersetzt werden soll.
Im zweiten Absatz zugewiesen das Absatzformat, das das Absatzformat ersetzt.

Code
/* 
Text frame with two paragraphs selected.
First paragraph formatted with OLD PARGARAPH STYLE
Second paragraph formatted with NEW PARAGRAPH STYLE
*/

( function()
{
var oldFindChangeTextOptions = app.findChangeTextOptions.properties;

var paraStyleOld = app.selection[0].paragraphs[0].appliedParagraphStyle;
var paraStyleNew = app.selection[0].paragraphs[1].appliedParagraphStyle;

app.findTextPreferences.properties =
{
appliedParagraphStyle : paraStyleOld
/* Use more property/value pairs if necessary*/
};

// Restrict or widen your scope:
app.findChangeTextOptions.properties =
{
includeFootnotes : true ,
includeHiddenLayers : true ,
includeMasterPages : true
/*
others as well, see DOM documentation e.g. for InDesign CS6
http://jongware.mit.edu/idcs6js/pc_FindChangeTextOption.html
*/
};

// Scope here is document:
var resultArray = app.documents[0].findText( true ); // If true, returns the results in reverse order.

for( var n=0; n<resultArray.length; n++ )
{
resultArray[n].applyParagraphStyle( paraStyleNew , false ); // If true, clear any text attributes before applying the style. (Optional) (default: true)
};

app.findTextPreferences = null ;
app.findChangeTextOptions.properties = oldFindChangeTextOptions;

}() )

*****
Mit herzlichem Gruß,
Uwe Laubender

(Dieser Beitrag wurde von Uwe Laubender am 23. Mär 2019, 19:34 geändert)

Absatzformat wechseln

cwenet
Beiträge gesamt: 1139

23. Mär 2019, 19:36
Bewertung:

gelesen: 2739

Beitrag als Lesezeichen
Guten Abend,

das ist jetzt meine Version des Scripts:
Code
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
var myCheckList=
[

["Absatzformat 1","Absatzformat 2"],
["Subtitle","Untertitel"],

] ;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var myDocument = app.activeDocument;
var myParagraphStyles = myDocument.allParagraphStyles;
var allPSindexNumS;
var allPSindexNumE;



for (i=0;i<myCheckList.length;i++) {
var SUCHE = myCheckList[i][0];
var ERSETZE = myCheckList[i][1];

// id für suche
for(s=0;s<myParagraphStyles.length;s++){
if(myParagraphStyles[s].name==SUCHE){
allPSindexNumS = s;
};
};

// id für ersetzung
for(n=0;n<myParagraphStyles.length;n++){
if(myParagraphStyles[n].name==ERSETZE){
allPSindexNumE = n;
};
};

app.findTextPreferences = app.changeTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = myParagraphStyles[allPSindexNumS];
app.changeTextPreferences.appliedParagraphStyle = myParagraphStyles[allPSindexNumE];
try {
var StyleReplace = myDocument.changeText();
} catch(bug){}
}


Demodokument:
https://www.dropbox.com/s/cm6wdz1plypkilf/Unbenannt-6.idml?dl=0

Das Problem:
Im fünften Absatz geht die manuelle Auszeichnung (kursiv und fett) verloren.
Und:
Der dritte Absatz wird komischerweise mit dem Format "Absatzformat 2" formatiert. Hier sollte nichts passieren, da das Format "Untertitel" nicht vorhanden ist.

Mit der Bitte um Hilfe.
Grüße
Christoph

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5316

23. Mär 2019, 20:04
Bewertung:

gelesen: 2725

Beitrag als Lesezeichen
Hallo Christoph,
lies Dir mal in Ruhe meine Antwort und auch den Code dazu durch.
Da hast Du bereits Deine Lösung. Für ein einziges Vorher/Nachher-Absatzformatpaar.
*****
Mit herzlichem Gruß,
Uwe Laubender

Absatzformat wechseln

cwenet
Beiträge gesamt: 1139

23. Mär 2019, 20:09
Bewertung:

gelesen: 2720

Beitrag als Lesezeichen
Lieber Uwe,
danke fürs Antworten.
Mein Beitrag hat sich wohl überschnitten.
Ich schaue mir Deinen Beitrag in Ruhe an.


Schönen Abend
Christoph

Absatzformat wechseln

cwenet
Beiträge gesamt: 1139

24. Mär 2019, 13:12
Bewertung:

gelesen: 2666

Beitrag als Lesezeichen
Guten Tag,

nun sieht es so aus und funktioniert:

Code
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
var searchPara=
[

["Absatzformat 1","Absatzformat 2"],
["Subtitle","Untertitel"],

] ;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var foundItem;
var doc = app.activeDocument;

for(var j=0;j < searchPara.length; j++)
{
app.findTextPreferences = app.changeTextPreferences = null;
app.findChangeTextOptions.includeFootnotes = true;
app.findTextPreferences.appliedParagraphStyle = searchPara[j][0];
var foundItems = doc.findText();

for (var i = 0; i < foundItems.length; i++) {
foundItem = foundItems[i];
foundItem.applyParagraphStyle(doc.paragraphStyles.item(searchPara[j][1]), false);
}

}
app.findTextPreferences = app.changeTextPreferences = null;


Das Ganze aber nur ohne Formatgruppe.

Schönen Sonntag und nochmals Danke an Uwe
Christoph

Absatzformat wechseln

Hans Haesler
  
Beiträge gesamt: 5826

24. Mär 2019, 17:06
Bewertung:

gelesen: 2640

Beitrag als Lesezeichen
Hallo Christoph,

schön, dass es nun funktioniert.

Kleiner Einwand: Diese zwei Zeilen ...

Code
app.findTextPreferences = app.changeTextPreferences = null; 
app.findChangeTextOptions.includeFootnotes = true;

... sollten oberhalb der äusseren Schleife positioniert sein. Aus Prinzip.

Okay: Mit nur zwei Elementen wird kein Unterschied feststellbar sein.

Gruss, Hans

Absatzformat wechseln

cwenet
Beiträge gesamt: 1139

24. Mär 2019, 17:11
Bewertung:

gelesen: 2634

Beitrag als Lesezeichen
Lieber Hans,

vielen Dank für deinen Verbesserungsvorschlag, den ich gerne berücksichtigen weden.

Einen schönen Abend
Christoph