Files
docx-js/docs/usage/tab-stops.md

122 lines
3.0 KiB
Markdown
Raw Normal View History

2018-08-04 03:28:27 +01:00
# Tab Stops
> Tab stops are useful, if you are unclear of what they are, [here is a link explaining](https://en.wikipedia.org/wiki/Tab_stop). It enables side by side text which is nicely laid out without the need for tables, or constantly pressing space bar.
!> **Note**: The unit of measurement for a tab stop is in [DXA](https://stackoverflow.com/questions/14360183/default-wordml-unit-measurement-pixel-or-point-or-inches)
2018-08-04 03:28:27 +01:00
![Word 2013 Tabs](https://support.content.office.net/en-us/media/d75ca75d-9fe9-4d46-9a8b-4534c13acbc5.png "Word 2013 Tab Stops")
2018-08-04 03:28:27 +01:00
Simply declare the tab stops on the paragraph, as shown below. Use the tab character `\t` to indicate the tab position within the `text` property of a `TextRun`. Adding multiple `tabStops` will mean you can add additional `\t` characters until the desired `tabStop` is selected. Example is shown below.
2018-08-04 03:28:27 +01:00
## Example
```ts
const paragraph = new Paragraph({
2021-07-27 22:16:21 -07:00
children: [new TextRun({ text: "Hey everyone", bold: true}), new TextRun("\t11th November 1999")],
2019-10-09 20:56:31 +01:00
tabStops: [
{
type: TabStopType.RIGHT,
position: TabStopPosition.MAX,
},
2019-10-09 20:56:31 +01:00
],
});
2018-08-04 03:28:27 +01:00
```
The example above will create a left aligned text, and a right aligned text on the same line. The laymans approach to this problem would be to either use text boxes or tables. Not ideal!
2018-08-04 03:28:27 +01:00
```ts
const paragraph = new Paragraph({
children: [new TextRun("\t\tSecond tab stop here I come!")],
2019-10-09 20:56:31 +01:00
tabStops: [
{
type: TabStopType.RIGHT,
position: TabStopPosition.MAX,
},
2019-10-09 20:56:31 +01:00
{
type: TabStopType.LEFT,
position: 1000,
},
2019-10-09 20:56:31 +01:00
],
});
2018-08-04 03:28:27 +01:00
```
The above shows the use of two tab stops, and how to select/use it.
2019-10-09 20:56:31 +01:00
You can add multiple tab stops of the same `type` too.
```ts
const paragraph = new Paragraph({
children: [new TextRun("Multiple \ttab \tstops!")],
2019-10-09 20:56:31 +01:00
tabStops: [
{
type: TabStopType.RIGHT,
position: TabStopPosition.MAX,
},
{
type: TabStopType.RIGHT,
position: 1000,
},
],
});
```
2018-08-04 03:28:27 +01:00
## Left Tab Stop
```ts
const paragraph = new Paragraph({
2019-10-09 20:56:31 +01:00
tabStops: [
{
type: TabStopType.LEFT,
position: 2268,
},
2019-10-09 20:56:31 +01:00
],
});
2018-08-04 03:28:27 +01:00
```
2018-08-04 03:28:27 +01:00
2268 is the distance from the left side.
## Center Tab Stop
```ts
const paragraph = new Paragraph({
2019-10-09 20:56:31 +01:00
tabStops: [
{
type: TabStopType.CENTER,
position: 2268,
},
2019-10-09 20:56:31 +01:00
],
});
2018-08-04 03:28:27 +01:00
```
2268 is the distance from the center.
2018-08-04 03:28:27 +01:00
## Right Tab Stop
```ts
const paragraph = new Paragraph({
2019-10-09 20:56:31 +01:00
tabStops: [
{
type: TabStopType.RIGHT,
position: 2268,
},
2019-10-09 20:56:31 +01:00
],
});
2018-08-04 03:28:27 +01:00
```
2021-07-09 15:28:22 +08:00
2268 is the distance from the left side.
2018-08-04 03:28:27 +01:00
## Max Right Tab Stop
```ts
const paragraph = new Paragraph({
2019-10-09 20:56:31 +01:00
tabStops: [
{
type: TabStopType.RIGHT,
position: TabStopPosition.MAX,
},
2019-10-09 20:56:31 +01:00
],
});
2018-08-04 03:28:27 +01:00
```
2018-08-04 03:28:27 +01:00
This will create a tab stop on the very edge of the right hand side. Handy for right aligning and left aligning text on the same line.