Creates a new AcDbTextStyleTableRecord instance.
Property font may be empty. When it contains a file extension, the extension is removed
during construction.
Optionalattrs: Partial<AcDbTextStyleTableRecordAttrs>Input attribute values for this text style table record
OptionaldefaultAttrs: Partial<AcDbTextStyleTableRecordAttrs>Default values for attributes of this text style table record
Gets the attributes object for this AcDbObject.
The AcCmObject instance containing all attributes
Gets or sets the name of the big font file for this text style.
Big font files are used for languages that require more than 256 characters, such as Chinese, Japanese, and Korean.
The big font file name
Gets the database in which this object is resident.
When an object isn't added to a database, this property returns the current working database. After it is added to a database, it will be set automatically. You should never set this value manually.
The database this object belongs to
Sets the database for this object.
This is typically set automatically when the object is added to a database. Manual setting should be avoided unless you know what you're doing.
The database to associate with this object
Gets the objectId of the extension dictionary owned by this object.
If the object does not have an extension dictionary, this returns undefined.
In ObjectARX terms, this is equivalent to AcDbObject::extensionDictionary().
The extension dictionary objectId, or undefined
Sets the objectId of the extension dictionary owned by this object.
This does not create or delete the dictionary object itself ??it only establishes or clears the ownership relationship.
Passing undefined removes the association.
The extension dictionary objectId, or undefined
Gets or sets the name of the font file for this text style.
The font file name
Gets or sets whether this entry describes a shape file definition rather than a text style.
When true, the record represents a shape file definition in the STYLE table (standard flag bit 1) and typically has an empty name.
True if this entry is a shape file definition, false otherwise
Returns true if this object is temporary and not yet committed to the database.
A temporary object is identified by its objectId starting with the TEMP prefix.
Gets or sets whether text drawn with this text style is drawn vertically.
Maps to standard flag bit 4 in group code 70.
True if text is drawn vertically, false otherwise
Gets or sets the name of the symbol table record.
This property corresponds to DXF group code 2 and is used for identifying and referencing the symbol table record.
The name of the symbol table record
Gets the object ID.
AutoCAD uses 64-bit integers to represent handles, which exceed the maximum integer value of JavaScript. Therefore, strings are used to represent object handles.
The object ID as a string
Sets the object ID.
The new object ID
Gets or sets the obliquing angle.
The obliquing angle is the angle from the text's vertical; that is, the top of the text "slants" relative to the bottom. Positive angles slant characters forward at their tops.
The obliquing angle in radians
Gets the object ID of the owner of this object.
The owner object ID
Sets the object ID of the owner of this object.
The new owner object ID
Gets or sets the text height used for the last text created using this text style.
This value is updated automatically by AutoCAD after the creation of any text object that references this text style table record. If textSize is 0, then priorSize is used as the default text height for the next text created using this text style.
The prior text size
Gets or sets the default size of the text drawn with this text style.
If the text size is set to 0, AutoCAD prompts for a text height when creating text. If textSize is non-zero, that fixed height is used instead.
The default text size
Gets the text style information used by the renderer.
Returns a snapshot assembled from stored attributes. Mutating the returned object does not update this table record; use the dedicated setters instead.
The text style configuration assembled from stored attributes
Gets or sets the width factor (also referred to as the relative X-scale factor) for the text style.
The width factor is applied to the text's width independently of the height. For example, a value of 0.8 draws text at 80% of its normal width.
The width factor
ProtectedassertProtectedassignAssociates this object with a database. Subclasses may override database
and call this helper to avoid super setter restrictions.
Creates the extension dictionary for this object if it does not already exist.
This method closely mirrors the behavior of
AcDbObject::createExtensionDictionary() in ObjectARX.
The objectId of the extension dictionary
Reads this object from a DXF filer (ObjectARX dxfIn).
Reads common handle/owner fields, then delegates to dxfInFields. XData (group 1001+) is consumed when present after object fields.
Group-102 control strings ({ACAD_XDICTIONARY, {ACAD_REACTORS, …) are
consumed here so subclass readers still see handle/owner/subclass markers
that follow them. Many real DXF writers emit these blocks on LAYER and
entity records; skipping them would leave name/layer unset.
ProtecteddxfConsumes a DXF group-102 control-string block that was already opened
(the opening 102 value is startValue, typically {ACAD_XDICTIONARY
or {ACAD_REACTORS).
For {ACAD_XDICTIONARY, the first soft-owner handle (360) is stored as
extensionDictionary. Other control strings are skipped until the
matching closing 102 / }.
Reads object-specific DXF fields (ObjectARX dxfInFields).
Subclasses should override, call super.dxfInFields(filer) first when
appropriate, then consume their subclass marker and fields in an
order-independent loop.
Per the AutoCAD DXF specification, readers must ignore undefined group
codes and must not assume field order. Within a subclass loop the
correct unknown-code behavior is break (skip and continue). Use
pushBackItem only to hand a group-100 subclass marker (or XData) to
another reader — never to abort on an unrecognized optional code.
ProtecteddxfTrueType styles often leave DXF group 3 empty and store the font name in
ACAD XData (1001 ACAD / 1000 SimSun). Apply that as extendedFont
and fall back fileName when the primary font file is blank —
matching dxf-json's extendedFont field.
Writes DXF fields for this object.
DXF output writer.
The instance (for chaining).
ProtecteddxfEmit all attached XData buffers (DXF groups 1000–1071).
Gets the value of the specified attribute.
This method will throw an exception if the specified attribute doesn't exist. Use getAttrWithoutException() if you want to handle missing attributes gracefully.
The name of the attribute to retrieve
The value of the specified attribute
Gets the value of the specified attribute without throwing an exception.
This method returns undefined if the specified attribute doesn't exist, making it safer for optional attributes.
The name of the attribute to retrieve
The value of the specified attribute, or undefined if it doesn't exist
Retrieves the XData associated with this object for a given application ID.
Extended Entity Data (XData) allows applications to attach arbitrary, application-specific data to an AcDbObject. Each XData entry is identified by a registered application name (AppId) and stored as an AcDbResultBuffer.
This method is conceptually equivalent to AcDbObject::xData() in ObjectARX,
but simplified to return the entire result buffer for the specified AppId.
The application ID (registered AppId name) that owns the XData
The AcDbResultBuffer associated with the AppId, or undefined
if no XData exists for that AppId
Removes the XData associated with the specified application ID.
After removal, calls to getXData() for the same AppId will return undefined.
If no XData exists for the given AppId, this method has no effect.
This mirrors the behavior of clearing XData for a specific application in ObjectARX rather than removing all XData from the object.
The application ID whose XData should be removed
Restores internal state from a detached clone while preserving identity fields.
Clone produced by clone or clonePreservingIdentity.
Sets an attribute after verifying the record is open for write.
Symbol table records follow ObjectARX semantics: existing database records must be opened with AcDbDatabase.openObjectForWrite before mutation.
Optionalval: AcDbTextStyleTableRecordAttrs[A]Attaches or replaces XData for this object.
If XData already exists for the given AppId, it is replaced by the provided AcDbResultBuffer. The caller is responsible for ensuring that:
This method is conceptually similar to AcDbObject::setXData() in ObjectARX.
The result buffer containing the XData to attach
Represents a record in the text style table.
This class represents the records that are found in the text style table (known as the "style" table in DXF). Each of these records represents a specific set of text parameters such as font, default size, relative x scaling, vertical or horizontal orientation, etc.
Example