Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 17.09.2002 - 11:47 Titel: QuarkXPress mal wieder |
|
|
Moin,
ich möchte eigentlich nicht das gesamte Script (Zeilenabstände, Absatzstilvorlagen etc. kenne ich zur Genüge - ich würde nur gerne mal den entscheidenden Kniff sehen, um gruppierte Rahmen via AppleScript zu skalieren - das sollte doch als 5-10 Zeiler möglich sein?
Gruß,
Folker
PS: Befehl-Option-Shift funktioniert zumindest im 3.3.2r5 nicht um gruppierte Elemente zu skalieren - das scheint tatsächlich im 4er eine Neuerung zu sein. Oder ist dort eine Xtension mit beteiligt, fragt sich Folker?
(Geändert von Folker um 11:51 Uhr am 17 Sep. 2002) _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 17.09.2002 - 11:49 Titel: QuarkXPress mal wieder |
|
|
Nein, weil es etwas komplizierter ist. Es gibt keinen Befehl für die Skaliierung, deshalb muss man ja auch jede Box neuberechnen. Das geht bei Picture Boxes sehr gut, bei Text Boxes ist es aber eine Schweinearbeit. Ich bin aber gleich fertig, ne Viertelstunde vielleicht noch, dann hab ich's.
Gruß Pesse _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 17.09.2002 - 11:54 Titel: QuarkXPress mal wieder |
|
|
Ja, aber wenn ich das richtig verstehe, ist es genau der Weg, welchen ich ziemlich am Anfang dieses Mega-Threads (zumindest noch 1. Seite;)) vorgeschlagen habe - die an der Gruppierung beteiligten Rahmen ermitteln und dann "über die Dörfer" einzeln zu berechnen Ö Und ich hatte gehofft, Du hättest wirklich eine Möglichkeit gefunden, eine Gruppierung innerhalb einer (2?) Script-Zeilen zu skalieren *einwenigenttäuscht*
Gruß,
Folker
(Geändert von Folker um 11:58 Uhr am 17 Sep. 2002) _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 17.09.2002 - 12:04 Titel: QuarkXPress mal wieder |
|
|
Nein, das ist unmöglich! Ich habe nun das realisiert, was in Quark passiert, wenn man mit gedrückter Shift-Alt-Apple Taste den Gruppenrahmen verändert.
Da aber Quark keine Group-Boxes hat, und diese funktion nicht einmal in den Menüs auftaucht, muss man diese etwas umständliche Art und weise verwenden.
Bei Bildern ist der Code relativ kurz (vielleicht 10 Zeilen), bei Text dagegen sehr groß!
Naja, ich werd ihn gleich mal posten.
Vielleicht findet ihr ja doch noch was, was ihr nicht gewusst habt ;o)
Gruß Pesse _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 17.09.2002 - 12:06 Titel: QuarkXPress mal wieder |
|
|
property ThumbWidth : 2
tell application "QuarkXPress Passportô 4.1 [k]"
tell document 1
set PictBoxes to {}
set PictBoxes to index of every picture box whose selected = true
set TextBoxes to {}
set TextBoxes to index of every text box whose selected = true
set theData to {}
try
repeat with i in TextBoxes
set textBounds to bounds of text box index i as list
set textWidth to (((item 4 of textBounds) as real) - ((item 2 of textBounds) as real))
set textHeight to (((item 3 of textBounds) as real) - ((item 1 of textBounds) as real))
set theParas to count paragraphs of text box index i
set k to 0
set theParaData to {}
set theTextData to {}
repeat
set k to k + 1
if k > theParas then exit repeat
set theLeading to leading of paragraph k of text box index i
set theSize to size of paragraph k of text of text box index i
set theParaData to theParaData & theLeading
set theTextData to theTextData & theSize
end repeat
set theData to theData & {{textWidth, textHeight, theTextData, theParaData}} as list
end repeat
on error
set i to TextBoxes as integer
set textBounds to bounds of text box index i as list
set textWidth to (((item 4 of textBounds) as real) - ((item 2 of textBounds) as real))
set textHeight to (((item 3 of textBounds) as real) - ((item 1 of textBounds) as real))
set theParas to count paragraphs of text box index i
set k to 0
set theParaData to {}
set theTextData to {}
repeat
set k to k + 1
if k > theParas then exit repeat
set theLeading to leading of paragraph k of text box index i
set theSize to size of paragraph k of text of text box index i
set theParaData to theParaData & theLeading
set theTextData to theTextData & theSize
end repeat
set theData to theData & {textWidth, textHeight, theTextData, theParaData} as list
end try
set thisBox to current box
set theOldBounds to get bounds of selection as list
set oldBoundWidth to (item 4 of theOldBounds as real) - (item 2 of theOldBounds as real)
set oldBoundHeight to (item 3 of theOldBounds as real) - (item 1 of theOldBounds as real)
set BoundPercent to 100 / oldBoundWidth * ThumbWidth
set ThumbHeight to oldBoundHeight / 100 * BoundPercent
set newBounds to {1, 9, (ThumbHeight + 1), (ThumbWidth + 9)}
set bounds of selection to (newBounds as measurements rectangle)
repeat with i in PictBoxes
set bounds of image 1 of picture box index i to proportional fit
end repeat
(*try
repeat with i in TextBoxes
display dialog "Text " & i
set bounds of text box index i to proportional fit
end repeat
on error*)
try
if exists item 1 of theData then
repeat with j in theData
set textWidth to item 1 of j
set textHeight to item 2 of j
set textBounds to bounds of text box index i as list
set theNewWidth to (((item 4 of textBounds) as real) - ((item 2 of textBounds) as real))
set theNewHeight to (((item 3 of textBounds) as real) - ((item 1 of textBounds) as real))
set WidthPercent to (100 / textWidth) * (theNewWidth as real)
set HeightPercent to (100 / textHeight) * (theNewHeight as real)
set thePercent to (WidthPercent + HeightPercent) / 2
set k to 0
repeat
set k to k + 1
if k > theParas then exit repeat
set newLeading to ((item k of item 4 of j) as real) / 100 * thePercent
set leading of paragraph k of text box index i to newLeading
set newTextSize to ((item k of item 3 of j) as real) / 100 * thePercent
set size of paragraph k of text box index i to newTextSize
end repeat
end repeat
else
error
end if
on error
set i to TextBoxes as integer
set textBounds to bounds of text box index i as list
set theNewWidth to (((item 4 of textBounds) as real) - ((item 2 of textBounds) as real))
set theNewHeight to (((item 3 of textBounds) as real) - ((item 1 of textBounds) as real))
set WidthPercent to (100 / textWidth) * (theNewWidth as real)
set HeightPercent to (100 / textHeight) * (theNewHeight as real)
set thePercent to (WidthPercent + HeightPercent) / 2
set k to 0
repeat
set k to k + 1
if k > theParas then exit repeat
set newLeading to ((item k of item 4 of theData) as real) / 100 * thePercent
set leading of paragraph k of text box index i to newLeading
set newTextSize to ((item k of item 3 of theData) as real) / 100 * thePercent
set size of paragraph k of text box index i to newTextSize
end repeat
end try
end tell
end tell _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 17.09.2002 - 12:30 Titel: QuarkXPress mal wieder |
|
|
Ok, die Zeile die Indices der beteiligten boxes herauszulösen ist pfiffig, ansonsten läuft es aber auf die Lösung der einzeln zu berechnenden boxes hinaus Ö Das ist nicht neu, ich erspare mir die Indices via Namensgebung der boxes (bei Dir nicht möglich, ich weiß) - das ist eben die Vorarbeit von 5 Jahren database-publishing (via AppleScript)Ö
Hauptgrund für mich von den Indices die Finger zu lassen ist es, dass ab und an neue Anforderungen eingebaut werden müssen. Dazu gehört des öfteren div. neue boxes via Script zu erzeugen - die Indices müssen in dem Fall neu ermittelt werden, was bei Scripten mit div. loaded Scripts relativ unübersichtlich und fehlerbehaftet sein kann - bei Docs mit mehreren 100-Seiten will das auch keiner wirklich überprüfen ;)
Ach, äh - das :"Ö [k]" ist unter anderem der Grund für mich kein 4er einzusetzen ;)
Gruß,
Folker
(Geändert von Folker um 12:39 Uhr am 17 Sep. 2002) _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Ronny •-->

