Type: Basic DXF R12 entity.

A simple one line text.

DXFEngine.text(text, insert=(0., 0.), height=1.0, **kwargs)
  • text (str) – the text to display
  • insert – insert point (xy- or xyz-tuple), z-axis is 0 by default
  • height (float) – text height in drawing-units
  • rotation (float) – text rotation in degree, default=0
  • xscale (float) – text width factor, default=1
  • oblique (float) – text oblique angle in degree, default=0
  • style (str) – text style name, default=STANDARD
  • mirror (int) – text generation flags, bit-coded, default=0
  • halign (int) – horizontal justification type
  • valign (int) – vertical justification type
  • alignpoint – align point (xy- or xyz-tuple), z-axis is 0 by default If the justification is anything other than BASELINE/LEFT, alignpoint specify the alignment point (or the second alignment point for ALIGN or FIT).

Common Keyword Arguments for all Basic DXF R12 Entities

keyword description
layer Layer name as string
linetype Linetype name as string, if not defined = BYLAYER
color as integer in range [1..255], 0 = BYBLOCK, 256 = BYLAYER
thickness Thickness as float
paper_space 0 = entity is in model_space, 1 = entity is in paper_space
extrusion_direction 3D Point as tuple(x, y, z) if extrusion direction is not parallel to the World Z axis

Mirror Flags

Flag Description
const.MIRROR_X Text is backward (mirrored in X)
const.MIRROR_Y Text is upside down (mirrored in Y)

Attribs of DXF entities can be changed by the index operator:

from dxfwrite import DXFEngine as dxf

drawing = dxf.drawing('drawing.dxf')
text = dxf.text('Text', (1.0, 1.0), height=0.7, rotation=45)
text['layer'] = 'TEXT'
text['color'] = 7

Aligned Text

Attention at aligned Text, if the horizontal align parameter halign = CENTER, RIGHT, ALIGNED, FIT, BASELINE_MIDDLE or the vertical align parameter valign = TOP, MIDDLE or BOTTOM, the parameter alignpoint defines the text insert point (CENTER, TOP, ...) or the second align point (FIT, ALIGNED):

from dxfwrite import DXFEngine as dxf
from dxfwrite.const import CENTER

drawing = dxf.drawing('drawing.dxf')
drawing.add(dxf.text('aligned Text', halign=CENTER, alignpoint=(10.0, 5.0)))