Forenindex » Programme » Print/Bildbearbeitung » Adobe InDesign Skriptwerkstatt » Textfeld mit zwei Paragraphen

Textfeld mit zwei Paragraphen

lukinbg
Beiträge gesamt: 9

2. Mär 2010, 01:29
Bewertung:

gelesen: 1128

Beitrag als Lesezeichen
Hallo,

wie kann man ein Textframe mit zwei Paragraphen scripten?

var myDocument = app.documents.add();
var myPage = myDocument.pages.add();
myDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
myDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;

var textFrame1 = myPage.textFrames.add();
textFrame1 .geometricBounds = [1,1, 100, 100]; //[y1, x1, y2, x2]
textFrame1.contents = "Test";

Das erstellt nur einen Text-Rahmen mit einem Paragraphen, wie kann ich noch einen zweiten hinzufügen?

Paragraphs hat keine add Methode :-/

Danke im Voraus

Textfeld mit zwei Paragraphen

Uwe Laubender
Beiträge gesamt: 5319

2. Mär 2010, 03:36
Bewertung:

gelesen: 1118

Beitrag als Lesezeichen
Hallo, lukinbg!
Du kannst auf
Code
myDocument.pages.add() 

verzichten. Über
Code
app.documents.add() 

legst Du bereits implizit eine Datei mit mindestens einer Seite an. Mindestens deshalb, weil Du mit Deinem Script keine "Dokumentvorgabendateien" ansprichst (documentPresets); es wird deshalb die von Dir zuletzt verwendete Dokumentvorgabe benutzt, um alles, was Du nicht explizit beim Erzeugen der neuen Datei definiert hast, aufzubauen: z.B. Seitengröße, Satzspiegel und eben auch Seitenanzahl.

Eine neu angelegte InDesign-Datei kann nun mal nicht keine Seite enthalten ;-)

Um auf bereits gespeicherte Vorgaben zurückzugreifen, mußt Du an die documentPresets rankommen. Auslesen, welche Du zur Verfügung hast, kannst Du z.B. folgendermaßen (hier von mir alphabetisch sortiert):
Code
var dPs=app.documentPresets; 
var dPsNameArray=new Array();
for (n=0;n<dPs.length;n++){
dPsNameArray.push(dPs[n].name);
};
var dPsString=dPsNameArray.sort().join(",").replace(/,/g,"\r");
alert(dPsString);

So, jetzt zu Deiner Frage mit den Absätzen: ich weiß zwar nicht weshalb Du ausgerechnet ZWEI Absätze im Textrahmen brauchst, aber die hast Du schnell, wenn Du Deinem Textinhalt noch ein Absatzzeichen und etwas Text hinzufügst:
Code
textFrame1.contents = "Test-Absatz1\rTest-Absatz2" 

"\r" ist die Kodierung eines Absatzzeichens in einem String.
Lesbarer vielleicht geschrieben:
Code
textFrame1.contents = "Test-Absatz1"+"\r"+"Test-Absatz2" 

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

Textfeld mit zwei Paragraphen

lukinbg
Beiträge gesamt: 9

2. Mär 2010, 08:19
Bewertung:

gelesen: 1096

Beitrag als Lesezeichen
Hallo!

das war die Rätsels Lösung - ich habe das gleiche mit

textFrame1.contents = "Test-Absatz1"+"\n"+"Test-Absatz2" ;

probiert und bin nicht darauf gekommen, dass "\r" für einen Absatz steht.

Funktionier prima, DANKE!