hilfdirselbst.ch
Facebook Twitter gamper-media
Mac OS X enthält verschiedene integrierte Werkzeuge und Technologien, mit denen sich gängige Aufgaben schnell und einfach automatisieren lassen.
Anonym
Beiträge: 22827
12. Feb 2008, 20:24
Beitrag #1 von 8
Bewertung:
(1445 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

xpress tags per appelscript auslesen


hallo leute

den ausgewälten text per appelscript aus xpress auslesen  kann ich so:

Code
set myText to (the text of selection) 


kann ich auch die xpress tags vom ausgewählten text auslesen?

habs bis jetzt nicht gefunden.

grüsse
maximars Top
 
X
Hans Haesler  M  p
Beiträge: 5580
12. Feb 2008, 21:02
Beitrag #2 von 8
Beitrag ID: #422293
Bewertung:
(1444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

xpress tags per appelscript auslesen


Hallo maximars,

die XPress Tags kann man nicht direkt einer Variablen zuweisen. Sie müssen mit dem save-Befehl in eine Datei auf der Harddisk gespeichert werden. Und erst dann kann man sie in eine Variable einlesen. Oder in eine Textbox laden.

Wie das gemacht wird, kannst Du in einem kommentierten Script verfolgen. Vielleicht hast Du schon mal die übersetzte und optimierte Sammlung der XPress-Script-Menü-Scripts heruntergeladen. Falls nicht, schleunigst nachholen:

http://www.fachhefte.ch / Den Link "AppleScripts" anklicken, den Ordner "mac_os_x_d" öffnen und dann je nach Mac-OS-X-Version entweder "leopard" oder "tiger".

Im "leopard"-Ordner den Ordner "qxp_73x" öffnen und die Stuffit-Datei "Quark_73x_scripts_d.sit" wählen.

Im "tiger"-Ordner entweder "min_qxp_6_1" oder "qxp_7_x" öffnen und das Stuffit-Archiv "Quark_6.x_scripts_d.sit" bzw. "Quark_7.x_scripts_d.sit" herunterladen.

Das Script, welches Dich interessieren dürfte, heisst "Nach oder von XPress Tags" und befindet sich im Ordner "Textketten".

Frohes XPress-Taggen! :-)

Gruss, Hans
als Antwort auf: [#422292] Top
 
Anonym
Beiträge: 22827
12. Feb 2008, 21:32
Beitrag #3 von 8
Beitrag ID: #422294
Bewertung:
(1444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

xpress tags per appelscript auslesen


hallo hans

dann muss ich mal anders fragen.
du hast mir schon mal geholfen [url=http://www.page-online.de/forum/viewthread/3438/]hier.
eigentlich geht es immer noch um das selbe problem.
das script anno dazumal  hat das problem bei komplexen dokumenten nicht richtig zu funktionieren.
besser wäre es wenn die suchen und ersetzten funktion nur auf den ausgewählten text greifen würde und zuvor der original text in die zwischenablage kopiert wird und gleich nach dem der bearbeitete text in einer variabel gespeichert ist wieder mit dem originaltext aus der zwischenablage ersetzt wird. am xpress dokument ändert eigentlich nichts. der wert der variable mit dem getagten text würde ich dann in einer anderen anwendung weiter gebrauchen.

hoffe du kannst mir noch einmal helfen : )

grüsse
maximars
als Antwort auf: [#422292] Top
 
Hans Haesler  M  p
Beiträge: 5580
12. Feb 2008, 21:57
Beitrag #4 von 8
Beitrag ID: #422295
Bewertung:
(1444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

xpress tags per appelscript auslesen


Hallo maximars,

okay, ich werde es versuchen. Aber ich müsste wissen, welche Version von QuarkXPress Du benutzest und unter welchem Mac OS.

Und dann sollte ich eine genaue Beschreibung des Ablaufs bekommen. Am besten mit einem Musterdokument.

Ich werde Dir eine Nachricht senden, damit Du mir die Datei zustellen kannst.

Gruss, Hans
als Antwort auf: [#422292] Top
 
Hans Haesler  M  p
Beiträge: 5580
13. Feb 2008, 20:56
Beitrag #5 von 8
Beitrag ID: #422296
Bewertung:
(1444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

xpress tags per appelscript auslesen


Hallo maximars,

danke für Deine mir zugestellte Beschreibung. Und hier ist ein Versuch, welcher den ausgewählten Text behandelt.

Weil die Auswahl nach dem ersten Einsetzen eines Tags weggewischt wird, schlage ich einen anderen Ansatz vor. Eine kurze Skizze:
1. Der ausgewählte Text wird mit copy in die Zwischenablage gesetzt.
2. Eine temporäre Textbox wird erzeugt.
3. Diese Box wird ausgewählt.
4. Der Text aus der Zwischenablage wird mit paste eingesetzt.
5. In der Textkette der temporären Box wird nach text style ranges gesucht, deren Zeichenstilvorlage "thema_text_kursiv" ist. Sobald eine Übereinstimmung gefunden ist, werden die Tags < i > und < /i > davor und dahinter eingesetzt.
6. Die gesamte Story der temporären Box wird der Variablen curSel zugewiesen.
7. Die temporäre Box wird gelöscht.
8. Die Variable curSel wird zurückgeschickt.
---
tell document 1 of application "QuarkXPress 6.52"
   activate
   copy
   try
      delete text box "_tmp_"
   end try
   make text box at beginning with properties {bounds:{5, 5, 200, 150}, name:"_tmp_"}
   set selected of text box "_tmp_" to true
   paste
   tell text box "_tmp_"
      tell story 1
         repeat with i from (count of text style ranges) to 1 by -1
            tell text style range i
               if name of character style is "thema_text_kursiv" then
                  copy "</i>" to after character -1
                  copy "<i>" to before character 1
               end if
            end tell
         end repeat
         set curSel to contents
      end tell
   end tell
   try
      delete text box "_tmp_"
   end try
   return curSel
end tell
---
Nun hoffe ich, dass es bei Dir auch funktioniert.

Gruss, Hans
als Antwort auf: [#422292] Top
 
Anonym
Beiträge: 22827
13. Feb 2008, 21:59
Beitrag #6 von 8
Beitrag ID: #422297
Bewertung:
(1444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

xpress tags per appelscript auslesen


hallo hans

ich brings nicht hin:-( das script geht nicht so wie ich das will. zuerst dachte ich es könne an den verketteten textboxen liegen aber es geht auch nicht bei einem simplen 1 seiten layout ohne verkettung. komischweise geht auch das alte script  [url=http://www.page-online.de/forum/viewthread/3438/]hier nicht mehr. das alte script hat mal funktioniert aber jetzt geht es auch mit dem einfachsten dokument nicht mehr. ich schau da nicht durch.

ich denke ich versuche es morgen auf der arbeit mit xpress 7.3

vielen dank für deine bemühungen :-)

gruss
maximars
als Antwort auf: [#422292] Top
 
Hans Haesler  M  p
Beiträge: 5580
13. Feb 2008, 22:23
Beitrag #7 von 8
Beitrag ID: #422298
Bewertung:
(1444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

xpress tags per appelscript auslesen


Hallo Maximars,

versuche es mal mit einem neuen Projekt. Ein Textbox aufziehen, mit "Jabber" die Box mit Text füllen. Die Zeichenstilvorlage "thema_text_kursiv" definieren und wahllos zwei, drei Worten zuweisen.

Dann einen Teil des Textes auswählen und das Script ab Skripteditor starten.

Zum Schluss das Ergebnisfenster öffnen. Darin sollte der ausgewählte Text stehen und die kursiven Worte sollten von den Tags umgeben sein. Das alles entspricht dem Inhalt der zurückgeschickten Variablen.

Eine andere Kontrolle: Im Script die Zeile, mit welcher die temporäre Box gelöscht wird, auskommentieren, damit sie stehenbleibt und überprüft werden kann.

Also hier klappt es. Mit QuarkXPress 6.52. Allerdings unter Tiger (nicht Leopard).

Gruss, Hans
als Antwort auf: [#422292] Top
 
Hans Haesler  M  p
Beiträge: 5580
16. Feb 2008, 08:57
Beitrag #8 von 8
Beitrag ID: #422299
Bewertung:
(1444 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

xpress tags per appelscript auslesen


Hallo maximars,

die Datei, welche Du mir inzwischen zugestellt hast, liefert die Erklärung: Es kommt Text vor, dessen Zeichenstilvorlage "Kein Stil" ist. In diesem Fall darf  nicht direkt nach dem Namen gefragt werden. Sonst wird eine Fehlermeldung generiert. Um diese abzufangen genügt es, einen 'try'-Wickel um den Test zu legen.

Zudem ist es ratsam, die Auswahl der ersten Box mit set selection to null aufzuheben.
---
tell document 1 of application "QuarkXPress 7.31"
   activate
   copy
   try
      delete text box "_tmp_"
   end try
   set selection to null
   make text box at beginning with properties {bounds:{5, 5, 200, 150}, name:"_tmp_"}
   set selected of text box "_tmp_" to true
   paste
   tell text box "_tmp_"
      tell story 1
         repeat with i from (count of text style ranges) to 1 by -1
            tell text style range i
               try
                  if name of character style is "film_text_kursiv" then
                     copy "</i>" to after character -1
                     copy "<i>" to before character 1
                  end if
               end try
            end tell
         end repeat
         set curSel to contents
      end tell
   end tell
   try
      delete text box "_tmp_"
   end try
   return curSel
end tell
---
Die Bedingungen sind immer noch dieselben. Der Text (nicht die Box) muss ausgewählt sein. Der Name der gewünschten Zeichenstilvorlage des Dokuments muss mit jener im Script überstimmen.

Falls Du lieber nur die Box – statt den Text – auswählen möchtest, dann kann der Code leicht angepasst werden:
---
tell document 1 of application "QuarkXPress 7.31"
   activate
   set tool mode to contents mode
   set selection to story 1 of current box
   copy
--- usw.

Gruss, Hans
als Antwort auf: [#422292] Top
 
X