Anmeldedatum: 06.06.2002 Beiträge: 108 Wohnort: Plötz
|
Verfasst am: 17.09.2002 - 12:47 Titel: QuarkXPress mal wieder |
|
|
Hy,
Ok es sei dir verziehen, dass du ne Weile gebraucht hast.
Ist wirklich nicht schlecht die Lösung. Bist also doch nicht wie schon gesagt um die einzelnen Berechnungen herum gekommen.
@Folker,
ich kenne das auch, dass es ein riesen Aufwand ist, wenn man die Indices neu ermitteln muss.
Gruß Ronny |
|
Nach oben |
|
 |
Pesse •-->


Anmeldedatum: 10.09.2002 Beiträge: 84
|
Verfasst am: 17.09.2002 - 14:50 Titel: QuarkXPress mal wieder |
|
|
Nein, ich bin allerdings nicht drum rumgekommen, aber ich denke, diese Lösung ist ein recht gutes Beispielscript, weil wirklich so gut wie alles einberechnet ist!
Es hat mich im Endeffekt auch Stunden an Entwicklung gekostet, und deshalb bin ich doch etwas stolz darauf ;o)
Das Script kann mit so gut wie jedem gruppierten Bild umgehen und deshalb muss ich es über die Indices steuern. Kompatibilität halt. Ich hätts auch wesentlich lieber über Namen gemacht, aber es ging leider nicht.
Vielleicht hilft es dem einten oder anderen mal, der so etwas auch braucht. Ist nämlich echt Sch**e _________________ <>< Think logical! ><> |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 17.09.2002 - 15:52 Titel: QuarkXPress mal wieder |
|
|
Sorry, wollte Deine Arbeit nicht abwerten! Als Scripter kann ich Deinen Stolz nicht nur nachvollziehen, ich kenne das Gefühl selbst sehr gut
Ich habe da vielleicht ein kleines Problem mich in die von Dir benötigte Materie hineinzudenken. Mein Ansatz ist folgender. Die von Dir Assets genannten "Bausteine" lagern bei mir als Datensätze in FMP Dateien. Diese "Bausteine" werden erst zur Laufzeit generiert und dann natürlich bequem mit Namen versehen. Je länger mit diesem Ansatz gearbeitet wird, desto kürzer werden die Vorentwicklungszeiten für neue Druckvorlagen, man kann wunderbar anfangen bei sich selbst zu "klauen".
Die AppleScripte werden bei mir in möglichst kleine Einheiten (einzelne Handler) aufgesplittet. Diese sind in Script-Libraries eingebunden. Via load script Command ist eine relativ schnelle Entwicklung neuer Programmabläufe möglich. Beispiel: Property-lists werden als Variable geliefert (Werte aus DB's) - es genügt für alle Gegebenheiten 1 Handler um text boxes zu erzeugen. Da wir viel mit Katalogen mit sehr ähnlich aufgebauten Seiten arbeiten, genügt es Musterseiten zu erzeugen - via
property the_lastp : 0 -- bei Start/oder/Ende auf 0 setzen!
--Ö
on makePage_RS_LS(DerSpread, the_Doc)
tell application "QuarkXPressô"
tell document the_Doc
if (my the_lastp = 0) then
set p to a reference to page 1
else
if ((my the_lastp) mod 2 = 0) then
set p to make page at end
else
set s to make new spread at end
set p to a reference to page 1 of s
end if
end if
end tell
set my the_lastp to ((my the_lastp) + 1)
set master spread of p to spread DerSpread of master document the_Doc
show p
end tell
return p
end makePage_RS_LS
lassen sich bequem Seiten erzeugen. p stellt eine prima Referenz für weitere Manipulationen dieser Seite p dar ('tell p to Ö') usw.
Gruß,
Folker
PS: Die Zeilenabstände habe ich auch noch gut im Kopf - für einen Veranstaltungskalender (3-Spaltig, Fließtext) habe ich mal eine Möglichkeit programmiert, anhand der vorgegebenen Stilvorlagen und der Textteile (Zeit, Titel, Text, Ort etc.) in einer Datenbank die voraussichtliche Seitenzahl zu errechnen - das war auch ein nahezu blödsinniger Aufwand, allerdings war die Verblüffung bei den anderen Beteiligten groß, als ich die Seitenzahl bis auf 1/2 Seite auf 30 Seiten vorhersagen konnte bevor die Daten überhaupt bei uns im Hause waren  _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2002 phpBB Group Deutsche Übersetzung von phpBB.de
|
|
|