Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

QuarkXPress mal wieder
Gehe zu Seite Zurück  1, 2, 3
 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 17.09.2002 - 11:47    Titel: QuarkXPress mal wieder Antworten mit Zitat

Moin,

ich möchte eigentlich nicht das gesamte Script (Zeilenabstände, Absatzstilvorlagen etc. kenne ich zur Genüge Smile - 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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Pesse
•-->
•-->


Anmeldedatum: 10.09.2002
Beiträge: 84

BeitragVerfasst am: 17.09.2002 - 11:49    Titel: QuarkXPress mal wieder Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 17.09.2002 - 11:54    Titel: QuarkXPress mal wieder Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Pesse
•-->
•-->


Anmeldedatum: 10.09.2002
Beiträge: 84

BeitragVerfasst am: 17.09.2002 - 12:04    Titel: QuarkXPress mal wieder Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Pesse
•-->
•-->


Anmeldedatum: 10.09.2002
Beiträge: 84

BeitragVerfasst am: 17.09.2002 - 12:06    Titel: QuarkXPress mal wieder Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 17.09.2002 - 12:30    Titel: QuarkXPress mal wieder Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Ronny
•-->
•-->


Anmeldedatum: 06.06.2002
Beiträge: 108
Wohnort: Plötz

BeitragVerfasst am: 17.09.2002 - 12:47    Titel: QuarkXPress mal wieder Antworten mit Zitat

Hy,
Ok es sei dir verziehen, dass du ne Weile gebraucht hast. Smile
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Pesse
•-->
•-->


Anmeldedatum: 10.09.2002
Beiträge: 84

BeitragVerfasst am: 17.09.2002 - 14:50    Titel: QuarkXPress mal wieder Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 17.09.2002 - 15:52    Titel: QuarkXPress mal wieder Antworten mit Zitat

Sorry, wollte Deine Arbeit nicht abwerten! Als Scripter kann ich Deinen Stolz nicht nur nachvollziehen, ich kenne das Gefühl selbst sehr gut Smile
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 Smile
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite Zurück  1, 2, 3
Seite 3 von 3

 
Gehe zu:  
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


AppleScript für absolute Starter