| |
Rotations
InformationsAuthor: Olivier License: Freeware
DescriptionThis script allows to perform a rotation around a given center.
The method to set a rotation is:
function 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
the 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(); } } ?>
|
ExampleHere'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 define('FPDF_FONTPATH', 'font/'); 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->AddPage(); $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.
DownloadZIP | TGZ
|