[GastForen Programme Print/Bildbearbeitung Adobe InDesign Tabellenbreite proportional skalieren

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

Tabellenbreite proportional skalieren

Gerald Singelmann
  
Beiträge gesamt: 6269

11. Sep 2007, 19:13
Beitrag # 1 von 11
Bewertung:
(86846 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Script habe ich grade für eine (eigentlich unsympatische) Anfrage im englischen Forum erstellt.
War eh halb fertig ;)
Ich, nicht das Script.
Das war dreiviertelfertig.
Jetzt ist es ganz fertig.

Also dachte ich, hier hat vielleicht auch einer Freude daran:
Es rechnet die Breite einer Tabelle aus (ohne Konturen am Rand) und zeigt diese in einem Dialog an, so dass ich eine neue Breite eingeben kann. Alle Spalten werden dann proportional verbreitert oder -schmälert, um die neue Breite zu erreichen.

Code
tell application "Adobe InDesign CS3" 
set ms to selection
set aTable to parent of item 1 of ms
if class of aTable ? table then
set aTable to parent of aTable
if class of aTable ? table then
display dialog "no table selected"
return
end if
end if

set nC to count columns in aTable
set tWidth to 0.0
repeat with n from 1 to nC
set aWidth to (width of (column n of aTable))
set tWidth to tWidth + aWidth
end repeat

set myDialog to make dialog with properties {name:"Set Width of Table"}
tell myDialog
make dialog column
tell the result
set tNuWidth to make measurement editbox with properties {edit value:(tWidth * 2.83465), edit units:millimeters}
end tell
end tell
set nu to show myDialog
if nu is true then
set nuWidth to (edit value of tNuWidth) * 0.35278
set scaleClm to nuWidth / tWidth
repeat with n from 1 to nC
set aWidth to (width of (column n of aTable))
set width of column n of aTable to (scaleClm * aWidth)
end repeat
else
destroy myDialog
return
end if
end tell

X

Tabellenbreite proportional skalieren

pixxxelschubser
Beiträge gesamt: 1708

11. Sep 2007, 19:35
Beitrag # 2 von 11
Beitrag ID: #312041
Bewertung:
(86778 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

jedesmal, wenn ich Deine netten Apple-Scripte sehe, bin ich fast versucht, Dir einen PC zu schenken.

Wink

P.S. Könntest Du nicht ein Übersetzungsscript von Apple- nach Java-Script schreiben?
Ich glaube, damit würdest Du hier einige Leute überglücklich machen.

(ist nicht ganz ernst gemeint)


als Antwort auf: [#312034]

Tabellenbreite proportional skalieren

Gerald Singelmann
  
Beiträge gesamt: 6269

11. Sep 2007, 19:57
Beitrag # 3 von 11
Beitrag ID: #312052
Bewertung:
(86766 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ok, ich hab Martin eh versprochen, irgendwann mal JavaScript zu lernen...

Code
bGoOn = true; 
aTable = app.selection[0];
if (aTable.constructor.name != "Table") {
aTable = aTable.parent;
if (aTable.constructor.name != "Table") {
aTable = aTable.parent;
if (aTable.constructor.name != "Table") {
alert("Es muss ein Text in einer Zelle markiert sein");
bGoOn = false;
}
}
}
if (bGoOn) {
nc = aTable.columns.length;
tWidth = 0.0;
for (n=0; n < nc; n++) {
tWidth += aTable.columns[n].width;
}
var myDialog = app.dialogs.add({name:"Tabellenbreite"});
with(myDialog.dialogColumns.add()){
var nuWidthField = measurementEditboxes.add({editValue:(2.83465 * tWidth), editUnits:MeasurementUnits.millimeters, smallNudge:0.5});
}
var myResult = myDialog.show();
if(myResult == true){
var nuWidth = nuWidthField.editValue * 0.35278;
myDialog.destroy();
scaleClm = nuWidth / tWidth;
for (n=0; n < nc; n++) {
aTable.columns[n].width = scaleClm * aTable.columns[n].width;
}
}
else{
myDialog.destroy();
}
}



als Antwort auf: [#312041]

Tabellenbreite proportional skalieren

pixxxelschubser
Beiträge gesamt: 1708

11. Sep 2007, 20:13
Beitrag # 4 von 11
Beitrag ID: #312057
Bewertung:
(86756 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Na wenn Du es versprochen hast …

Hab ichs dafür gleich mal ausprobiert, und läuft sauber durch.
(auf CS2 getestet)
Smile

Kannst Du mir bitte nur eins kurz erklären, ohne dass ich die Referenzen durchwühlen muß: Wann wird die Datei als js und wann als jsx bezeichnet?


als Antwort auf: [#312041]

Tabellenbreite proportional skalieren

Gerald Singelmann
  
Beiträge gesamt: 6269

11. Sep 2007, 20:15
Beitrag # 5 von 11
Beitrag ID: #312058
Bewertung:
(86755 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
jsx wurde mit CS2 eingeführt, um klar zu machen, dass es sich nicht um ein Kraut-und-Rüben-Internet JavaScript handelt, sondern der aufgebohrten InDesign Geschmacksrichtung zugehört.


als Antwort auf: [#312057]

Tabellenbreite proportional skalieren

Martin Fischer
  
Beiträge gesamt: 12783

11. Sep 2007, 20:23
Beitrag # 6 von 11
Beitrag ID: #312060
Bewertung:
(86752 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Lieber Gerald,

> Ok, ich hab Martin eh versprochen, irgendwann mal JavaScript zu lernen...

Jetzt bin ich sprachlos.
Wie schaffst Du das bloß neben all den anderen Dingen, die Dich gerade beschäftigen?
Oder integrierst Du heimlich? ;-)


als Antwort auf: [#312052]

Tabellenbreite proportional skalieren

Gerald Singelmann
  
Beiträge gesamt: 6269

11. Sep 2007, 20:35
Beitrag # 7 von 11
Beitrag ID: #312062
Bewertung:
(86743 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Zitat Wie schaffst Du das bloß neben all den anderen Dingen, die Dich gerade beschäftigen?


Gerade deswegen ging das. Der größte Bonuspunkt an dem Kapitel für mich ist, das klar wird, wie parallel die Konzepte in AppleScript und JavaScript laufen. Kannste das eine, kannste auch das andere, sobaldste dich an die Syntax gewöhnt hast.
Von Ausnahmen (zb. split / join vs. AppleScript's text item delimiters (wer hat sich bloss den namen ausgedacht?)) mal abgesehen.


als Antwort auf: [#312060]

Tabellenbreite proportional skalieren

EssWeh
Beiträge gesamt: 532

12. Sep 2007, 11:34
Beitrag # 8 von 11
Beitrag ID: #312129
Bewertung:
(86678 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Geil!
Also - das Script ...!

Und Freude macht es auch. ; - P


als Antwort auf: [#312062]
(Dieser Beitrag wurde von EssWeh am 12. Sep 2007, 11:41 geändert)

Tabellenbreite proportional skalieren

Martin Fischer
  
Beiträge gesamt: 12783

17. Sep 2007, 09:25
Beitrag # 9 von 11
Beitrag ID: #312803
Bewertung:
(86621 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

aus aktuellem Anlaß (weil ich's grad selbst so brauche), habe ich in Deinem Skript eine kleine Modifikation gemacht:

Wenn die Tabelle in einem Textrahmen platziert ist, wird im Dialogfeld die Breite des Textrahmens als Ziel für die Gesamtbreite der Tabelle vorgeschlagen.

Andernfalls (z.B. wenn die Tabelle in einer Tabellenzelle platziert ist) wird weiterhin, wie in Deinem Skript, die aktuelle Tabellenbreite eingeblendet.

Code
bGoOn = true; 
aTable = app.selection[0];
if (aTable.constructor.name != "Table") {
aTable = aTable.parent;
if (aTable.constructor.name != "Table") {
aTable = aTable.parent;
if (aTable.constructor.name != "Table") {
alert("Es muss ein Text in einer Zelle markiert sein");
bGoOn = false;
}
}
}
if (bGoOn) {
nc = aTable.columns.length;
tWidth = 0.0;
for (n=0; n < nc; n++) {
tWidth += aTable.columns[n].width;
}
// die Tabelle befindet sich in einem Textrahmen
if (aTable.parent.constructor.name == "TextFrame") {
tfBounds = aTable.parent.geometricBounds;
// vorgeschlagener Wert für die Gesamtbreite der Tabelle = Breite des Textrahmens
myValue = tfBounds[3] - tfBounds[1];
}
else {
// vorgeschlagener Wert für die Gesamtbreite der Tabelle = aktuelle Tabellenbreite
myValue = tWidth;
}
var myDialog = app.dialogs.add({name:"Tabellenbreite"});
with(myDialog.dialogColumns.add()){
var nuWidthField = measurementEditboxes.add({editValue:(2.83465 * myValue), editUnits:MeasurementUnits.millimeters, smallNudge:0.5});
}

var myResult = myDialog.show();
if(myResult == true){
var nuWidth = nuWidthField.editValue * 0.35278;
myDialog.destroy();
scaleClm = nuWidth / tWidth;
for (n=0; n < nc; n++) {
aTable.columns[n].width = scaleClm * aTable.columns[n].width;
}
}
else{
myDialog.destroy();
}
}



als Antwort auf: [#312052]

Tabellenbreite proportional skalieren

irbis
Beiträge gesamt: 30

17. Mär 2011, 15:57
Beitrag # 10 von 11
Beitrag ID: #467227
Bewertung:
(79367 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,
das Skript läuft super (CS3)! Ich suche eine Möglichkeit, auf dieser Basis ALLE Tabellen in einem Fließtext auf eine vorher definierte Breite (die auch ohne Auswahldialog fest im Skript hinterlegt sein könnte) einheitlich proportional zu skalieren. Wenn es einfacher ist, könnte die Breite für die Tabellen auch die Breite des Fließtextrahmens sein. Wie müsste euer Skript dann erweitert werden?

Für eure Antwort und Hilfe vorab vielen Dank!
Irbis


als Antwort auf: [#312034]

Tabellenbreite proportional skalieren

irbis
Beiträge gesamt: 30

23. Apr 2012, 12:41
Beitrag # 11 von 11
Beitrag ID: #493879
Bewertung:
(77380 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen,

hat niemand 'ne Idee, wie das hier diskutierte Skript auf sämtliche in einem Textabschnitt enthaltene Tabellen angewendet werden könnte...?

Danke vorab!
Irbis


als Antwort auf: [#312052]
X

Veranstaltungskalender

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch wie z.B. Adobe InDesign, Photoshop, Illustrator, PDF, Pitstop, Affinity, Marketing, SEO, Büro- und Rechtsthemen etc. haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen.

pdf-icon Hier eine kleine Anleitung hinsichtlich Bedeutung der auszufüllenden Formularfelder.

Veranstaltungen
14.05.2024

Online
Dienstag, 14. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Prozessoptimierung ist ein Teamsport! Keine Software und keine Maschine allein kann Ihnen helfen, die Effizienzpotenziale Ihres Betriebes maximal auszuschöpfen. Von der Auftragsannahme über die Vorstufe und den Druck bis hin zur Weiterverarbeitung – alles muss optimal ineinandergreifen. Apropos Weiterverarbeitung – in vielen Druckbetrieben fristet sie in Sachen Prozessoptimierung immer noch ein Schattendasein. Dabei liegen hier mittlerweile die größten Einsparpotenziale! In einem Webinar von Horizon und Impressed erfahren Sie, wie Sie diese Einsparungen realisieren können. Horizon, bekannt für innovative Lösungen in der Druckweiterverarbeitung, bietet mit iCE LiNK eine Workflowlösung für die Weiterverarbeitung. iCE LiNK überwacht, visualisiert und analysiert Produktionsabläufe und unterstützt bei der Wartung – damit immer alles reibungslos läuft. Den gleichen Anspruch hat der von Impressed entwickelte Impressed Workflow Server – er ist die smarte PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt. Im Webinar zeigen Ihnen die Experten von Horizon und Impressed, wie beide Lösungen im Team die Effizienz und Produktivität Ihres Betriebes steigern können. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Ja

Organisator: Impressed / Horizon

https://www.impressed.de/schulung.php?c=sDetail&sid=327

Einsparpotenziale in der Weiterverarbeitung
Veranstaltungen
16.05.2024

Online
Donnerstag, 16. Mai 2024, 10.00 - 10.30 Uhr

Webinar

Komplizierte, kleinteilige Aufträge; alles sehr speziell; seit Jahren bewährte Prozesse – da können wir nichts standardisieren und automatisieren! Das sagen viele Großformatdrucker – aber stimmt das wirklich, ist dem tatsächlich so? Günther Business Solutions und Impressed treten in einem Webinar den Gegenbeweis an. Experten beider Unternehmen zeigen, wie Großformatdrucker vom Einsatz zweier bewährter Lösungen profitieren können: • von advanter print+sign von Günther Business Solutions, dem ERP-System für den Großformatdruck, dass alle Phasen der Wertschöpfung im Large Format Printing abdeckt • von Impressed Workflow Server, der smarten PDF-Workflow-Lösung für Druckereien, die Datenmanagement, Preflight und Produktionssteuerung übernimmt Über die Kombination beider Lösungen können Großformatdrucker ihre Prozesse mit modernen Workflows Schritt für Schritt automatisieren – und so zügig deutliche Zeit- und Kosteneinsparungen realisieren. Das Webinar sollten Sie sich nicht entgehen lassen – damit Sie keine Effizienzpotenziale mehr liegen lassen. Melden Sie sich am besten gleich an, wir freuen uns auf Sie! PS: Melden Sie sich in jedem Fall an – sollten Sie zum Termin verhindert sein, erhalten Sie die Aufzeichnung.

kostenlos

Nein

Organisator: Impressed / Günther Business Solutions

https://www.impressed.de/schulung.php?c=sDetail&sid=326

Und es geht doch: Automatisierung im Großformatdruck!