[GastForen Programme Print/Bildbearbeitung Adobe InDesign

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

InDesign CS - Java Script

Martin Fischer
  
Beiträge gesamt: 12783

25. Jan 2006, 21:48
Bewertung:

gelesen: 9270

Beitrag als Lesezeichen
Hallo Volker,

> Ich sollte nur noch eines machen können:
> einfach den ganzen Text in einer anderen Schriftart und Schriftgrösse ausgeben.
> Ich hab zwar was versucht, aber ich bekomme nur die erste Zeile (Dokumentenname)
> in der Schriftart hin, die restlichen Zeilen werden immernoch falsch wiedergegeben.

Bei Dir steht "var myParagraph = myFrame.paragraphs.item(0); "
myParagraph ist also der erste Absatz im Textrahmen.
Und diesem weist Du die Schrift myFont zu.
Die anderen Absätze bleiben unberücksichtigt.

Nun könntest Du eine Schleife machen und vom ersten (myFrame.paragraphs[0]) bis zum letzten (myFrame.paragraphs[-1]) die Schrift myFont und die anderen Attribute zuordnen.

Es geht aber auch einfacher: Du weist die Schrift dem gesamten Text vom Textrahmen myFrame zu. Der gesamte Text ist texts[0].
Die Zeile lautet also:
Code
myFrame.texts[0].appliedFont = myFont; 


Und so weiter mit den anderen Eigenschaften.

Noch einfacher wäre es aber, wenn Du mit einem speziellen Absatzformat arbeiten würdest.
z.B.
Code
// neues Absatzformat mit Eigenschaften definieren 
myStyle = myDoc.paragraphStyles.add(
{
name:"Info",
appliedFont:app.fonts.item("Helvetica LT"),
justification: Justification.leftAlign,
pointSize:30
}
)

Und dann könntest Du dem Text dieses Absatzformat zuweisen:
Code
myFrame.texts[0].appliedParagraphStyle = myStyle; 


> (Wenn ein Textrahmen an der gleichen Stelle steht sollte dieser verwendet werden -
> geht das überhaupt????)

Ja, wenn der Textrahmen über ein eindeutiges Merkmal zu identifizieren ist.
Ein Merkmal haben wir schon: er sitzt auf dem ersten Druckbogen (auch die Montagefläche zählt dazu). Ein weiteres Merkmal könnte der Inhalt (oder ein Teil davon sein).

Besser aber, wir verpassen ihm ein label (Skriptbezeichnung). Das ist so eine Art Etikett.
Der Textrahmen könnte z.B. das label "Info" bekommen (myFrame.label = "Info"). Und beim Aufruf des Skripts wäre zu prüfen, ob auf dem ersten Druckbogen ein Textrahmen mit label "Info" vorhanden ist (dann nimm den, sonst mach' 'nen neuen).

Allerdings würde ich den Textrahmen mit dem label "Info" vor dem Zählen löschen, sonst wird dessen Inhalt beim Zählen der Zeichen auch berücksichtigt.

(Dieser Beitrag wurde von Martin Fischer am 25. Jan 2006, 21:50 geändert)
Änderungsverlauf:
Beitrag geändert von Martin Fischer (Moderator) am 25. Jan 2006, 21:50