[GastForen Programmierung/Entwicklung AppleScript QuarkXPress 9 - Zeichenstil entfernen

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

QuarkXPress 9 - Zeichenstil entfernen

Andreas78m
Beiträge gesamt: 33

29. Mai 2015, 14:18
Beitrag # 1 von 17
Bewertung:
(4866 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich such gerade eine Möglichkeiten bei allen Text-Boxen (mit bestimmten Absatzstilvorlagen) in einem Dokument die Zeichenstilvorlage von "Kein Stil" auf gar keine Auswahl zu stellen.

Sprich folgendes:
Absatzstil -> "Kein Stil"
zu
Absatzstil -> NIX

Fällt Euch was dazu ein? Hab schon mal angefangen, aber leider ändert das nicht wirklich etwas im Dokument ab.

Code
tell document 1 of application "QuarkXPress" 
activate

tell every text box
tell story 1
repeat with i from 1 to count paragraphs
tell paragraph i
if style sheet is "MDB_Headline" then
set character style to none
else if style sheet is "MDB_Beschreibung" then
set character style to none
end if
end tell
end repeat
end tell
end tell

display dialog "Fertig!"

end tell

X

QuarkXPress 9 - Zeichenstil entfernen

Hans Haesler
  
Beiträge gesamt: 5826

29. Mai 2015, 14:48
Beitrag # 2 von 17
Beitrag ID: #540097
Bewertung:
(4849 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

aber "Kein Stil" und "Nix" ist doch dasselbe.

Oder kannst Du das manuell ausführen?
Was ist der Zweck dieser Aktion?

Gruss, Hans


als Antwort auf: [#540095]

QuarkXPress 9 - Zeichenstil entfernen

Kultgerd
Beiträge gesamt: 61

29. Mai 2015, 14:58
Beitrag # 3 von 17
Beitrag ID: #540099
Bewertung:
(4835 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
hoffe, dir geht es soweit gut! Andi hat bei uns das Thema AS übernommen.

Andi und ich sitzen gerade dazu zusammen. Es gibt die Möglichkeit in QXP, keinen Zeichenstil zu vergeben, oder den Zeichenstil "Kein Stil". (=> tagged Code ist unterschiedlich) ...
... ähnlich, ob in einem Datenfeld die Zahl 0 steht oder das Feld leer ist. Das ist auch ein Unterschied.

Wenn ein Programm die Zeichenstilangaben analysiert, um die Daten in eine DB zu importieren, dann gibt es im einen Fall die Info "Kein Stil" und im anderenFall gar keine Info im Code.

Wir müssen wahrscheinlich sehr kurzfristig aus solchen Gründen einen kompletten Katalog überarbeiten, da sonst das Kundenprogramm nicht mit den Tags sauber arbeiten kann. Das wird gerade geklärt, die Daten müssen aber in Bälde zur Druckerei.

Viele Grüße
Gerd


als Antwort auf: [#540097]

QuarkXPress 9 - Zeichenstil entfernen

Hans Haesler
  
Beiträge gesamt: 5826

29. Mai 2015, 15:33
Beitrag # 4 von 17
Beitrag ID: #540100
Bewertung:
(4806 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerd,

ja, danke, es geht mir gut. Aber ich bin gerade unterwegs und kann mich deshalb erst gegen Abend praktisch mit dem Problem befassen.

Gruss, Hans


als Antwort auf: [#540099]

QuarkXPress 9 - Zeichenstil entfernen

Andreas78m
Beiträge gesamt: 33

29. Mai 2015, 16:10
Beitrag # 5 von 17
Beitrag ID: #540101
Bewertung:
(4757 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo noch mal,

wir bräuchten das Script bis Montag (einschließlich) und ich werd mir auch noch was über das Wochenende überlegen.

Man kann im übrigen das sogar händisch anlegen. Dazu einfach eine neue Absatzstilvorlage anlegen und als Zeichenstil "Standard" auswählen.
Dann hat er nur oben eine Absatzstilvorlage markiert und unten ist keine Zeichenstilvorlage ausgewählt.

Wir müssen wohl an 3 Stellen die Text Boxen "säubern" (sehen wir auch nicht unbedingt als sauberer an).

Evtl. könnte man auch beim Wandeln in einen Tagged Text einfach das schließen der Stilvorlage "<@$p>" und dann ein direkt folgender Zeilenumbruch, entfernen.

Also mit einer Art "Suchen & Ersetzen" Script und dann wieder zurück wandeln, damit die Unterschneidungen und Modifikationen der Textblöcke erhalten bleiben.


als Antwort auf: [#540100]
(Dieser Beitrag wurde von Andreas78m am 29. Mai 2015, 16:11 geändert)

QuarkXPress 9 - Zeichenstil entfernen

Hans Haesler
  
Beiträge gesamt: 5826

29. Mai 2015, 16:50
Beitrag # 6 von 17
Beitrag ID: #540105
Bewertung:
(4735 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

würdest Du mir bitte ein Beispieldokument zustellen?
Eine Seite, eine Box. Besten Dank im voraus.

Gruss, Hans


als Antwort auf: [#540101]

QuarkXPress 9 - Zeichenstil entfernen

Andreas78m
Beiträge gesamt: 33

29. Mai 2015, 17:04
Beitrag # 7 von 17
Beitrag ID: #540107
Bewertung:
(4706 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

na klar, Mails sind raus und vielen Dank für die Hilfe.

Beste Grüße,
Andreas


als Antwort auf: [#540105]

QuarkXPress 9 - Zeichenstil entfernen

Hans Haesler
  
Beiträge gesamt: 5826

29. Mai 2015, 23:37
Beitrag # 8 von 17
Beitrag ID: #540122
Bewertung:
(4626 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

ich bedanke mich für das Dokument.

Die verwendeten Frutiger-Schriften hatte ich nicht zur Verfügung. Deshalb musste ich sie durch andere ersetzen.
Und zwar sowohl in den Absatzstilvorlagen als auch in den Texten.

Doch damit konnte die Ausgangslage rekonstruiert werden:
– In der Palette "Stilvorlagen" sind die Namen der Absatzstilvorlagen mit einem Pluszeichen versehen.
– Gleichzeitig ist bei den Zeichenstilvorlagen "Kein Stil" ausgewählt.

Letzteres kann manuell entfernt werden:
– Entweder: Die Optionstaste niederhalten und auf den Namen der Absatzstilvorlage klicken.
– Oder: Den Mauszeiger auf den Namen der Absatzstilvorlage richten; die Controltaste niederhalten; die Maustaste betätigen und im Kontextmenü den Artikel "Stilvorlage anwenden und lokale Formatierung entfernen" wählen.

Wie das per Script gemacht werden kann? Bei Deinem Versuch fehlt name of. Und statt none muss dann null verwendet werden.

Vielleicht hilft dies:

Code
tell document 1 of application "QuarkXPress" 
activate
repeat with i from 1 to count of text boxes
tell text box i
tell story 1
repeat with k from 1 to count paragraphs
tell paragraph k
set curName to name of style sheet
if curName is "MDB_Headline" then
set paragraph style to null
set paragraph style to curName
else if curName is "MDB_Beschreibung" then
set paragraph style to null
set paragraph style to curName
end if
end tell
end repeat
end tell
end tell
end repeat

display dialog "Fertig!" giving up after 1

end tell

Aber lokale Formatierungen werden nicht erhalten bleiben.

Gruss, Hans


als Antwort auf: [#540107]

QuarkXPress 9 - Zeichenstil entfernen

Hans Haesler
  
Beiträge gesamt: 5826

30. Mai 2015, 20:29
Beitrag # 9 von 17
Beitrag ID: #540136
Bewertung:
(4551 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

noch etwas: Wenn die Textboxen verkettet sind, dann werden die Absätze mehr als ein Mal behandelt.

Abhilfe: In der fünften Zeile 'story 1' durch 'text 1' ersetzen:

Code
tell document 1 of application "QuarkXPress" 
activate
repeat with i from 1 to count of text boxes
tell text box i
tell text 1

Oder die Textboxen weglassen und ganz einfach die Textketten adressieren:

Code
tell document 1 of application "QuarkXPress" 
activate
repeat with s from 1 to count of stories
tell story s
repeat with p from 1 to count of paragraphs
tell paragraph p
set curName to name of style sheet
if curName is "MDB_Headline" then
set paragraph style to null
set paragraph style to curName
else if curName is "MDB_Beschreibung" then
set paragraph style to null
set paragraph style to curName
end if
end tell
end repeat
end tell
end repeat

display dialog "Fertig!" giving up after 1

end tell

Das funktioniert natürlich auch, wenn die Boxen nicht verkettet sind.

Gruss, Hans


als Antwort auf: [#540122]

QuarkXPress 9 - Zeichenstil entfernen

Andreas78m
Beiträge gesamt: 33

31. Mai 2015, 15:14
Beitrag # 10 von 17
Beitrag ID: #540142
Bewertung:
(4504 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank für die wie immer sehr flotte Hilfe.

Werde es Morgen Früh gleich als erstes mal durchtesten. Beim manuellen wieder zurück stellen wendet man die Absatzstilvorlage wieder auf den kompletten Text an.

Das führt dazu das manuelle Unterschneidungen leider entfernt werden und somit der Textumbruch neu (leider falsch) läuft.

Drum erhoffe ich mir das per AppleScript nicht die Absatzstilvorlage neu über den Text vergeben wird, sondern ähnlich wie bei einem Tagged Text Modifizierungen erhalten bleiben und "einfach" nur die Zeichenstilvorlage "umgeschalten" wird.

Ach und danke für die Info das es nicht "none" sondern "null" ist. Habe schon ein wenig rechachiert gehabt und befürchtet das "Kein Stil" schon mit "none" vergeben wurde, nur war ich mir nicht mehr ganz sicher.

Hoffe das Wochenende war soweit trotzdem entspannt.


als Antwort auf: [#540136]

QuarkXPress 9 - Zeichenstil entfernen

Andreas78m
Beiträge gesamt: 33

1. Jun 2015, 10:46
Beitrag # 11 von 17
Beitrag ID: #540148
Bewertung:
(4409 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo mal wieder,

um mit Tagged Text etwas aus einer selektierten Box zu verändern (um gegebenenfalls Modifikationen am Text zu erhalten), habe ich mal mit einem Script angefangen.

Er schreibt zwar brav alles in die Tagged Text Datei auf den Schreibtisch und scheint diese danach auch in den selektierten Textrahmen zu spielen... aber mit dem Suchen und Ersetzen vom "aString" haut irgend etwas leider noch nicht so hin, wie es sollte.

Es müssten nämlich nach den Absatzstilvorlagen die "<@>" verschwinden und das macht er gerade leider noch nicht wirklich.

Code
-- Suchen und Ersetzen in Tagged Text 

tell application "QuarkXPress"
activate

-- File auf dem Schreibtisch
set tagsPath to ((path to desktop) as string) & "qxptags.xtg"

-- Was soll ersetzt werden
set searchList to {"@MDB_Headline:<\\@>", "@MDB_Beschreibung:<\\@>", "@MDB_Artikel_Bezeichnung:<\\@>"}
set replaceList to {"@MDB_Headline:", "@MDB_Beschreibung:", "@MDB_Artikel_Bezeichnung:"}

set convert quotes to true
set import styles to true
tell document 1

-- in Tagged Text speichern
tell current box
save story 1 in (tagsPath as Unicode text) as "XPress tags"
end tell

delay 1

end tell

-- Suchen und Ersetzen in Text File
set aString to read file tagsPath

repeat with i from 1 to count of searchList
set sStr to item i of searchList
set rStr to item i of replaceList
set aString to my searchReplace(sStr, rStr, aString)
end repeat

try
open for access file tagsPath with write permission
set eof of file tagsPath to 0
write aString to file tagsPath
close access file tagsPath
on error
close access file tagsPath
end try

tell document 1

-- Text wieder in Box laden
tell current box
set story 1 to alias tagsPath
end tell

end tell
end tell

-- Suchen und Ersetzen Funktion
on searchReplace(s, r, t)
set AppleScript's text item delimiters to (s)
set aList to (every text item of t)
set AppleScript's text item delimiters to (r)
set t to aList as string
set AppleScript's text item delimiters to ""
return t
end searchReplace



als Antwort auf: [#540136]

QuarkXPress 9 - Zeichenstil entfernen

Hans Haesler
  
Beiträge gesamt: 5826

1. Jun 2015, 11:22
Beitrag # 12 von 17
Beitrag ID: #540152
Bewertung:
(4395 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

weil das Forum nicht erreichbar war, hatte ich Dir privat durchgegeben, dass das Script im Beitrag #9 nicht brauchbar ist, weil es lokale Formatierungen entfernt.

Zu Deinem neuen Versuch ist zu sagen, dass das Einlesen und Wieder-in-die-Datei-Schreiben ausserhalb des tell-Quark-Blocks gemacht werden muss:

Code
-- Suchen und Ersetzen in Tagged Text 

global aString
global tagsPath

tell application "QuarkXPress"
activate

-- File auf dem Schreibtisch
set tagsPath to ((path to desktop) as string) & "tagText.xtg"

-- Was soll ersetzt werden
set searchList to {"@MDB_Headline:<@>", "@MDB_Beschreibung:<@>", "@MDB_Artikel_Bezeichnung:<@>"}
set replaceList to {"@MDB_Headline:", "@MDB_Beschreibung:", "@MDB_Artikel_Bezeichnung:"}

set convert quotes to true
set import styles to true
tell document 1

-- in Tagged Text speichern
tell current box
save story 1 in tagsPath as "XPress tags"
end tell

my readFile()

-- Suchen und Ersetzen in Text File
repeat with i from 1 to count of searchList
set sStr to item i of searchList
set rStr to item i of replaceList
set aString to my searchReplace(sStr, rStr, aString)
log aString
end repeat

-- in die Datei schreiben
my writeFile(aString)

-- Text wieder in Box laden
tell current box
set story 1 to alias tagsPath
end tell

end tell
end tell

on readFile()
set aString to read file tagsPath
end readFile

-- Suchen und Ersetzen Funktion
on searchReplace(s, r, t)
set AppleScript's text item delimiters to (s)
set aList to (every text item of t) as list
set AppleScript's text item delimiters to (r)
set t to aList as string
set AppleScript's text item delimiters to ""
return t
end searchReplace

on writeFile(aString)
try
open for access file tagsPath with write permission
set eof of file tagsPath to 0
write aString to file tagsPath
close access file tagsPath
on error
close access file tagsPath
end try
end writeFile

Jetzt wird die Datei bearbeitet. Aber es wird keine Ersetzung vorgenommen.
Ein Versuch mit dem Ersetzen durch die Satimage.osax scheitert ebenfalls.
Aber in einem kleinen Testscript innerhalb des Script-Editors klappt es mit Satimage ...

Gleich muss ich weg und werde voraussichtlich erst abends weiterforschen können.

Gruss, Hans


als Antwort auf: [#540148]

QuarkXPress 9 - Zeichenstil entfernen

Andreas78m
Beiträge gesamt: 33

1. Jun 2015, 11:40
Beitrag # 13 von 17
Beitrag ID: #540155
Bewertung:
(4379 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo auch,

werde mal weiter forschen in der Zwischenzeit, meine Vermutung ist das er mit den spitzen Klammern und @-Zeichen nicht so recht klar kommt.

Wobei ich auch mal versucht hab einfachere Texte zu ersetzen und dabei trotzdem kein Tausch der Inhalte passierte.

Auch das raus nehmen des Codes von XPress in den Finder hat leider kein Erfolg gebracht. Als ob im String nichts getauscht werden dürfte... denn die Suchen und Ersetzen Variablen werden richtig gefüllt.

Beste Grüße,
Andreas


als Antwort auf: [#540152]
(Dieser Beitrag wurde von Andreas78m am 1. Jun 2015, 11:41 geändert)

QuarkXPress 9 - Zeichenstil entfernen

Hans Haesler
  
Beiträge gesamt: 5826

1. Jun 2015, 12:03
Beitrag # 14 von 17
Beitrag ID: #540162
Bewertung:
(4363 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Andreas,

die spitzigen Klammern und das @-Zeichen werden mit Satimage problemlos entfernt. Aber eben nur im Script-Editor-Fenster.

Deshalb vermute ich, dass das Format der ".xtg"-Datei einen Einfluss hat.

Jetzt bin ich unterwegs, werde erst später diese Spur verfolgen können.

Gruss, Hans


als Antwort auf: [#540155]

QuarkXPress 9 - Zeichenstil entfernen

Andreas78m
Beiträge gesamt: 33

1. Jun 2015, 12:09
Beitrag # 15 von 17
Beitrag ID: #540164
Bewertung:
(4355 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

habe gerade was raus bekommen.

Scheinbar hat es was mit der Formatierung (Unicode) der Text Datei und dem Suchbefehlen zu tun. Versuche gerade die Stellen zu finden, wo das alles eingestellt werden muss.

Damit der Suchbefehl als auch der Text zum drin suchen übereinstimmt. Da es ja doch einige Sonderzeichen sind. Ein Teil (ohne Sonderzeichen) funktioniert nun auch, aber leider noch nicht alles.

Sobald es komplett funktioniert, poste ich den Code.

Beste Grüße,
Andreas


als Antwort auf: [#540162]
X