Rotations

Author:Olivier

## Description

This script allows to perform a rotation around a given center.
The method to set a rotation is:

`Rotate(float angle [, float x [, float y]])`

`angle`: angle in degrees.
`x`: abscissa of the rotation center. Default value: current position.
`y`: ordinate of the rotation center. Default value: current position.

The rotation affects all elements which are printed after the method call (with the exception of clickable areas).

Remarks:

- Only the display is altered. The GetX() and GetY() methods are not affected, nor the automatic page break mechanism.
- Rotation is not kept from page to page. Each page begins with a null rotation.

## Source

``````<?php
require('fpdf.php');

class PDF_Rotate extends FPDF
{
var \$angle=0;

function Rotate(\$angle, \$x=-1, \$y=-1)
{
if(\$x==-1)
\$x=\$this->x;
if(\$y==-1)
\$y=\$this->y;
if(\$this->angle!=0)
\$this->_out('Q');
\$this->angle=\$angle;
if(\$angle!=0)
{
\$angle*=M_PI/180;
\$c=cos(\$angle);
\$s=sin(\$angle);
\$cx=\$x*\$this->k;
\$cy=(\$this->h-\$y)*\$this->k;
\$this->_out(sprintf('q %.5F %.5F %.5F %.5F %.2F %.2F cm 1 0 0 1 %.2F %.2F cm', \$c, \$s, -\$s, \$c, \$cx, \$cy, -\$cx, -\$cy));
}
}

function _endpage()
{
if(\$this->angle!=0)
{
\$this->angle=0;
\$this->_out('Q');
}
parent::_endpage();
}
}
?>``````

## Example

Here's an example which defines the utility methods RotatedText() and RotatedImage() and uses them to print a text and an image rotated to 45Â°.
``````<?php
require('rotation.php');

class PDF extends PDF_Rotate
{
function RotatedText(\$x, \$y, \$txt, \$angle)
{
//Text rotated around its origin
\$this->Rotate(\$angle, \$x, \$y);
\$this->Text(\$x, \$y, \$txt);
\$this->Rotate(0);
}

function RotatedImage(\$file, \$x, \$y, \$w, \$h, \$angle)
{
//Image rotated around its upper-left corner
\$this->Rotate(\$angle, \$x, \$y);
\$this->Image(\$file, \$x, \$y, \$w, \$h);
\$this->Rotate(0);
}
}

\$pdf=new PDF();
\$pdf->SetFont('Arial', '', 20);
\$pdf->RotatedImage('circle.png', 85, 60, 40, 16, 45);
\$pdf->RotatedText(100, 60, 'Hello!', 45);
\$pdf->Output();
?>``````
View the result here.

ZIP | TGZ
Es ist ein Fehler aufgetreten

# Es ist ein Fehler aufgetreten

## Was ist das Problem?

Bei der Ausführung des Skriptes ist ein Fehler aufgetreten. Irgendetwas funktioniert nicht richtig.

## Wie kann ich das Problem lösen?

Öffnen Sie die aktuelle Log-Datei im Ordner `var/logs` bzw. `app/logs` und suchen Sie die zugehörige Fehlermeldung (normalerweise die letzte).

### Weitere Informationen

Die Skriptausführung wurde gestoppt, weil irgendetwas nicht korrekt funktioniert. Die eigentliche Fehlermeldung wird aus Sicherheitsgründen hinter dieser Meldung verborgen und findet sich in der aktuellen Log-Datei (siehe oben). Wenn Sie die Fehlermeldung nicht verstehen oder nicht wissen, wie das Problem zu beheben ist, durchsuchen Sie die Contao-FAQs oder besuchen Sie die Contao-Supportseite.