[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Anpassen der Höhe einer Bildbox

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Anpassen der Höhe einer Bildbox

-hans-
Beiträge gesamt: 748

16. Dez 2010, 16:49
Beitrag # 1 von 5
Bewertung:
(5172 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

ich habe folgende AS-Zeilen geschrieben die der Anpassung eines ausgewählten Bildrahmens an die Versalhoehe eines Buchstabens für die Oberkante und den Abstand zur BU für die Unterkante dienen. Ausgehend davon, dass der Bildrahmen oben und unten auf dem Grundlinienraster liegt ...

Vllt. kann ja jemand etwas damit anfangen :)

Mein Anliegen ist allerdings, dass ich es auch noch für ID CS4 und in JavaScript bräuchte ... Blush

Zudem hätte ich hier auch noch ein fertiges Script liegen, dass ein- und mehrspaltige Textrahmen sowie dazugehörige definierte (Objekte sind im Bibliothekselement gelabelt) Spaltenlininien und definierte Rahmen (+Teilrahmen) im registerhaltigen Satz der Textmenge entsprechend mitwachsen lässt ... aber das traue ich mich – wohl zu recht (!¿) – wirklich nicht zu posten ;-)

Code
tell application "Adobe InDesign CS2" 
tell front document

if horizontal measurement units of view preferences is not millimeters or ¬
vertical measurement units of view preferences is not millimeters then
set actualViewPrefs to properties of view preferences
set horizontal measurement units of view preferences to millimeters
set vertical measurement units of view preferences to millimeters
set resetUnits to true
else
set resetUnits to false
end if

try
set PicBox to item 1 of selection
set {y1, x1, y2, x2} to visible bounds of PicBox
set visible bounds of PicBox to {y1 + 1.25, x1, y2 - 1.5, x2}
end try

if resetUnits is true then
set properties of view preferences to actualViewPrefs
end if


end tell
end tell

X

Anpassen der Höhe einer Bildbox

Hans Haesler
  
Beiträge gesamt: 5826

16. Dez 2010, 17:25
Beitrag # 2 von 5
Beitrag ID: #459834
Bewertung:
(5163 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans-Gerd,

ein solches JavaScript für CS4? Das ist schon seit langem bereit :-)

http://indesign.hilfdirselbst.ch/...taben-alinieren.html

Gruss, Hans


als Antwort auf: [#459831]

Anpassen der Höhe einer Bildbox

-hans-
Beiträge gesamt: 748

16. Dez 2010, 21:29
Beitrag # 3 von 5
Beitrag ID: #459851
Bewertung:
(5126 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

vielen Dank fuer Deine Hilfe (leider bin ich ja kein Member ;-) ) und den darin enthaltenen Link zur Ursprungdiskussion. Ich habe mir jetzt etwas gebastelt, dass (inklusive Repeatscheife) auch funktioniert. Die measurement units kann ich ruhig vernachlässigen, da diese eh Serverseitig auf mm gesetzt werden ...

Jetzt kann ich schon ein bisschen JavaScript ;-)
Code
var theFrames = app.selection; 
var countofSelection = theFrames.length;

var theBox; //Variable fuer die einzelnen Objekte des arrays picBoxes

//Repeat-Schleife: Abarbeiten der items + Uebergabe an Handler
for (var i=0; i<countofSelection; i++) {
theBox = theFrames[i]; //item i of ...
setBounds(theBox); //Aufruf Handler
}

//Handler: alte G-Bounds lesen und neue G-Bounds setzen
function setBounds(theBox) {
var theSpaceTop = 1.25; // zu y1 hinzu addieren
var theSpaceBottom = 1.5; // von y2 subtrahieren
var theBounds = theBox.geometricBounds;
theBox.geometricBounds = [theBounds[0]+ theSpaceTop, theBounds[1] , theBounds[2]- theSpaceBottom, theBounds[3]]
}


