OpenXE/www/lib/pdf/rotation.php
2021-05-21 08:49:41 +02:00

62 lines
1.3 KiB
PHP

<?php
require('fpdi.php');
if(file_exists(__DIR__ . '/pdf-cmyk.php')){
unlink(__DIR__ . '/pdf-cmyk.php');
}
if(file_exists(__DIR__ . '/pdf-cmyk.src.php')){
unlink(__DIR__ . '/pdf-cmyk.src.php');
}
class PDF_Rotate extends fpdi
{
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();
}
}
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);
}
}