
# IPCB_Text interface

A text string on a PCB document, either a free text string or the designator or comment of a component.

```csharp
public interface IPCB_Text : IPCB_RectangularPrimitive
```

**Namespace:** PCB · **Assembly:** Altium.SDK.Interfaces

**Inherits:** [IPCB_Primitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md) → [IPCB_RectangularPrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md)

**Derived:** [IPCB_Text3](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Text3.md)

## Remarks

There are two classes of text strings: free text strings and component text. Free text strings are standalone strings that can be used as descriptors or labels. Component text is the designator and the comment of a component; they are text objects themselves, returned by [`IPCB_Component.Name`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Component.md#name) and [`IPCB_Component.Comment`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Component.md#comment), and their `Text` property reads or writes the designator or comment string. Each component must have a unique designator, so designators are not globally editable; comments are.

A text can be drawn with a stroke font, with a TrueType font or as a barcode ([`TextKind`](#textkind)).

The PCB editor includes special strings, which are interpreted when output (printing, plotting or generating Gerber files) is generated. For example, the string .PRINT_DATE is replaced by the current date. [`ConvertedString`](#convertedstring) returns the text with its special strings replaced.

Text objects are rectangular primitives with the corner coordinates and the rotation of [`IPCB_RectangularPrimitive`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md). A text is not a group and has no child objects. A text can be converted into a series of strokes with [`ConvertToStrokeArray`](#converttostrokearray).

## Example

Place a text object on the top overlay of a new PCB document.

```csharp
using DXP;
using PCB;

// Create a new PCB document.
var workspace = DXP.GlobalVars.Client.GetDXPWorkspace() as EDP.IWorkspace;
if (workspace == null)
    return;
workspace.DM_CreateNewDocument("PCB");
IPCB_ServerInterface pcbServer = PCB.GlobalVars.PCBServer;
IPCB_Board board = pcbServer?.GetCurrentPCBBoard();
if (board == null)
    return;

// Create a text object on the top overlay layer.
board.SetState_LayerIsDisplayed(new V7_Layer(TV6_Layer.eV6_TopOverlay), true);
var textObj = pcbServer.PCBObjectFactory(TObjectId.eTextObject, TDimensionKind.eNoDimension, TObjectCreationMode.eCreate_Default) as IPCB_Text;
textObj.SetState_XLocation(EDP.Utils.MilsToCoord(board.GetState_XOrigin() + 4000));
textObj.SetState_YLocation(EDP.Utils.MilsToCoord(board.GetState_YOrigin() + 2000));
textObj.SetState_Layer(TV6_Layer.eV6_TopOverlay);
textObj.SetState_Text("Text Object");
textObj.SetState_Size(EDP.Utils.MilsToCoord(90)); // sets the height of the text
board.AddPCBObject(textObj);
```

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [BarCodeBitPattern](#barcodebitpattern) | `string` | get | The bit pattern of the barcode, generated from the text. |
| [BarCodeFontName](#barcodefontname) | `string` | get; set |  |
| [BarCodeFullHeight](#barcodefullheight) | `int` | get; set | The full height of the barcode, in internal units (10,000 per mil). |
| [BarCodeFullWidth](#barcodefullwidth) | `int` | get; set | The full width of the barcode, in internal units (10,000 per mil). |
| [BarCodeInverted](#barcodeinverted) | `bool` | get; set |  |
| [BarCodeKind](#barcodekind) | [TBarcodeKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TBarcodeKind.md) | get; set | The kind of barcode, such as Code 39, Code 128, QR code or Data Matrix. |
| [BarCodeMinWidth](#barcodeminwidth) | `int` | get; set |  |
| [BarCodeRenderMode](#barcoderendermode) | [TBarcodeRenderMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TBarcodeRenderMode.md) | get; set |  |
| [BarCodeShowText](#barcodeshowtext) | `bool` | get; set |  |
| [BarCodeXMargin](#barcodexmargin) | `int` | get; set | The horizontal margin of the barcode, in internal units (10,000 per mil). |
| [BarCodeYMargin](#barcodeymargin) | `int` | get; set | The vertical margin of the barcode, in internal units (10,000 per mil). |
| [Bold](#bold) | `bool` | get; set | Whether the text is bold when it uses a TrueType font ([`UseTTFonts`](#usettfonts)). |
| [BorderSpaceType](#borderspacetype) | [TTextBorderSpaceType](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TTextBorderSpaceType.md) | get; set |  |
| [CharSet](#charset) | `byte` | get; set | The character set of the text's TrueType font. |
| [ConvertedString](#convertedstring) | `string` | get | The string of the text with its special strings replaced by their values. |
| [FontID](#fontid) | `short` | get; set | The stroke font of the text, an index into the font table of the PCB editor. |
| [FontName](#fontname) | `string` | get; set | The name of the TrueType font of the text, for example Arial, Arial Narrow, Courier New or Verdana. |
| [Inverted](#inverted) | `bool` | get; set | Whether the text is inverted, that is, cut out of a filled rectangle drawn around it. |
| [InvertedTTTextBorder](#invertedtttextborder) | `int` | get; set | The width of the border between inverted text and the edge of its rectangle, in internal units (10,000 per mil). |
| [InvRectHeight](#invrectheight) | `int` | get; set | The height of the rectangle of inverted text, in internal units (10,000 per mil). |
| [InvRectWidth](#invrectwidth) | `int` | get; set | The width of the rectangle of inverted text, in internal units (10,000 per mil). |
| [Italic](#italic) | `bool` | get; set | Whether the text is italic when it uses a TrueType font ([`UseTTFonts`](#usettfonts)). |
| [Mirror](#mirror) | `bool` | get; set | Whether the text is mirrored. |
| [Multiline](#multiline) | `bool` | get; set | Whether the text is a multiline text block. |
| [MultilineTextAutoPosition](#multilinetextautoposition) | [TTextAutoposition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TTextAutoposition.md) | get; set | Where the string is placed inside the rectangle of multiline or inverted text. |
| [MultilineTextHeight](#multilinetextheight) | `int` | get; set | The height of the multiline text block, in internal units (10,000 per mil). |
| [MultilineTextResizeEnabled](#multilinetextresizeenabled) | `bool` | get | Whether assigning [`MultilineTextWidth`](#multilinetextwidth) and [`MultilineTextHeight`](#multilinetextheight) resizes the multiline text block. |
| [MultilineTextWidth](#multilinetextwidth) | `int` | get; set | The width of the multiline text block, in internal units (10,000 per mil). |
| [Size](#size) | `int` | get; set | The height of the text, in internal units (10,000 per mil). |
| [Text](#text) | `string` | get; set | The string of the text object. |
| [TextKind](#textkind) | [TTextKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TTextKind.md) | get; set | Whether the text is drawn with the stroke font, with a TrueType font or as a barcode. |
| [TTFInvertedTextJustify](#ttfinvertedtextjustify) | [TTextAutoposition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TTextAutoposition.md) | get; set | Where the string is placed inside the rectangle of inverted or multiline text. |
| [TTFOffsetFromInvertedRect](#ttfoffsetfrominvertedrect) | `int` | get; set |  |
| [TTFTextHeight](#ttftextheight) | `int` | get; set | The height of the string of the text, in internal units (10,000 per mil). |
| [TTFTextWidth](#ttftextwidth) | `int` | get; set | The width of the string of the text, in internal units (10,000 per mil). |
| [UnderlyingString](#underlyingstring) | `string` | get; set | The string of the text as stored, with special strings not converted. |
| [UseInvertedRectangle](#useinvertedrectangle) | `bool` | get; set |  |
| [UseTTFonts](#usettfonts) | `bool` | get; set | Whether the text uses a TrueType font ([`FontName`](#fontname), `Bold`, `Italic`) rather than the stroke font [`FontID`](#fontid). |
| [Width](#width) | `int` | get; set | The width of the lines of the text's stroke font, in internal units (10,000 per mil). |
| [WordWrap](#wordwrap) | `bool` | get |  |

### BarCodeBitPattern

The bit pattern of the barcode, generated from the text.

```csharp
string GetState_BarCodeBitPattern();
```

**Type:** `string` · **Access:** read-only

When no pattern is stored, reading the property generates it from the text with its special strings converted. The pattern is regenerated when `Text` is assigned to a barcode and when the size of a barcode is recalculated.

### BarCodeFontName

*No description yet.*

```csharp
string GetState_BarCodeFontName();
void SetState_BarCodeFontName(string argValue);
```

**Type:** `string` · **Access:** read/write

A new text object uses Arial.

### BarCodeFullHeight

The full height of the barcode, in internal units (10,000 per mil).

```csharp
int GetState_BarCodeFullHeight();
void SetState_BarCodeFullHeight(int argValue);
```

**Type:** `int` · **Access:** read/write

When `Multiline` is true, the property reads and writes [`MultilineTextHeight`](#multilinetextheight) instead. Otherwise a value below 20 mil is ignored. A new text object uses 210 mil.

### BarCodeFullWidth

The full width of the barcode, in internal units (10,000 per mil).

```csharp
int GetState_BarCodeFullWidth();
void SetState_BarCodeFullWidth(int argValue);
```

**Type:** `int` · **Access:** read/write

When `Multiline` is true, the property reads and writes [`MultilineTextWidth`](#multilinetextwidth) instead. Otherwise a value smaller than [`TTFTextWidth`](#ttftextwidth) is ignored. A new text object uses 1050 mil.

### BarCodeInverted

*No description yet.*

```csharp
bool GetState_BarCodeInverted();
void SetState_BarCodeInverted(bool argValue);
```

**Type:** `bool` · **Access:** read/write

When the value is true, the string of the barcode is offset from the reference point by [`BarCodeXMargin`](#barcodexmargin) and [`BarCodeYMargin`](#barcodeymargin). A new text object has the value true.

### BarCodeKind

The kind of barcode, such as Code 39, Code 128, QR code or Data Matrix.

```csharp
TBarcodeKind GetState_BarCodeKind();
void SetState_BarCodeKind(TBarcodeKind argValue);
```

**Type:** [TBarcodeKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TBarcodeKind.md) · **Access:** read/write

The accessors are extension methods of `IPCB_TextHelper` (`using PCB;`).

A new text object uses `TBarcodeKind.eBarcode39`.

### BarCodeMinWidth

*No description yet.*

```csharp
int GetState_BarCodeMinWidth();
void SetState_BarCodeMinWidth(int argValue);
```

**Type:** `int` · **Access:** read/write

A new text object has the value 0.

### BarCodeRenderMode

*No description yet.*

```csharp
TBarcodeRenderMode GetState_BarCodeRenderMode();
void SetState_BarCodeRenderMode(TBarcodeRenderMode argValue);
```

**Type:** [TBarcodeRenderMode](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TBarcodeRenderMode.md) · **Access:** read/write

The accessors are extension methods of `IPCB_TextHelper` (`using PCB;`).

A new text object uses `TBarcodeRenderMode.eRender_ByFullWidth`.

### BarCodeShowText

*No description yet.*

```csharp
bool GetState_BarCodeShowText();
void SetState_BarCodeShowText(bool argValue);
```

**Type:** `bool` · **Access:** read/write

A new text object has the value true.

### BarCodeXMargin

The horizontal margin of the barcode, in internal units (10,000 per mil).

```csharp
int GetState_BarCodeXMargin();
void SetState_BarCodeXMargin(int argValue);
```

**Type:** `int` · **Access:** read/write

When [`BarCodeInverted`](#barcodeinverted) is true, the string of the barcode is offset from the reference point by this distance in X. A new text object uses 20 mil.

### BarCodeYMargin

The vertical margin of the barcode, in internal units (10,000 per mil).

```csharp
int GetState_BarCodeYMargin();
void SetState_BarCodeYMargin(int argValue);
```

**Type:** `int` · **Access:** read/write

When [`BarCodeInverted`](#barcodeinverted) is true, the string of the barcode is offset from the reference point by this distance in Y. A new text object uses 20 mil.

### Bold

Whether the text is bold when it uses a TrueType font ([`UseTTFonts`](#usettfonts)).

```csharp
bool GetState_Bold();
void SetState_Bold(bool argBold);
```

**Type:** `bool` · **Access:** read/write

A new text object is not bold.

### BorderSpaceType

*No description yet.*

```csharp
TTextBorderSpaceType GetState_BorderSpaceType();
void SetState_BorderSpaceType(TTextBorderSpaceType argValue);
```

**Type:** [TTextBorderSpaceType](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TTextBorderSpaceType.md) · **Access:** read/write

The accessors are extension methods of `IPCB_TextHelper` (`using PCB;`).

A new text object uses `TTextBorderSpaceType.bstMargin`.

### CharSet

The character set of the text's TrueType font.

```csharp
byte GetState_CharSet();
void SetState_CharSet(byte argCharSet);
```

**Type:** `byte` · **Access:** read/write

A new text object uses the Windows default character set (1).

### ConvertedString

The string of the text with its special strings replaced by their values.

```csharp
string GetState_ConvertedString();
```

**Type:** `string` · **Access:** read-only

For example, the special string .PRINT_DATE is replaced by the current date. For a component comment, the comment of the current variant is converted. The available special strings include .PRINT_DATE, .PRINT_TIME, .PRINT_SCALE, .LAYER_NAME, .PCB_FILE_NAME, .PCB_FILE_NAME_NO_PATH, .PLOT_FILE_NAME, .ARC_COUNT, .COMPONENT_COUNT, .FILL_COUNT, .HOLE_COUNT, .NET_COUNT, .PAD_COUNT, .STRING_COUNT, .TRACK_COUNT, .VIA_COUNT, .DESIGNATOR, .COMMENT, .LEGEND and .NET_NAMES_ON_LAYER.

**Example:** Show the converted value of every .Layer_Name special string on the current board.

```csharp
using PCB;

// Retrieve the current board.
IPCB_Board board = PCB.GlobalVars.PCBServer?.GetCurrentPCBBoard();
if (board == null)
    return;

// Create the iterator.
IPCB_BoardIterator iterator = board.BoardIterator_Create();
iterator.AddFilter_ObjectSet(new PCB.TObjectSet { TObjectId.eTextObject });
iterator.AddFilter_AllLayers();
iterator.AddFilter_Method(TIterationMethod.eProcessAll);

// Search for special strings.
var specialString = iterator.FirstPCBObject() as IPCB_Text;
while (specialString != null)
{
    if (specialString.GetState_Text() == ".Layer_Name")
        DXP.Utils.ShowInfo(specialString.GetState_ConvertedString(), "Special String");
    specialString = iterator.NextPCBObject() as IPCB_Text;
}
board.BoardIterator_Destroy(ref iterator);
```

**See also:** [IPCB_SpecialStringConverter](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_SpecialStringConverter.md)

### FontID

The stroke font of the text, an index into the font table of the PCB editor.

```csharp
short GetState_FontID();
void SetState_FontID(short argFontID);
```

**Type:** `short` · **Access:** read/write

Each font used in the PCB editor has its own font ID; when a new font is used, a new entry is added to the table. A new text object uses font 1.

### FontName

The name of the TrueType font of the text, for example Arial, Arial Narrow, Courier New or Verdana.

```csharp
string GetState_FontName();
void SetState_FontName(string argFontName);
```

**Type:** `string` · **Access:** read/write

The value is used when [`UseTTFonts`](#usettfonts) is true. A new text object uses Arial.

### Inverted

Whether the text is inverted, that is, cut out of a filled rectangle drawn around it.

```csharp
bool GetState_Inverted();
void SetState_Inverted(bool argInverted);
```

**Type:** `bool` · **Access:** read/write

Inverted text is useful when the text is placed on a copper region and has to create a cutout in it. The rectangle has the layer colour and the text itself is black. [`InvertedTTTextBorder`](#invertedtttextborder) sets the border around the text. A new text object is not inverted.

**See also:** [IPCB_Text.InvertedTTTextBorder](#invertedtttextborder)

### InvertedTTTextBorder

The width of the border between inverted text and the edge of its rectangle, in internal units (10,000 per mil).

```csharp
int GetState_InvertedTTTextBorder();
void SetState_InvertedTTTextBorder(int argBorder);
```

**Type:** `int` · **Access:** read/write

A new text object has a border of 0.

**See also:** [IPCB_Text.Inverted](#inverted)

### InvRectHeight

The height of the rectangle of inverted text, in internal units (10,000 per mil).

```csharp
int GetState_InvRectHeight();
void SetState_InvRectHeight(int argValue);
```

**Type:** `int` · **Access:** read/write

For single-line text the value is reset to the height of the string plus its border whenever the size of the text is recalculated. Assigning a value smaller than [`TTFTextHeight`](#ttftextheight) is ignored, unless the current height is 0 or less, in which case any positive value is accepted.

### InvRectWidth

The width of the rectangle of inverted text, in internal units (10,000 per mil).

```csharp
int GetState_InvRectWidth();
void SetState_InvRectWidth(int argValue);
```

**Type:** `int` · **Access:** read/write

For single-line text the value is reset to the width of the string plus its border whenever the size of the text is recalculated. Assigning a value that is not greater than [`TTFTextWidth`](#ttftextwidth) is ignored, unless the current width is 0 or less (any positive value is then accepted) or the value equals [`TTFTextWidth`](#ttftextwidth) and the current width is smaller.

### Italic

Whether the text is italic when it uses a TrueType font ([`UseTTFonts`](#usettfonts)).

```csharp
bool GetState_Italic();
void SetState_Italic(bool argItalic);
```

**Type:** `bool` · **Access:** read/write

A new text object is not italic.

### Mirror

Whether the text is mirrored.

```csharp
bool GetState_Mirror();
void SetState_Mirror(bool argMirror);
```

**Type:** `bool` · **Access:** read/write

A new text object is not mirrored.

### Multiline

Whether the text is a multiline text block.

```csharp
bool GetState_Multiline();
void SetState_Multiline(bool argValue);
```

**Type:** `bool` · **Access:** read/write

Assigning true is ignored for the text of a dimension or a coordinate. Assigning a value also sets [`WordWrap`](#wordwrap) to the same value. A new text object is single-line.

### MultilineTextAutoPosition

Where the string is placed inside the rectangle of multiline or inverted text.

```csharp
TTextAutoposition GetState_MultilineTextAutoPosition();
void SetState_MultilineTextAutoPosition(TTextAutoposition argutoPosition);
```

**Type:** [TTextAutoposition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TTextAutoposition.md) · **Access:** read/write

The accessors are extension methods of `IPCB_TextHelper` (`using PCB;`).

The property reads and writes the same value as [`TTFInvertedTextJustify`](#ttfinvertedtextjustify).

### MultilineTextHeight

The height of the multiline text block, in internal units (10,000 per mil).

```csharp
int GetState_MultilineTextHeight();
void SetState_MultilineTextHeight(int argHeight);
```

**Type:** `int` · **Access:** read/write

Returns 0 when `Multiline` is false. Assigning a value sets [`Y2Location`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#y2location) to [`Y1Location`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#y1location) plus the value, and sets [`TTFTextHeight`](#ttftextheight) and [`InvRectHeight`](#invrectheight) to the value; the block itself is resized only when [`MultilineTextResizeEnabled`](#multilinetextresizeenabled) is true.

### MultilineTextResizeEnabled

Whether assigning [`MultilineTextWidth`](#multilinetextwidth) and [`MultilineTextHeight`](#multilinetextheight) resizes the multiline text block.

```csharp
bool GetState_MultilineTextResizeEnabled();
```

**Type:** `bool` · **Access:** read-only

Returns false when `Multiline` is false.

### MultilineTextWidth

The width of the multiline text block, in internal units (10,000 per mil).

```csharp
int GetState_MultilineTextWidth();
void SetState_MultilineTextWidth(int argWidth);
```

**Type:** `int` · **Access:** read/write

Returns 0 when `Multiline` is false. Assigning a value sets [`X2Location`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#x2location) to [`X1Location`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#x1location) plus the value (for mirrored text, [`X1Location`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#x1location) to [`X2Location`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#x2location) minus the value), and sets [`TTFTextWidth`](#ttftextwidth) and [`InvRectWidth`](#invrectwidth) to the value; the block itself is resized only when [`MultilineTextResizeEnabled`](#multilinetextresizeenabled) is true.

### Size

The height of the text, in internal units (10,000 per mil).

```csharp
int GetState_Size();
void SetState_Size(int argSize);
```

**Type:** `int` · **Access:** read/write

A negative value or a value above 10 inches (10,000 mil) is ignored. A new text object has a height of 60 mil.

### Text

The string of the text object.

```csharp
string GetState_Text();
void SetState_Text(string argText);
```

**Type:** `string` · **Access:** read/write

When the text is on a board whose view displays special strings converted, reading returns the converted string ([`ConvertedString`](#convertedstring)); otherwise it returns the underlying string, or for a component comment the comment of the current variant. Assigning a value sets the underlying string ([`UnderlyingString`](#underlyingstring)) and, for a barcode, regenerates [`BarCodeBitPattern`](#barcodebitpattern); assigning the string that the text already holds does nothing. For a component comment that has a value in the current variant, assigning a different string asks the user for confirmation and then changes the comment of the variant.

### TextKind

Whether the text is drawn with the stroke font, with a TrueType font or as a barcode.

```csharp
TTextKind GetState_TextKind();
void SetState_TextKind(TTextKind argValue);
```

**Type:** [TTextKind](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TTextKind.md) · **Access:** read/write

The accessors are extension methods of `IPCB_TextHelper` (`using PCB;`).

[`UseTTFonts`](#usettfonts) is true exactly when the kind is `TTextKind.eText_TrueTypeFont`. A new text object uses `TTextKind.eText_StrokeFont`.

### TTFInvertedTextJustify

Where the string is placed inside the rectangle of inverted or multiline text.

```csharp
TTextAutoposition GetState_TTFInvertedTextJustify();
void SetState_TTFInvertedTextJustify(TTextAutoposition argValue);
```

**Type:** [TTextAutoposition](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/TTextAutoposition.md) · **Access:** read/write

The accessors are extension methods of `IPCB_TextHelper` (`using PCB;`).

Only the values from `TTextAutoposition.eAutoPos_TopLeft` to `TTextAutoposition.eAutoPos_BottomRight` are accepted; assigning `TTextAutoposition.eAutoPos_Manual` is ignored. [`MultilineTextAutoPosition`](#multilinetextautoposition) reads and writes the same value. A new text object uses `TTextAutoposition.eAutoPos_BottomLeft`.

### TTFOffsetFromInvertedRect

*No description yet.*

```csharp
int GetState_TTFOffsetFromInvertedRect();
void SetState_TTFOffsetFromInvertedRect(int argValue);
```

**Type:** `int` · **Access:** read/write

A new text object has the value 0.

### TTFTextHeight

The height of the string of the text, in internal units (10,000 per mil).

```csharp
int GetState_TTFTextHeight();
void SetState_TTFTextHeight(int argValue);
```

**Type:** `int` · **Access:** read/write

The value is calculated for stroke, TrueType and barcode text whenever the size of the text is recalculated, and is also set by assigning [`MultilineTextHeight`](#multilinetextheight).

### TTFTextWidth

The width of the string of the text, in internal units (10,000 per mil).

```csharp
int GetState_TTFTextWidth();
void SetState_TTFTextWidth(int argValue);
```

**Type:** `int` · **Access:** read/write

The value is calculated for stroke, TrueType and barcode text whenever the size of the text is recalculated, and is also set by assigning [`MultilineTextWidth`](#multilinetextwidth).

### UnderlyingString

The string of the text as stored, with special strings not converted.

```csharp
string GetState_UnderlyingString();
void SetState_UnderlyingString(string argValue);
```

**Type:** `string` · **Access:** read/write

Unlike `Text`, reading never converts special strings and never returns the comment of a variant. Assigning a value sets the stored string; for a component comment that has a value in the current variant, assigning a different string asks the user for confirmation and then changes the comment of the variant.

### UseInvertedRectangle

*No description yet.*

```csharp
bool GetState_UseInvertedRectangle();
void SetState_UseInvertedRectangle(bool argValue);
```

**Type:** `bool` · **Access:** read/write

Reading the property returns the value of `Inverted`.

### UseTTFonts

Whether the text uses a TrueType font ([`FontName`](#fontname), `Bold`, `Italic`) rather than the stroke font [`FontID`](#fontid).

```csharp
bool GetState_UseTTFonts();
void SetState_UseTTFonts(bool argUseTTFonts);
```

**Type:** `bool` · **Access:** read/write

The value is true when [`TextKind`](#textkind) is `TTextKind.eText_TrueTypeFont`. Assigning true sets [`TextKind`](#textkind) to `TTextKind.eText_TrueTypeFont`; assigning false sets it to `TTextKind.eText_StrokeFont` only when it was `TTextKind.eText_TrueTypeFont`, so a barcode stays a barcode. A new text object uses the stroke font.

**Example:** Place an inverted TrueType text object on the bottom overlay of the current board.

```csharp
using PCB;

IPCB_ServerInterface pcbServer = PCB.GlobalVars.PCBServer;
IPCB_Board board = pcbServer?.GetCurrentPCBBoard();
if (board == null)
    return;
IPCB_Sheet sheet = board.GetState_PCBSheet();

var textObj = pcbServer.PCBObjectFactory(TObjectId.eTextObject, TDimensionKind.eNoDimension, TObjectCreationMode.eCreate_Default) as IPCB_Text;
// Notify that the PCB object is going to be modified.
textObj.BeginModify();
textObj.SetState_XLocation(sheet.GetState_SheetX() + EDP.Utils.MilsToCoord(1000));
textObj.SetState_YLocation(sheet.GetState_SheetY() + EDP.Utils.MilsToCoord(1000));
textObj.SetState_Layer(TV6_Layer.eV6_BottomOverlay);
// Use TrueType fonts.
textObj.SetState_UseTTFonts(true);
textObj.SetState_Italic(true);
textObj.SetState_Bold(false);
textObj.SetState_FontName("ARIAL");
textObj.SetState_Inverted(true);
textObj.SetState_InvertedTTTextBorder(EDP.Utils.MilsToCoord(100));
textObj.SetState_Text("Text with True Type Property enabled.");
textObj.SetState_Size(EDP.Utils.MilsToCoord(200)); // sets the height of the text
board.AddPCBObject(textObj);
// Notify that the PCB object has been modified.
textObj.EndModify();
```

### Width

The width of the lines of the text's stroke font, in internal units (10,000 per mil).

```csharp
int GetState_Width();
void SetState_Width(int argWidth);
```

**Type:** `int` · **Access:** read/write

A new text object uses 10 mil.

### WordWrap

*No description yet.*

```csharp
bool GetState_WordWrap();
```

**Type:** `bool` · **Access:** read-only

The value is set to the value of `Multiline` whenever `Multiline` is assigned.

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [CanEditMultilineRectSize](#caneditmultilinerectsize) | `bool` |  |
| [ConvertToStrokeArray](#converttostrokearray) | [IPCB_StrokeArray](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_StrokeArray.md) | Converts the text into a series of line strokes. |
| [GetDesignatorDisplayString](#getdesignatordisplaystring) | `string` | Returns the designator string that the text displays. |
| [GetTrueTypeTextOutlineGeometricPolygon](#gettruetypetextoutlinegeometricpolygon) | [IPCB_GeometricPolygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_GeometricPolygon.md) | Returns the outline of the text as a geometric polygon. |
| [GetTrueTypeTextOutlineGeometricPolygon_1](#gettruetypetextoutlinegeometricpolygon_1) | [IPCB_GeometricPolygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_GeometricPolygon.md) | Returns the outline of a string drawn in the text's TrueType font, as a geometric polygon. |
| [InAutoDimension](#inautodimension) | `bool` | Returns whether the text belongs to an automatic dimension. |
| [IsComment](#iscomment) | `bool` | Returns whether the text is the comment of a component. |
| [IsDesignator](#isdesignator) | `bool` | Returns whether the text is the designator of a component. |
| [IsHidden_1](#ishidden_1) | `bool` | Returns whether the text is hidden. |
| [RotationHandle](#rotationhandle) | [CoordPoint](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/CoordPoint.md) | Returns the position of the text's rotation handle, in internal units (10,000 per mil). |

### CanEditMultilineRectSize

*No description yet.*

```csharp
bool CanEditMultilineRectSize();
```

**Returns:** `bool`

A new text object returns true.

### ConvertToStrokeArray

Converts the text into a series of line strokes.

```csharp
IPCB_StrokeArray ConvertToStrokeArray();
```

**Returns:** [IPCB_StrokeArray](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_StrokeArray.md)

Extension method of `IPCB_TextHelper` (`using PCB;`).

This is useful for using the text as standalone lines outside the PCB editor, for example in 3D modelling applications.

### GetDesignatorDisplayString

Returns the designator string that the text displays.

```csharp
string GetDesignatorDisplayString();
```

**Returns:** `string`

Returns an empty string when the text is not the designator of a component ([`IsDesignator`](#isdesignator)). When the board displays logical designators ([`IPCB_Board.DesignatorDisplayMode`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Board.md#designatordisplaymode) is `TDesignatorDisplayMode.eDesignatorDisplayMode_Logical`) and the component's [`IPCB_Component.SourceDesignator`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Component.md#sourcedesignator) is not empty, returns the source designator; otherwise returns the text.

### GetTrueTypeTextOutlineGeometricPolygon

Returns the outline of the text as a geometric polygon.

```csharp
IPCB_GeometricPolygon GetTrueTypeTextOutlineGeometricPolygon();
```

**Returns:** [IPCB_GeometricPolygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_GeometricPolygon.md)

Extension method of `IPCB_TextHelper` (`using PCB;`).

Returns the outline of the TrueType text or of the barcode; returns null when [`TextKind`](#textkind) is `TTextKind.eText_StrokeFont`.

### GetTrueTypeTextOutlineGeometricPolygon_1

Returns the outline of a string drawn in the text's TrueType font, as a geometric polygon.

```csharp
IPCB_GeometricPolygon GetTrueTypeTextOutlineGeometricPolygon_1(string argText);
```

| Parameter | Type | Passing | Description |
| --- | --- | --- | --- |
| `argText` | `string` | value | The string to outline. |

**Returns:** [IPCB_GeometricPolygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_GeometricPolygon.md)

Extension method of `IPCB_TextHelper` (`using PCB;`).

Returns null unless [`TextKind`](#textkind) is `TTextKind.eText_TrueTypeFont`.

### InAutoDimension

Returns whether the text belongs to an automatic dimension.

```csharp
bool InAutoDimension();
```

**Returns:** `bool`

Returns true when the text belongs to a dimension whose kind is not `TDimensionKind.eOriginalDimension`. Returns false when the text is not on a board or the board is still being loaded.

### IsComment

Returns whether the text is the comment of a component.

```csharp
bool IsComment();
```

**Returns:** `bool`

Returns false when the text is not on a board or the board is still being loaded. A component's comment is returned by [`IPCB_Component.Comment`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Component.md#comment).

### IsDesignator

Returns whether the text is the designator of a component.

```csharp
bool IsDesignator();
```

**Returns:** `bool`

Returns false when the text is not on a board or the board is still being loaded. A component's designator is returned by [`IPCB_Component.Name`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Component.md#name).

### IsHidden_1

Returns whether the text is hidden.

```csharp
bool IsHidden_1();
```

**Returns:** `bool`

Besides the cases in which any primitive is hidden ([`IsHidden`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#ishidden)), returns true for the designator of a component whose [`IPCB_Component.NameOn`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Component.md#nameon) is false and for the comment of a component whose [`IPCB_Component.CommentOn`](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Component.md#commenton) is false.

### RotationHandle

Returns the position of the text's rotation handle, in internal units (10,000 per mil).

```csharp
CoordPoint RotationHandle();
```

**Returns:** [CoordPoint](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/CoordPoint.md)

Extension method of `IPCB_TextHelper` (`using PCB;`).

The handle lies in the direction of `Rotation` from the text, turned by 180 degrees for mirrored text.

## Inherited members

- From [IPCB_RectangularPrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md): [IsRedundant](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#isredundant), [RotateAroundXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#rotatearoundxy), [Rotation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#rotation), [SetState_XSizeYSize](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#setstate_xsizeysize), [X1Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#x1location), [X2Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#x2location), [XLocation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#xlocation), [Y1Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#y1location), [Y2Location](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#y2location), [YLocation](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RectangularPrimitive.md#ylocation)
- From [IPCB_Primitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md): [AllowGlobalEdit](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#allowglobaledit), [BeginModify](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#beginmodify), [Board](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#board), [BoundingRectangle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#boundingrectangle), [BoundingRectangleChildren](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#boundingrectanglechildren), [BoundingRectangleForPainting](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#boundingrectangleforpainting), [BoundingRectangleForSelection](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#boundingrectangleforselection), [CancelModify](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#cancelmodify), [Component](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#component), [Coordinate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#coordinate), [DescriptorString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#descriptorstring), [DetailString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#detailstring), [Dimension](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#dimension), [DrawAsPreview](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#drawaspreview), [DRCError](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#drcerror), [Enabled](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled), [Enabled_Direct](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_direct), [Enabled_vComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vcomponent), [Enabled_vCoordinate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vcoordinate), [Enabled_vDimension](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vdimension), [Enabled_vNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vnet), [Enabled_vPolygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabled_vpolygon), [EnableDraw](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#enabledraw), [EndModify](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#endmodify), [Export_ToParameters](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#export_toparameters), [FlipXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#flipxy), [GraphicallyInvalidate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#graphicallyinvalidate), [Handle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#handle), [Identifier](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#identifier), [InBoard](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#inboard), [InComponent](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#incomponent), [InCoordinate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#incoordinate), [Index](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#index), [InDimension](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#indimension), [InNet](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#innet), [InPolygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#inpolygon), [InSelectionMemory](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#inselectionmemory), [IsAssyTestPoint_Bottom](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#isassytestpoint_bottom), [IsAssyTestPoint_Top](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#isassytestpoint_top), [IsElectricalPrim](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#iselectricalprim), [IsFreePrimitive](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#isfreeprimitive), [IsHidden](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#ishidden), [IsKeepout](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#iskeepout), [IsPreRoute](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#ispreroute), [IsSaveable](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#issaveable), [IsTenting](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istenting), [IsTenting_Bottom](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istenting_bottom), [IsTenting_Top](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istenting_top), [IsTestPoint_Bottom](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istestpoint_bottom), [IsTestPoint_Top](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#istestpoint_top), [Layer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#layer), [MiscFlag1](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#miscflag1), [MiscFlag2](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#miscflag2), [MiscFlag3](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#miscflag3), [Moveable](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#moveable), [MoveByXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#movebyxy), [MoveToXY](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#movetoxy), [Net](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#net), [ObjectID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#objectid), [ObjectIDString](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#objectidstring), [PadCacheRobotFlag](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#padcacherobotflag), [PasteMaskExpansion](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#pastemaskexpansion), [Polygon](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#polygon), [PolygonOutline](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#polygonoutline), [PowerPlaneClearance](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#powerplaneclearance), [PowerPlaneConnectStyle](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#powerplaneconnectstyle), [PowerPlaneReliefExpansion](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#powerplanereliefexpansion), [Preview](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#preview), [ReliefAirGap](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#reliefairgap), [ReliefConductorWidth](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#reliefconductorwidth), [ReliefEntries](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#reliefentries), [Replicate](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#replicate), [RequiredParamterSpace](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#requiredparamterspace), [RotateBy](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#rotateby), [Selected](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#selected), [SolderMaskExpansion](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#soldermaskexpansion), [SwapLayerPairs](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#swaplayerpairs), [TearDrop](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#teardrop), [UnionIndex](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#unionindex), [UniqueId](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#uniqueid), [UniqueID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#uniqueid-1), [Used](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#used), [UserRouted](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#userrouted), [V7Layer](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#v7layer), [ViewableObjectID](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Primitive.md#viewableobjectid)

## Returned by

[IPCB_AngularDimension.Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_AngularDimension.md#text), [IPCB_BaselineDimension.Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_BaselineDimension.md#text), [IPCB_BaselineDimension.Texts](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_BaselineDimension.md#texts), [IPCB_Component.Comment](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Component.md#comment), [IPCB_Component.Name](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Component.md#name), [IPCB_DatumDimension.Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_DatumDimension.md#text), [IPCB_DatumDimension.Texts](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_DatumDimension.md#texts), [IPCB_LeaderDimension.Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LeaderDimension.md#text), [IPCB_LinearDimension.Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_LinearDimension.md#text), [IPCB_MultilineText.Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_MultilineText.md#text), [IPCB_OriginalDimension.Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_OriginalDimension.md#text), [IPCB_RadialDimension.Text](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_RadialDimension.md#text)

## Accepted by

[IPCB_ContourMaker.MakeContour_7](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ContourMaker.md#makecontour_7), [IPCB_ContourMaker2.MakeContour_17](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_ContourMaker2.md#makecontour_17), [IPCB_Text3.CopyTo](https://altiumdeveloper.github.io/ad-sdk-docs/reference/pcb/IPCB_Text3.md#copyto)
