[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Absatzformat wechseln

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

Absatzformat wechseln

painschen
Beiträge gesamt: 48

11. Jun 2010, 14:14
Beitrag # 16 von 27
Beitrag ID: #444254
Bewertung:
(4330 mal gelesen)
URL zum Beitrag
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){}
}



als Antwort auf: [#444246]
(Dieser Beitrag wurde von painschen am 11. Jun 2010, 14:22 geändert)
X

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5314

11. Jun 2010, 14:26
Beitrag # 17 von 27
Beitrag ID: #444256
Bewertung:
(4326 mal gelesen)
URL zum Beitrag
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…


als Antwort auf: [#444254]

Absatzformat wechseln

painschen
Beiträge gesamt: 48

11. Jun 2010, 14:35
Beitrag # 18 von 27
Beitrag ID: #444260
Bewertung:
(4319 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hast mir trotzdem geholfen! :)

Danke euch beiden..


als Antwort auf: [#444254]

Absatzformat wechseln

gatschlochunited
Beiträge gesamt: 1

14. Sep 2010, 14:28
Beitrag # 19 von 27
Beitrag ID: #451439
Bewertung:
(4158 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#444260]

Absatzformat wechseln

cwenet
Beiträge gesamt: 1136

23. Mär 2019, 17:15
Beitrag # 20 von 27
Beitrag ID: #569412
Bewertung:
(2753 mal gelesen)
URL zum Beitrag
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]


als Antwort auf: [#444254]
(Dieser Beitrag wurde von cwenet am 23. Mär 2019, 17:16 geändert)

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5314

23. Mär 2019, 19:33
Beitrag # 21 von 27
Beitrag ID: #569415
Bewertung:
(2724 mal gelesen)
URL zum Beitrag
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;

}() )



als Antwort auf: [#569412]
(Dieser Beitrag wurde von Uwe Laubender am 23. Mär 2019, 19:34 geändert)

Absatzformat wechseln

cwenet
Beiträge gesamt: 1136

23. Mär 2019, 19:36
Beitrag # 22 von 27
Beitrag ID: #569416
Bewertung:
(2721 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#569412]

Absatzformat wechseln

Uwe Laubender
Beiträge gesamt: 5314

23. Mär 2019, 20:04
Beitrag # 23 von 27
Beitrag ID: #569417
Bewertung:
(2707 mal gelesen)
URL zum Beitrag
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.


als Antwort auf: [#569416]

Absatzformat wechseln

cwenet
Beiträge gesamt: 1136

23. Mär 2019, 20:09
Beitrag # 24 von 27
Beitrag ID: #569418
Bewertung:
(2702 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#569417]

Absatzformat wechseln

cwenet
Beiträge gesamt: 1136

24. Mär 2019, 13:12
Beitrag # 25 von 27
Beitrag ID: #569419
Bewertung:
(2648 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#569418]

Absatzformat wechseln

Hans Haesler
  
Beiträge gesamt: 5826

24. Mär 2019, 17:06
Beitrag # 26 von 27
Beitrag ID: #569424
Bewertung:
(2622 mal gelesen)
URL zum Beitrag
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


als Antwort auf: [#569419]

Absatzformat wechseln

cwenet
Beiträge gesamt: 1136

24. Mär 2019, 17:11
Beitrag # 27 von 27
Beitrag ID: #569425
Bewertung:
(2616 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Hans,

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

Einen schönen Abend
Christoph


als Antwort auf: [#569424]
X