From dcf6883ca5e08080988192f5ce18d6b202aa1d4b Mon Sep 17 00:00:00 2001 From: Todd Date: Wed, 27 Dec 2017 16:19:25 -0600 Subject: [PATCH] document: support for controlling auto-sized tables Fixes #140 --- _examples/document/tables/main.go | 2 ++ _examples/document/tables/tables.docx | Bin 5714 -> 5679 bytes document/tableproperties.go | 13 +++++++++++++ 3 files changed, 15 insertions(+) diff --git a/_examples/document/tables/main.go b/_examples/document/tables/main.go index 0ec03d68..329b6e1d 100644 --- a/_examples/document/tables/main.go +++ b/_examples/document/tables/main.go @@ -194,6 +194,8 @@ func main() { tp.Borders().SetAll(wml.ST_BorderSingle, color.Blue, 0.5*measurement.Point) table := doc.AddTable() + + table.Properties().SetLayout(wml.ST_TblLayoutTypeFixed) table.Properties().SetWidthPercent(90) table.Properties().SetStyle("MyTableStyle") look := table.Properties().TableLook() diff --git a/_examples/document/tables/tables.docx b/_examples/document/tables/tables.docx index dfa3c416ac90358a25ec33e2bd2c2a32cc813a4d..3b4c85d0735495094c79465ec77b096bf1b044d7 100644 GIT binary patch delta 1848 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 HL{9kMmbzpi diff --git a/document/tableproperties.go b/document/tableproperties.go index 38ff0568..1d72828b 100644 --- a/document/tableproperties.go +++ b/document/tableproperties.go @@ -63,6 +63,19 @@ func (t TableProperties) SetWidthPercent(pct float64) { t.x.TblW.WAttr.ST_DecimalNumberOrPercent.ST_UnqualifiedPercentage = gooxml.Int64(int64(pct * 50)) } +// SetLayout controls the table layout. wml.ST_TblLayoutTypeAutofit corresponds +// to "Automatically resize to fit contents" being checked, while +// wml.ST_TblLayoutTypeFixed corresponds to it being unchecked. +func (t TableProperties) SetLayout(l wml.ST_TblLayoutType) { + // ST_TblLayoutTypeAutofit is the default + if l == wml.ST_TblLayoutTypeUnset || l == wml.ST_TblLayoutTypeAutofit { + t.x.TblLayout = nil + } else { + t.x.TblLayout = wml.NewCT_TblLayoutType() + t.x.TblLayout.TypeAttr = l + } +} + // SetAlignment sets the alignment of a table within the page. func (t TableProperties) SetAlignment(align wml.ST_JcTable) { if align == wml.ST_JcTableUnset {