... für das zweite AS-Script welches ,wie im ersten Posting beschrieben, gelabelte Artikelelemente (Elemente einer Auswahl) in Ihrer Größe gemäß Textmenge anpasst reichen meine bescheidenen JS-Kenntnisse leider noch nicht, aber vllt. hat ja jemand anderes noch Verwendung dafür ... ;-)

Eine Beispieldatei zur Funktionsweise reiche ich gerne nach.

Script funktioniert mind. bis CS3:
Code
(* 
Größenanpassung von ein- und mehrspaltigen Textrahmen plus zur Auswahl gehöriger definierter, größenvariabler Elemente.
• Elemente müssen gelabelt sein: Text, Rahmen, Linie
• Benötigt die Satimage-Osax

• Textfluss über mehere Textboxen ist nicht inbegriffen
*)


property grid : 3.573 --Schrittweite Grundlinienraster

tell application "InDesign CS"
tell front document
try

set TextItems to every item of selection whose label is "Text" --größenvariable Textboxen der Auswahl laden

set yMaxList to {} --sammelt alle y2-werte

repeat with i from 1 to count of TextItems --Schleife durch diese Artikel

tell item i of TextItems
--ggf. Untersatz
if overflows is false then
set columnCount to text column count of text frame preferences --Anzahl der Spalten feststellen
set lineCounter to count lines --Zeilen zählen
set linesinColumn to (round lineCounter / columnCount rounding up) --Quotient Zeilen / Kolumnen
set {y1, x1, y2, x2} to visible bounds -- bounds der textbox
set y2 to y1 + linesinColumn * grid -- setzen von y2
set visible bounds to {y1, x1, y2, x2} --setzen von neuen bounds
set end of yMaxList to y2
end if

--bei Übersatz (ggf. ist Übersatz auch durch overflow is false entstanden ...):
if overflows is true then
repeat --neue Schleife bis overflow = false
set {y1, x1, y2, x2} to visible bounds
set visible bounds to {y1, x1, y2 + grid, x2}

if overflows is false then
set {y1, x1, y2, x2} to visible bounds
set end of yMaxList to y2
exit repeat
end if
end repeat
end if

end tell
end repeat

set maxY2 to last item of (sortlist yMaxList comparison 2) --Höchstwert y2 aus Übersatzschleife (Satimage.OSax)


--- Rahmen und Linien anpassen
set ArticleItems to (every item of selection whose label is in {"Rahmen", "Linie"}) --größenvariable Elemente des Artikels erfassen
my fitarticle(ArticleItems, maxY2) --Aufruf Funktion Größenanpassung Elemente

end try
end tell
end tell

-- Funktion Rahmen und Linien
on fitarticle(toFit, NewY2)
tell application "InDesign CS"
tell document 1
repeat with j from 1 to count of toFit
tell item j of toFit
set {y1, x1, y2, x2} to visible bounds
if label is "Rahmen" then
set visible bounds to {y1, x1, NewY2 + grid, x2} -- für Rahmen = größter textrahmen + 1 Zeile
else
set visible bounds to {y1, x1, NewY2, x2} --für Linien Y2 = Y2 von größter textbox

end if
end tell
end repeat
end tell
end tell
end fitarticle


Gruß

Hans


als Antwort auf: [#459834]

Anpassen der Höhe einer Bildbox

Hans Haesler
  
Beiträge gesamt: 5826

17. Dez 2010, 08:12
Beitrag # 4 von 5
Beitrag ID: #459869
Bewertung:
(5095 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans-Gerd,

Antwort auf: (leider bin ich ja kein Member ;-) )

Das kann leicht geändert werden: http://hilfdirselbst.org/...amp;read_category=31

Gruss, Hans


als Antwort auf: [#459851]

Anpassen der Höhe einer Bildbox

-hans-
Beiträge gesamt: 748

17. Dez 2010, 12:10
Beitrag # 5 von 5
Beitrag ID: #459913
Bewertung:
(5071 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Hans,

na, die Antwort hab' ich mir wohl gefragt ;-)

Schönes Wochenende

Hans-Gerd


als Antwort auf: [#459869]
X