[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Textrahmen Absatzformat zuweisen

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

Textrahmen Absatzformat zuweisen

MarioF
Beiträge gesamt: 389

19. Okt 2019, 18:38
Beitrag # 1 von 8
Bewertung:
(9801 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,
ich wollte einen ausgewählten Textrahmen ein Absatzformat zuweisen.
Code
app.selection[0].parentStory.ParagraphStyle = 'Abstzformat'; 

funktioniert nicht.
X

Textrahmen Absatzformat zuweisen

MarioF
Beiträge gesamt: 389

19. Okt 2019, 19:42
Beitrag # 2 von 8
Beitrag ID: #572419
Bewertung:
(9791 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit
Code
app.selection[0].parentStory.appliedParagraphStyle 

klappt es.


als Antwort auf: [#572418]

Textrahmen Absatzformat zuweisen

MarioF
Beiträge gesamt: 389

20. Okt 2019, 14:18
Beitrag # 3 von 8
Beitrag ID: #572423
Bewertung:
(9752 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,
ich habe gleich noch eine weitere Frage dazu.
Ich versuche, einem Textrahmen das Format '[Einf.Abs.]' zuzuweisen. Dies macht er aber nicht.
Hier mal das Script, bei dem einem ausgewählten TR ein AF zuweist
Code
#targetengine "TestAbsatz"; 

var _dok = app.activeDocument;

var w = new Window("palette");
w.text = "Test";
w.preferredSize.width = 400;
w.orientation = "column";
w.alignChildren = ["left", "top"];
w.spacing = 10;
w.margins = 16;

var group1 = w.add("group", undefined, { name: "group1" });
group1.orientation = "row";
group1.alignChildren = ["left", "center"];
group1.spacing = 10;
group1.margins = 0;

var statictext1 = group1.add("group");
statictext1.orientation = "column";
statictext1.alignChildren = ["left", "center"];
statictext1.spacing = 0;

statictext1.add("statictext", undefined, "Absatzformat", { name: "statictext1" });

var _CharStyles = _dok.paragraphStyles.everyItem().name;
var dropdown1 = group1.add("dropdownlist", undefined, undefined, { name: "dropdown1", items: _CharStyles });
dropdown1.selection = 0;
dropdown1.alignment = ["left", "top"];

var _start = w.add("button", undefined, undefined, { name: "_start" });
_start.text = "Zuweisen";

w.show();

_start.onClick = function () {

if (
app.selection.length == 0
) {
alert('Es wurde kein Textrahmen ausgewählt');
exit()
}
else {
app.selection[0].parentStory.appliedParagraphStyle = dropdown1.selection.toString();
}
}

In der Auswahl wird das Format angezeigt, zeigt aber keine Reaktion.


als Antwort auf: [#572419]

Textrahmen Absatzformat zuweisen

WernerPerplies
Beiträge gesamt: 2759

20. Okt 2019, 15:12
Beitrag # 4 von 8
Beitrag ID: #572424
Bewertung:
(9743 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Mario,

obwohl die Doku sagt, Zuweisung "String oder Style" werden Strings nicht in jedem Fall aktzeptiert, deshalb solltest Du auf die sichere Seite gehen:

Code
app.selection[0].parentStory.appliedParagraphStyle = app.activeDocument.paragraphStyles.itemByName(dropdown1.selection.text); 



als Antwort auf: [#572423]

Textrahmen Absatzformat zuweisen

MarioF
Beiträge gesamt: 389

20. Okt 2019, 15:23
Beitrag # 5 von 8
Beitrag ID: #572425
Bewertung:
(9739 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin Werner,
das klappt so super. Danke!


als Antwort auf: [#572424]

Textrahmen Absatzformat zuweisen

MarioF
Beiträge gesamt: 389

20. Okt 2019, 17:10
Beitrag # 6 von 8
Beitrag ID: #572427
Bewertung:
(9731 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Eine Frage erledigt, viele neue kommen.
Ich habe die Auswahl auf Formatgruppen ausgeweitet
Code
var allParaStyles = app.activeDocument.allParagraphStyles; 

_allStyle = []
for (var i = 0; i < allParaStyles.length; i++) {
var curStyle = allParaStyles[i];
var curName = curStyle.name;
_allStyle[i] = curName
}

AF ausserhalb von Gruppen werden zugewiesen, aber keine Formate innerhalb von Gruppen. Wie bekomme ich bei
Code
app.selection[0].parentStory.appliedParagraphStyle = app.activeDocument.paragraphStyles.itemByName(dropdown1.selection.text); 

die Gruppe mit rein?


als Antwort auf: [#572424]

Textrahmen Absatzformat zuweisen

WernerPerplies
Beiträge gesamt: 2759

20. Okt 2019, 17:24
Beitrag # 7 von 8
Beitrag ID: #572428
Bewertung:
(9723 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Marion,

da solltest Du alles finden, was Du brauchst:
WpsStylesClass


als Antwort auf: [#572427]

Textrahmen Absatzformat zuweisen

Uwe Laubender
Beiträge gesamt: 5314

31. Okt 2019, 22:56
Beitrag # 8 von 8
Beitrag ID: #572627
Bewertung:
(8599 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Mario,

Du fragst, weshalb die Formate nicht zugewiesen werden.

Das liegt an = "Name" oder = item("Name") oder = itemByName("Name").

Warum? Weil die Architekten, die Entwickler, das so wollten.

Hingegen: = itemByID( id-Nummer ) kann das.
itemByID( id-Nummer ) ist gewissermaßen die "Magic-Bullet".

Beispiel: Lass die id-Nummer eines tief verschachtelten Absatzformats 335 sein.
Dann kannst Du das Absatzformat folgendermaßen aufrufen:

Code
app.documents[0].paragraphStyles.itemByID( 335 ); 


Witzigerweise sogar so:

Code
app.documents[0].pageItems.itemByID( 335 ); 


Wobei ich eher sichergehen würde, nämlich so:

Code
app.documents[0].pageItems.itemByID( 335 ).getElements()[0]; 



Das getElements()[0] reduziert, da wo nötig, das allgemein gehaltene pageItem auf seine wahre Natur. In unserem Beispiel ist das ein Absatzformat.


Also: Speichere die id-Nummer des Absatzformats zusammen mit dessen Name im Array.
Dein UI zeigt dann den Namen, zuweisen musst Du aber das Format mit der zugehörigen ID-Nummer.
Nicht ganz so bequem wie Du's jetzt hast, dafür aber hochfunktionabel.

Nur so als Idee…


als Antwort auf: [#572427]
X