[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt PStyle suchen und ersetzen

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

PStyle suchen und ersetzen

-hans-
Beiträge gesamt: 748

21. Jan 2011, 15:06
Beitrag # 1 von 17
Bewertung:
(9256 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

ich möchte Absatzformate in einer Liste (im Beispiel nur 1 Element) per suchen und ersetzen neu zuweisen ...
Das Erstellen des Arrays scheitert schon? oder die Übergabe an den Handler? Spätestens jedoch im Handler beim ersten Suchen-Befehl ;-)

Code
 var theList =  new Array ("Kommentar-Name") ; 
var newList = new Array ("Kommentar-Name-4C") ;
var countTheList = theList.length;
var oldPStyle;
var newPStyle;

for (var i=0; i<countTheList; i++) {
oldPStyle = theList[i];
newPStyle = newList[i];
switchParaStyle(oldPStyle, newPStyle); //Aufruf Handler
}

function switchParaStyle(styleToChange, theNewStyle) {

app.changeTextPreferences = null;
app.findTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = app.activeDocument.paragraphStyles.itemByName(styleToChange);
app.changeTextPreferences.appliedParagraphStyle = app.activeDocument.paragraphStyles.itemByName(theNewStyle);
app.activeDocument.changeText();
app.changeTextPreferences = null;
app.findTextPreferences = null;


}

X

PStyle suchen und ersetzen

Martin Fischer
  
Beiträge gesamt: 12783

21. Jan 2011, 16:07
Beitrag # 2 von 17
Beitrag ID: #462499
Bewertung:
(9235 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

was ist die Fehlermeldung?
Sind die Absatzformate angelegt?
Was sagt der Debugger?

Hier (unter InDesign CS5) funktioniert Dein Code.


als Antwort auf: [#462493]

PStyle suchen und ersetzen

fabiantheblind
Beiträge gesamt:

21. Jan 2011, 16:20
Beitrag # 3 von 17
Beitrag ID: #462501
Bewertung:
(9225 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du hast vergessen durch die Listen zu iterieren.(Zumindest in der Version die zuerst hier stand und bei mir im Posteingang war :))

So funktioniert es bei mir (ID CS 5):

Code
 
var theList = new Array() ;
theList[0] = "Kommentar-Name";

var newList = new Array () ;
newList[0] = "Kommentar-Name-4C";
var countTheList = theList.length;
var oldPStyle;
var newPStyle;

for (var i=0; i<countTheList; i++) {
oldPStyle = theList[i];
newPStyle = newList[i];
switchParaStyle(oldPStyle, newPStyle); //Aufruf Handler
}

function switchParaStyle(styleToChange, theNewStyle) {

app.changeTextPreferences = null;
app.findTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = app.activeDocument.paragraphStyles.item(styleToChange);
app.changeTextPreferences.appliedParagraphStyle = app.activeDocument.paragraphStyles.item(theNewStyle);
app.activeDocument.changeText();
app.changeTextPreferences = null;
app.findTextPreferences = null;


}



als Antwort auf: [#462493]
(Dieser Beitrag wurde von fabiantheblind am 21. Jan 2011, 16:27 geändert)

PStyle suchen und ersetzen

-hans-
Beiträge gesamt: 748

21. Jan 2011, 17:11
Beitrag # 4 von 17
Beitrag ID: #462505
Bewertung:
(9210 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vielen lieben Dank für Eure Antworten,

mein Script funktioniert (oh Wahnsinnswunder :) ) tatsächlich ! ... leider nur grundsätzlich :(
Ich hatte nicht berücksichtigt, dass die angesprochenen Formate Teil einer Formatgruppe sind. Ich werd' mal die Suche hier anschmeissen und herauszubekommen wie ich diese ansprechen kann ... sonst melde ich mich nochmal ;-)

Schönes Wochenende :)


als Antwort auf: [#462501]

PStyle suchen und ersetzen

fabiantheblind
Beiträge gesamt:

21. Jan 2011, 17:14
Beitrag # 5 von 17
Beitrag ID: #462506
Bewertung:
(9208 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das würde mich auch sehr interessieren wie du Formatgruppen ansprechen kannst. Das Problem hatte ich auch bereits.
Wenn du eine Lösung findest würde ich mich sehr freuen sie auch zu erfahren :)

Grüsse

:F


als Antwort auf: [#462505]

PStyle suchen und ersetzen

Martin Fischer
  
Beiträge gesamt: 12783

21. Jan 2011, 17:22
Beitrag # 6 von 17
Beitrag ID: #462508
Bewertung:
(9194 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Als paragraphStyleGroup.

Beispiel:
Code
app.documents.firstItem().paragraphStyleGroups.itemByName('meine Gruppe').paragraphStyles.itemByName( 'mein Absatzformat' ); 



als Antwort auf: [#462506]

PStyle suchen und ersetzen

Neil77
Beiträge gesamt: 287

21. Jan 2011, 17:54
Beitrag # 7 von 17
Beitrag ID: #462513
Bewertung:
(9171 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Oder über Document.allParagraphStyles
Zu beachten ist dann aber, dass es sich dabei um ein Array handelt und nicht (wie bei paragraphStyles) um eine Collection, was das Handling umständlicher machen kann.

Grüße, Martin


als Antwort auf: [#462508]
(Dieser Beitrag wurde von Neil77 am 21. Jan 2011, 17:54 geändert)

PStyle suchen und ersetzen

Martin Fischer
  
Beiträge gesamt: 12783

21. Jan 2011, 18:12
Beitrag # 8 von 17
Beitrag ID: #462516
Bewertung:
(9155 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: ... um ein Array handelt ..., was das Handling umständlicher machen kann.


... z.B. weil sie nicht mehr über itemByName(), sondern nur über ihren Index ansprechbar sind.


als Antwort auf: [#462513]

PStyle suchen und ersetzen

fabiantheblind
Beiträge gesamt:

23. Jan 2011, 09:52
Beitrag # 9 von 17
Beitrag ID: #462614
Bewertung:
(9053 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
also gibt es auch kein:
Code
Document.allParagraphStyles.item() 

?
Das ist irgendwie schade. Da muss man ja dann immer durch alle durchschleifen und immer den Namen Abfragen.

Gibt es nicht die Möglichkeit mir aus dem "Pool" der Formate, egal ob in einer Gruppe oder nicht, eines mit seinem Namen zu holen?


als Antwort auf: [#462516]

PStyle suchen und ersetzen

Martin Fischer
  
Beiträge gesamt: 12783

23. Jan 2011, 11:01
Beitrag # 10 von 17
Beitrag ID: #462623
Bewertung:
(9040 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du könntest Dir eine Funktion schreiben, welche Dir zu einem bestimmten Absatzformatnamen das bzw. die passenden Elemente des Arrays ermittelt.
Dabei könnest Du etwa auch assoziative Arrays mit den Namen der AF als Namensgeber erzeugen.

Wegen der Verteilung der AF über verschiedene Gruppen ist es möglich, dass es mehrere AF mit einem bestimmten Namen gibt (deswegen der Vorschlag mit den Arrays).


als Antwort auf: [#462614]

PStyle suchen und ersetzen

fabiantheblind
Beiträge gesamt:

23. Jan 2011, 11:09
Beitrag # 11 von 17
Beitrag ID: #462626
Bewertung:
(9033 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ui jui jui,
Zitat assoziative Arrays

das ist ja cool.
Danke für den Tipp Martin.

:F


als Antwort auf: [#462623]

PStyle suchen und ersetzen

fabiantheblind
Beiträge gesamt:

23. Jan 2011, 11:30
Beitrag # 12 von 17
Beitrag ID: #462629
Bewertung:
(9021 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ungefähr sowas!

Code
var doc = app.activeDocument; 

var hashList = buildHashList(doc);

var oldPStyle = hashList["oldParStyle"];
var newPStyle = hashList["newParStyle"];

switchParaStyle(doc,oldPStyle, newPStyle);


function switchParaStyle(doc,styleToChange, theNewStyle) {

app.changeTextPreferences = null;
app.findTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = styleToChange;
app.changeTextPreferences.appliedParagraphStyle = theNewStyle;
app.activeDocument.changeText();
app.changeTextPreferences = null;
app.findTextPreferences = null;

}

function buildHashList(doc){
var theList = doc.allParagraphStyles;
var result =new Array();

for(var i = 0; i < theList.length; i++){

result[theList[i].name] = theList[i];

}
return result;
}



als Antwort auf: [#462623]

PStyle suchen und ersetzen

-hans-
Beiträge gesamt: 748

23. Jan 2011, 11:42
Beitrag # 13 von 17
Beitrag ID: #462631
Bewertung:
(9008 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen,

hab' mir auch im Blindflug, da ich gerade kein ID zur Verfügung habe, gebastelt ... Eure letzten Postings hatte ich in der Bastelzeit leider noch nicht gelesen (hole ich jetzt nach :) )

Hoffe das funzt auch ...
Code
var AF = new Array(); 

AF[0] = new Object();
AF[0]["aGroup"] = "Gruppe01";
AF[0]["pStyleOld"] = "AF1";
AF[0]["pStyleNew"] = "AF2";

AF[1] = new Object();
AF[1]["aGroup"] = "Gruppe01";
AF[1]["pStyleOld"] = "AF3";
AF[1]["pStyleNew"] = "AF4";


for (var i = 0; i < AF.length; i++) {
alert(AF[i]["Group"])
aGroup = AF[i]["aGroup"]
pStyleOld = AF[i]["pStyleOld"]
pStyleNew = AF[i]["pStyleNew"]
switchParaStyle(aGroup, pStyleOld, pStyleNew); //Aufruf Handler

}


function switchParaStyle(theAfGroup, styleToChange, theNewStyle) {

app.changeTextPreferences = null;
app.findTextPreferences = null;
app.findTextPreferences.appliedParagraphStyle = app.documents.firstItem().paragraphStyleGroups.itemByName(theAfGroup).paragraphStyles.itemByName(styleToChange);
app.changeTextPreferences.appliedParagraphStyle = app.documents.firstItem().paragraphStyleGroups.itemByName(theAfGroup).paragraphStyles.itemByName(theNewStyle);
app.activeDocument.changeText();
app.changeTextPreferences = null;
app.findTextPreferences = null;


}



als Antwort auf: [#462629]

PStyle suchen und ersetzen

fabiantheblind
Beiträge gesamt:

23. Jan 2011, 11:45
Beitrag # 14 von 17
Beitrag ID: #462632
Bewertung:
(9006 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
hm, das ist doch nicht so gut wenn es 2 Formate mit dem gleichen Namen geben kann.
Wobei ich finde das 2 Formate mit dem gleichen Namen eine Unart ist.
Eine Lösung wäre vorher alle Namen gegeneinander abzugleichen und bei einem Treffer den Namen zu ändern.

Schönen Sonntach wünsch ich euch.

:F


als Antwort auf: [#462629]

PStyle suchen und ersetzen

Martin Fischer
  
Beiträge gesamt: 12783

23. Jan 2011, 11:50
Beitrag # 15 von 17
Beitrag ID: #462634
Bewertung:
(9005 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das sieht schon ziemlich gut aus.
Werde ich so in meine Schnippsel-Sammlung übernehmen. ;-)

Allerdings braucht's noch ne Vorkehrung für den Fall, dass ein assoziatives Array mit einem best. Namen bereits besteht (aus einer anderen Formatgruppe; vgl. den obigen Hinweis zu mgl. Mehrfachvorkommen eines Namens). Du müsstest das neue AF mit demselben Namen dem assoziativen Array hinzupushen.

Ausserdem würde ich der Funktion nicht doc übergeben, sondern - spezifischer - doc.allParagraphStyles. Möglicherweise brauchst Du diese Funktion noch für andere Dinge wie doc.allCharacterStyles o.ä.


als Antwort auf: [#462629]
X

Aktuell

Web / SEO / Blockchain / Betriebssystem
300

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
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!