Tabellen schalen om te passen in de tekstkolombreedte in framemaker

Adobe framemaker Questions fréquentes

tabellen schalen om te passen in de tekstkolombreedte in framemaker?

Over het script: Hier is een eenvoudig script dat een tabel proportioneel schaalt zodat deze past in de tekstkolom waarin deze zich bevindt. Dit script werkt met de huidige tabel, maar kan gemakkelijk worden uitgebreid om met alle tabellen in een document of boek te werken.

De gegevens ophalen: Klik met uw cursor in een tabel die moet worden geschaald. U moet enkele basisgegevens verzamelen om de tabel correct te schalen. Hier is geannoteerde code om de benodigde gegevens in variabelen in te stellen.

// De geselecteerde tabel.
Set vTbl = SelectedTbl;
// De huidige breedte van de tabel.
Set vTblWidth = vTbl.TblWidth;
// De breedte van de kolom met de tabel.
Set vColWidth = vTbl.TextLoc.Object.InTextObj.Width;


De variabele vColWidth is de breedte van de kolom in een tekstframe met meerdere kolommen. Heeft het tekstframe slechts één kolom, dan is de kolombreedte gelijk aan de breedte van het tekstframe. Hebt u meerdere kolommen, maar wilt u de tabel naar de breedte van het tekstframe schalen, gebruik dan de volgende regels in plaats van de laatste twee regels hierboven.

// De breedte van het tekstframe met de tabel.
Set vColWidth = vTbl.TextLoc.Object.InTextFrame.Width;


Nu kan het script enige berekeningen uitvoeren om te bepalen hoeveel de tabel moet worden geschaald.

// Deel de kolombreedte door de tabelbreedte.
Set vScaleFactor = vColWidth / vTblWidth;



Hoe schaalt u de tabel?

De eigenschap TblWidth van de tabel is alleen-lezen, dus u kunt deze niet gebruiken om de tabel te schalen.

// Dit werkt niet.
Set vTbl.TblWidth = vTblWidth * vScaleFactor;


In plaats daarvan moet u de breedte van elke afzonderlijke kolom van de tabel wijzigen. Deze breedtes worden opgeslagen in een MetricList genaamd TblColWidths.

// Stel een variabele in voor de tabelkolombreedte.
Set vWidths = vTbl.TblColWidths;


Een metrieken­lijst is een lijst met meetwaarden. In dit geval is er voor elke kolom in de tabel één lid van de lijst. Heeft de tabel vijf kolommen, dan bevat de TblColWidth-lijst vijf leden.
De sleutel tot het script is het doorlopen van de meetwaardelijst, elk vermenigvuldigen met vScaleFactor en de nieuwe waarde terug in de lijst plaatsen.

// Loop door de lijst en bereken elke
// nieuwe breedte van de tabelkolom.
Loop While(vCounter <= vWidths.Count) LoopVar(vCounter)
Init(1) Incr(1)
Get Member Number(vCounter) From(vWidths) NewVar(vWidth);
Set vNewWidth = vWidth * vScaleFactor;
Replace Member Number(vCounter) In(vWidths) With(vNewWidth);
EndLoop


De variabele vCounter wordt verhoogd met 1 (Incr(1)) beginnend bij 1 (Init(1)) tot het aantal leden in vWidths (vWidths.Count). Elk lid wordt vermenigvuldigd met de schaalfactor en het lid wordt vervangen door de nieuwe waarde.
Uw variabele vWidths MetricList bevat nu de juiste breedtes om de tabel naar de kolombreedte te schalen. Het enige dat nog rest is de nieuwe waarden aan de tabel toe te wijzen.
Set vTbl.TblColWidths = vWidths;


Comments