[GastForen Programmierung/Entwicklung AppleScript Text mit Formatierungen kopieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Text mit Formatierungen kopieren

Goar
Beiträge gesamt: 387

26. Jul 2004, 22:04
Beitrag # 1 von 3
Bewertung:
(634 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Scripter,

in einer Artikelliste gibt es Absatzformate für Artikel-Bezeichnung und Artikel-Text. Wenn die Artikel-Bezeichnung aus einer Zeile besteht und der Artikel-Text aus zwei Zeilen (erste Zeile Text, zweite Zeile Artikel-Nr. und Preis), soll die erste Zeile des Artikel-Textes hinter die Artikel-Bezeichnung gesetzt werden, sofern dort der Platz ausreicht.

Eigentlich habe ich schon alles zusammen, bis einschließlich der Gesamtlänge der beiden Zeilen:
---
[code:1]set maxWidth to 60

tell document 1 of application "QuarkXPress 4.11"
 tell current box
  tell story 1
   repeat with i from 3 to 8 -- testweise nur diese Absätze
    try
     if name of style sheet of paragraph i contains "Bezeichnung" then
      if (count of lines of paragraph i) = 1 then
       set bezWidth to width of line 1 of paragraph i as millimeter units as real
      end if
      log bezWidth
     else if (name of style sheet of paragraph i contains "Artikel-Text") and (bezWidth ≠ "") then
      if (count of lines of paragraph i) = 2 then
       set txtWidth to width of line 1 of paragraph i as millimeter units as real
       set totalWidth to bezWidth + txtWidth
       if maxWidth > totalWidth then
       -- hier müsste ich jetzt irgendwie den Text markieren statt ihn zu kopieren
        set txtPara to every text of line 1 of paragraph i
       end if
       log (txtPara & totalWidth) as text
      else
       set bezWidth to ""
      end if
     else
      set bezWidth to ""
     end if
    on error
    end try
   end repeat
  end tell
 end tell
end tell
[/code:1]---

Nur gelingt es mir nicht, die erste Zeile des Artikel-Textes zu markieren, damit ich sie mit aller Formatierung (per XP-Marken-Text) sichern und hinter der Artikel-Bezeichnung wieder einsetzen kann. Dafür müsste ich nach dem Kopieren die Einfügemarke ans Ende des Artikel-Bezeichnungs-Absatzes setzen.

Meine Versuche, Begriffe aus dem XP-Verzeichnis (selection, insertion point) ohne Beispiel in funktionierenden Scriptzeilen unter zu bringen, sind wie so oft fehlgeschlagen.

Wer entfrustet mich?

Gruß, Goar
X

Text mit Formatierungen kopieren

Hans Haesler
  
Beiträge gesamt: 5816

27. Jul 2004, 00:34
Beitrag # 2 von 3
Beitrag ID: #418951
Bewertung:
(633 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

ich würde Dich gerne von Deinen Qualen erlösen. Aber es ist etwas zu abstrakt.
Deshalb mein Angebot: sende mir bitte ein Dokument mit der entsprechenden Textbox,
welche Du kopierst und darin manuell das gewünschte Resultat herstellst.

Danach werde ich sicher klarer sehen und Dir mindestens eine funktioniende Lösung
präsentieren.

Hans Haesler <[email protected]>


als Antwort auf: [#418950]

Text mit Formatierungen kopieren

Hans Haesler
  
Beiträge gesamt: 5816

28. Jul 2004, 09:17
Beitrag # 3 von 3
Beitrag ID: #418952
Bewertung:
(633 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Goar,

ja, mit einem konkreten Beispiel ist es viel einfacher.

Zu Beginn des Scripts sollte die Variable 'bezWidth' initialisiert sein, weil dies sonst nur
unter bestimmten Umständen in der 'if / else if'-Schleife geschieht. Und wenn man Pech hat,
dann ist sie beim ersten Umgang unbekannt. Gut, es ist abgesichert durch 'try'.

Damit die Formatierungen übernommen werden, darf man den Text nicht direkt in eine Variable
geben. Man muss die Auswahl in eine Temp-Datei auf die Harddisk sichern und dann wieder
eingelesen. Nur so funktioniert das mit den XPress Tags.

Eine Variante ist, die gewünschte Textkette mit 'move' zu verschieben. Hier ist das Kernstück
des Scripts, die 'if maxWidth'-Schleife:
---
if maxWidth > totalWidth then
  -- den Zwischenraum einfügen
  copy space to before character 1 of line 1 of paragraph i
  -- den Text verschieben
  move every text of line 1 of paragraph i to before character -1 of paragraph (i - 1)
  -- das Shift-Return-Zeichen entfernen
  delete character -1 of line 1 of paragraph (i - 1)
end if
---
Nun wünsche ich Dir viel Spass beim Weiterentwickeln dieses Scripts.

Hans Haesler <[email protected]>


als Antwort auf: [#418950]

Aktuell

InDesign / Illustrator
ScreenShot 274 Warum Templates in InDesign benutzen_ - Satzkiste in Stuttgart - Satz und technische Umsetzung - Google Chrome (300x300 HilfDirSelbst)

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
02.02.2023

Prozesse optimieren und effizient gestalten

Zürich
Donnerstag, 02. Feb. 2023, 08.00 - 10.00 Uhr

Digitalisierung, Webauftritt

Digitalisierung mitgestalten - Worauf kommt es an? Wie wichtig ist die Webseite? Webseite mit Word Press? Interne Prozesse optimieren

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: Birol Isik, E-Mailinfo AT bkcc DOT ch

https://digitalisierung-heute.ch/digitalisierung-informationstag-schweiz/

Veranstaltungen
01.03.2023 - 09.03.2023

Online
Mittwoch, 01. März 2023, 00.00 Uhr - Donnerstag, 09. März 2023, 00.00 Uhr

Online Webinar

Wie gehen wir mit diesen Veränderungen um? Was ist notwendig, damit wir die Digitalisierung im Unternehmen klappt? Veränderungsprozesse verstehen und entsprechend handeln Mitarbeiter als Botschafter Webseite mit WordPress erstellen SEA /SEO (Ads aufschalten)

Ja

Organisator: B. Isik - SNF Academy

Kontaktinformation: B. Isik, E-Mailinfo AT snfa DOT ch

https://www.fernstudiumfitness.ch/digitalisierung-schweiz/