Skip to content

API reference / Common / Engine types / TableBorder

Interface: TableBorder ​

One edge's stroke, as both dialects spell it.

The two are different types in the schema and neither is a subset of the other, so the model keeps both halves rather than flattening to what they share:

  • line is DrawingML's a:ln (CT_LineProperties) — width, cap, compound, pen alignment, a full fill as the stroke paint, preset or custom dash, join.
  • border is wordprocessing's w:border (CT_Border) — a line pattern, a width in eighths of a point, a color, and the @space / @shadow that have no a:ln counterpart.

A given edge comes from exactly one dialect, so the halves never contradict: the pptx importer fills line and leaves border None; the docx importer fills border and mirrors its width and color onto line so a consumer that only wants a stroke has one. Reducing both to a common { style, color, width } — what the old engine did — is what loses pptx's compound lines, gradient stroke fills, and cap/join.

A pptx table style states its edges differently again — as CT_ThemeableLineStyle, which may name a theme entry instead of a stroke — so those live in TableCellBorderStyle and reach this type only once the cascade has bound them.

Properties ​

PropertyDescription
line
PaintLine
a:lnL / a:lnR / a:lnT / a:lnB … — the DrawingML stroke.
border?
PaintBorder
w:top / w:start / … — the wordprocessing border, when the edge came from docx. None for a DrawingML edge, whose @cmpd and a:prstDash say what @w:val would.