[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt In Absatzformatpalette ausgewählte Absatzformate ermitteln

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

In Absatzformatpalette ausgewählte Absatzformate ermitteln

Martin Fischer
  
Beiträge gesamt: 12232

13. Dez 2019, 07:55
Beitrag # 1 von 18
Bewertung:
(2207 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Guten Morgen,

ist es möglich, per Skript eine Auswahl von Absatzformaten in der Absatzformatpalette zu ermitteln?

Zwar habe ich daran erhebliche Zweifel, aber möglicherweise übersehe ich etwas.

Viele Grüße
Martin


Hier Klicken X

In Absatzformatpalette ausgewählte Absatzformate ermitteln

WernerPerplies
Beiträge gesamt: 2408

13. Dez 2019, 10:39
Beitrag # 2 von 18
Beitrag ID: #573267
Bewertung:
(2186 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Herr Fischer,
Zitat ist es möglich, per Skript eine Auswahl von Absatzformaten in der Absatzformatpalette zu ermitteln?

Meinen Sie ausgewählte Formate in der Palette finden?
oder
Formate mit bestimmten Eigenschaften ermitteln und ggf. gruppieren.

Ich vermute, eher Ersteres, oder?

Dann sind Ihre Zweifel wohl berechtigt.

Ein wenig von hinten durch den Kopf:
Vielleicht schaffen Sie es mit MenuAction.invoke()-> Neue Gruppe aus Formaten (temporär), danach diese Gruppe wieder löschen.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#573264]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

Martin Fischer
  
Beiträge gesamt: 12232

13. Dez 2019, 11:13
Beitrag # 3 von 18
Beitrag ID: #573269
Bewertung:
(2167 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Perplies,

ja, ich meinte Ersteres.

Aber Ihr Vorschlag klingt interessant, so mutig das auch ist.

Man müsste noch ein paar Dinge abfangen (gleichnamige Absatzformate aus unterschiedlichen Gruppen temporär umbenennen und wieder einen Weg zurück bahnen).

Aber wenn es gar nicht anders geht, dann könnte dies tatsächlich eine Tür öffnen.

Vielen Dank für den Tipp.

Viele Grüße
Martin




als Antwort auf: [#573267]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

WernerPerplies
Beiträge gesamt: 2408

13. Dez 2019, 11:24
Beitrag # 4 von 18
Beitrag ID: #573270
Bewertung:
(2149 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Fischer,
Zitat Man müsste noch ein paar Dinge abfangen (gleichnamige Absatzformate aus unterschiedlichen Gruppen temporär umbenennen und wieder einen Weg zurück bahnen).

Da könnte Ihnen meine WpsStylesClass helfen.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#573269]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

Martin Fischer
  
Beiträge gesamt: 12232

13. Dez 2019, 12:00
Beitrag # 5 von 18
Beitrag ID: #573275
Bewertung:
(2141 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mal seh’n.

Vielleicht etikettiere ich die Absatzformate auch einfach mit insertLabel() und Infos zur ursprünglichen Gruppe und Namen.

Viele Grüße
Martin




als Antwort auf: [#573270]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

Uwe Laubender
Beiträge gesamt: 4577

13. Dez 2019, 14:17
Beitrag # 6 von 18
Beitrag ID: #573282
Bewertung:
(2121 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

Allgemein formuliert: Du brauchst im günstigsten Fall einen Menübefehl des Absatzformate-Bedienfeldes, der ohne Nachfragen an den Benutzer etwas macht.

"Neue Gruppe aus Formaten…" geht nicht.
Da kommt ein Dialog nach, der per Skript schwierig zu beantworten ist.

Bei einem ausgewählten Absatzformat:
Pech. "Format duplizieren…" öffnet ein weiteres Fenster.
Es bietet sich nur an: "Format löschen…" falls das Format nicht benutzt wird.
Wird es benutzt: Keine Chance

Bei zwei oder mehreren ausgewählten Absatzformaten:
"Formate duplizieren…"
Das sollte immer ohne Nachfrage funktionieren.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#573269]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

WernerPerplies
Beiträge gesamt: 2408

13. Dez 2019, 14:23
Beitrag # 7 von 18
Beitrag ID: #573283
Bewertung:
(2117 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Vielleicht etikettiere ich die Absatzformate auch einfach mit insertLabel() und Infos zur ursprünglichen Gruppe und Namen.

Warum einfach, wenn's .... :-)
Code
#include WpsStylesClass.jsx; 
var /*WpsStyleClass*/ wpsParagraphStyles = new WpsStylesClass({root: app.activeDocument, type: "paragraph"});
var /*Array*/styleGroups = wpsParagraphStyles.styleGroups;
// properties(styleGroups[0]) -> parent,parentName,name,styles,path


Und hier hätte ich noch eine Alternative, mit dieser Funktion fülle ich eine DropDownList zur Auswahl eines beliebigen Formates:
Code
var /*Object*/p = {type: "paragraph", parent: app.activeDocument} 
var /*Array*/allStyles = wpsDdlStylesContentList({type: "paragraph", parent: app.activeDocument});
var /*Int*/l = allStyles.length;
var /*Array*/styleList = new Array(l);
for (var j = 0; j < l; j++)
styleList[j] = allStyles[j].value;
alert(styleList.join("\n"));

/*Array*/function wpsDdlStylesContentList(/*Object*/p)
{
var /*Array*/allStylesA = [];

getAllStyles({type: p.type, name: "/", parent: p.parent, styles: allStylesA});
return allStylesA;
/*Void*/function getAllStyles(/*Object*/p)
{
try
{
/*Style*/style = null, /*StyleGroup*/ styleGroup = 0;

for (var j = 0; j < p.parent[p.type + "Styles"].length; j++)
{
style = p.parent[p.type + "Styles"][j];
p.styles.push({name: p.name + style.name, value: p.name + style.name, id: style.id});
}
for (var j = 0; j < p.parent[p.type + "StyleGroups"].length; j++)
{
styleGroup = p.parent[p.type + "StyleGroups"][j];
getAllStyles({type: p.type, name: p.name + styleGroup.name + "/", parent: styleGroup, styles: p.styles});
}

}
catch (error)
{
// wpsHandleError(error, $.stack, "wpsDdlStylesContentList");
}
}

}


Viele Grüße
Werner

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#573275]
(Dieser Beitrag wurde von WernerPerplies am 13. Dez 2019, 14:26 geändert)

In Absatzformatpalette ausgewählte Absatzformate ermitteln

WernerPerplies
Beiträge gesamt: 2408

13. Dez 2019, 14:40
Beitrag # 8 von 18
Beitrag ID: #573284
Bewertung:
(2110 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Uwe,

danke, dass Du meine Idee ausprobiert hast.

Deine Idee, mit der Kopie wäre natürlich toll, wenn da die Einschränkung mit "zwei oder mehreren" nicht wäre.

Letztendlich wäre vermutlich ein eigenes DialogFenster die einzige Lösung für das Problem (wieder einmal! :-))

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#573282]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

Martin Fischer
  
Beiträge gesamt: 12232

13. Dez 2019, 15:15
Beitrag # 9 von 18
Beitrag ID: #573286
Bewertung:
(2104 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Werner Perplies ] Letztendlich wäre vermutlich ein eigenes DialogFenster die einzige Lösung für das Problem (wieder einmal! :-))


Im ScriptUI for dummies von Peter Kahrel gibt es auf S. 48 (v. 2.16) ein treeview-Beispiel mit eben den Absatzformaten und Absatzformatgruppen eines Dokuments.



Allerdings lässt die treeview-Liste keine Mehrfachauswahl zu. Frown
Oder täusche ich mich?

Viele Grüße
Martin




als Antwort auf: [#573284]
(Dieser Beitrag wurde von Martin Fischer am 13. Dez 2019, 15:18 geändert)

Anhang:
treeview.png (93.1 KB)

In Absatzformatpalette ausgewählte Absatzformate ermitteln

Martin Fischer
  
Beiträge gesamt: 12232

13. Dez 2019, 15:23
Beitrag # 10 von 18
Beitrag ID: #573287
Bewertung:
(2097 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Allerdings lässt die treeview-Liste keine Mehrfachauswahl zu. Frown
Oder täusche ich mich?


Diese Frage haben sich andere auch schon gestellt:

Adobe Support Community > InDesign
Creating list of checkboxes?

Viele Grüße
Martin




als Antwort auf: [#573286]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

WernerPerplies
Beiträge gesamt: 2408

13. Dez 2019, 15:36
Beitrag # 11 von 18
Beitrag ID: #573289
Bewertung:
(2090 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Fischer,

das Treeview benutze ich seit CC nicht mehr, weil es damals plötzlich nicht mehr funktionierte.

Deshalb kann ich Ihnen diese Frage nicht beantworten.

Grundsätzlich können sie aber mit Sicherheit eine eigene Selektionsroutine schreiben, in dem Sie jedem selektierten Knoten einen Marker im Text hinzufügen, aber dabei funktionieren die Standardwerkzeuge zur Selektion nicht.

Ich löse solche Aufgaben je nach Anforderung mit Listboxen und DropDownlists.

Für Ihre Problematik bieten sich aus meiner sich drei Lösungen an:

1. einfache Listbox mit Pfadangaben,
2. Zwei nebeneinander liegende Listboxen
links parent, rechts childs für den links ausgewählten Eintrag, bei tieferer Schachtelung rutscht die rechte Spalte nach links, rechts wird dann mit Eintag von links gefüllt.
3. Für jede Ebene wird on the Fly ein neues Fenster mit einer Listbox für die tiefere Ebene geöffnet.

Alle drei Varianten habe ich schon verwendet.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#573286]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

WernerPerplies
Beiträge gesamt: 2408

13. Dez 2019, 15:49
Beitrag # 12 von 18
Beitrag ID: #573290
Bewertung:
(2082 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Natürlich können Sie auch solch eine Darstellung mit einzelenen Checkboxen nachbilden, aber dass wäre dann schon eine recht anspruchsvolle Aufgabe.

Im dem von Ihnen verlinkten Beitrag wird ja auch noch CEP angesprochen.

Allgemeiner ausgedrückt können Sie natürlich auch für die Dialoge InDesign-Extendedskript komplett verlassen und eine Lösung auf PWA-Basis schreiben, dafür würde sich zum Beispiel Electron anbieten, eine von mir für die Zukunft angestrebte Lösung, aber für Sie jetzt sicher ein Overkill.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#573287]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

Uwe Laubender
Beiträge gesamt: 4577

16. Dez 2019, 11:31
Beitrag # 13 von 18
Beitrag ID: #573311
Bewertung:
(1866 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Werner,

wo Du jetzt Listboxen angesprochen hast. Da gibt's mit dem aktuellen InDesign 2020 ein Darstellungsproblem mit der Eigenschaft checked.

Hier die Details:

listitem.checked on indesign 15.0 (2020)
Laubender, Nov 12, 2019

https://community.adobe.com/...m-p/10734040#M160426

Hier etwas zum Testen:

Code
/* 

BUG with InDesign 2020 version 15.0.0.155
BUG with InDesign 2020 version 15.0.1.209

checkmarks of listbox items are NOT visible.

Property checked can have 3 values:

undefined
false
true

See discussion here:
https://community.adobe.com/t5/InDesign/listitem-checked-on-indesign-15-0-2020/m-p/10734040#M160426

*/

#targetengine "Uwe-Listbox-Test"

var x = new Window ("dialog","test win", [0,0,150,150]);
var y = x.add("listbox",[10,10,140,116]);

for (var n=0; n<7; n++)
{
y.add( "item", "test " + n );

// Leave the first two items as undefined:
if( n < 2 ){ continue };

// Set the third item to checked:
if( n == 2 ){ y.items[n].checked = true ; continue };

// All other items to unchecked:
y.items[n].checked = false ;

};

for( var n=0; n<y.items.length; n++ )
{
$.writeln( n +"\t"+ y.items[n].checked );
};

x.center();
x.show();

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


als Antwort auf: [#573289]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

WernerPerplies
Beiträge gesamt: 2408

16. Dez 2019, 15:19
Beitrag # 14 von 18
Beitrag ID: #573325
Bewertung:
(1845 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Uwe,

du hast recht!

Es ist schon bewundernswert, wie Adobes Programierer es immer wieder schaffen, einfache Betriebssystemmodule kapputt zu programmieren.

Ich muss also davon ausgehen, dass einige meiner Skripte unter CC2020 nicht mehr funktionieren.

Es ist also wirklich höcheste Zeit sich bei der Dialogprogrammierung von Adobe zu trennen.

Einen schönen Tag wünscht

Werner Perplies
Auftragsprogrammierung und Skripte für Adobe InDesign
neu: WpsProjectHandler 15.06.2018, Version 1.75, neue Funktionen
Aktuelles
XING


als Antwort auf: [#573311]

In Absatzformatpalette ausgewählte Absatzformate ermitteln

Uwe Laubender
Beiträge gesamt: 4577

22. Dez 2019, 20:24
Beitrag # 15 von 18
Beitrag ID: #573413
Bewertung:
(1574 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf: Moin Uwe,

danke, dass Du meine Idee ausprobiert hast.

Deine Idee, mit der Kopie wäre natürlich toll, wenn da die Einschränkung mit "zwei oder mehreren" nicht wäre.

Letztendlich wäre vermutlich ein eigenes DialogFenster die einzige Lösung für das Problem (wieder einmal! :-))


Hallo Werner,
neue Überlegung zum Problem mit einem ausgewählten Absatzformat:

Neuer Textrahmen dem Dokument hinzufügen mit ein wenig Inhalt.
Das zugewiesene Absatzformt des ersten Absatzes müsste das ausgewählte Format im Absatzformatbedienfeld sein.

Code
var tempFrame = app.documents[0].textFrames.add 
({ geometricBounds : [0,0,100,100] , contents : "Test" });
var selectedParaStyle = tempFrame.paragraphs[0].appliedParagraphStyle;

tempFrame.remove();

$.writeln( selectedParaStyle.name +"\r"+ selectedParaStyle.id +"\r"+ selectedParaStyle.parent );



Nun ja, das hat noch einen Haken:

Ist eine Formatgruppe ausgewählt oder es ist nichts ausgewählt, erinnert InDesign an die letzte Formatauswahl und verwendet diese für den temporären Textrahmen.
*****
Mit herzlichem Gruß,
Uwe Laubender


als Antwort auf: [#573284]
X

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
30.01.2020

Ortsunabhängig
Donnerstag, 30. Jan. 2020, 10.00 - 10.30 Uhr

Webinar

In diesem ca. halbstündigen kostenlosen Webinar stellen wir Ihnen die Neuerungen in der Version 2019 von Enfocus PitStop Pro vor.

Ja

Organisator: Impressed GmbH

Kontaktinformation: Detlef Grimm, E-Mailschulungen AT impressed DOT de

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

Enfocus PitStop 2019
Veranstaltungen
03.02.2020 - 06.02.2020

Publisher Basic, Publisher Professional "Multimedia", Web Publisher

Digicomp Academy AG, Limmatstrasse 50, 8005 Zürich
Montag, 03. Feb. 2020, 17.45 Uhr - Donnerstag, 06. Feb. 2020, 20.00 Uhr

Infoabend

An unserem Infoabend zum «Publisher Basic», «Publisher Professional» und «Web Publisher» erfahren Sie, wie die Lehrgänge aufgebaut sind und durchgeführt werden. Ihr Fachspezialist zeigt Ihnen Weg, Etappen und Ziele Ihres gewünschten Lehrgangs auf. - Lerninhalt - Dauer - Zwischenprüfungen - Lernaufwand - Methodik - Lernziel - Zertifizierungsmöglichkeiten

Kostenloser Infoabend
Dauer 17.45 - 20 Uhr / ab 20 Uhr Apéro
044 447 21 74

Nein

Organisator: Isil Günalp

Kontaktinformation: Isil, E-Mailisil.guenalp AT outlook DOT com

https://www.digicomp.ch/events/infoabende/infoabend-fuer-software-anwender-innen/infoabend-publishing-lehrgaenge