---
name: "CAM::PDF::GS"
section: "3pm"
platform: "linux"
package: "libcam-pdf-perl"
version: "1.60-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/CAM::PDF::GS"
---

# CAM::PDF::GS(3pm)

PDF graphic state

## NAME

CAM::PDF::GS - PDF graphic state

## LICENSE

See CAM::PDF.

## SYNOPSIS

```
    use CAM::PDF;
    my $pdf = CAM::PDF->new($filename);
    my $contentTree = $pdf->getPageContentTree(4);
    my $gs = $contentTree->computeGS();
```

## DESCRIPTION

This class is used to represent the graphic state at a point in the rendering flow of a PDF page.  Much of the functionality is actually based in the parent class, CAM::PDF::GS::NoText.

Subclasses that want to do something useful with text should override the **renderText()** method.

## CONVERSION FUNCTIONS

- $self-\>getCoords($node)

  Computes device coordinates for the specified node.  This implementation handles text-printing nodes, and hands all other types to the superclass.

- $self-\>textToUser($x, $y)

  Convert text coordinates (`"Tm"`) to user coordinates.  Returns the converted X and Y.

- $self-\>textToDevice($x, $y)

  Convert text coordinates (`"Tm"`) to device coordinates.  Returns the converted X and Y.

- $self-\>textLineToUser($x, $y)

  Convert text coordinates (`"Tlm"`) to user coordinates.  Returns the converted X and Y.

- $self-\>textLineToDevice($x, $y)

  Convert text coordinates (`"Tlm"`) to device coordinates. Returns the converted X and Y.

- $self-\>renderText($string, $width)

  A general method for rendering strings, from `"Tj"` or `"TJ"`.  This is a no-op, but subclasses may override.

- $self-\>Tadvance($width)

  Move the text cursor.

## DATA FUNCTIONS

- $self-\>**BT()**

  - $self-\>Tf($fontname, $fontsize)

  - $self-\>**Tstar()**

  - $self-\>Tz($scale)

  - $self-\>Td($x, $y)

  - $self-\>TD($x, $y)

  - $self-\>Tj($string)

  - $self-\>TJ($arrayref)

  - $self-\>quote($string)

  - $self-\>doublequote($tw, $tc, $string)

  - $self-\>Tm($m1, $m2, $m3, $m4, $m5, $m6)

  ## AUTHOR

See CAM::PDF
