Text rotations

This extension allows to print rotated and sheared (i.e. distorted like in italic) text

Informations

Author: Pivkin Vladimir
License: FPDF

Description

This extension allows to print rotated and sheared (i.e. distorted like in italic) text.

TextWithDirection(float x, float y, string txt [, string direction])

x: abscissa
y: ordinate
txt: text string
direction: one of the following values (R by default):
  • R (Right): Left to Right
  • U (Up): Bottom to Top
  • D (Down): Top To Bottom
  • L (Left): Right to Left
TextWithRotation(float x, float y, string txt, float txt_angle [, float font_angle])

x: abscissa
y: ordinate
txt: text string
txt_angle: angle of the text
font_angle: 0 by default)

Source

<?php require('fpdf.php'); class RPDF extends FPDF { function TextWithDirection($x, $y, $txt, $direction='R') { if ($direction=='R') $s=sprintf('BT %.2F %.2F %.2F %.2F %.2F %.2F Tm (%s) Tj ET', 1, 0, 0, 1, $x*$this->k, ($this->h-$y)*$this->k, $this->_escape($txt)); elseif ($direction=='L') $s=sprintf('BT %.2F %.2F %.2F %.2F %.2F %.2F Tm (%s) Tj ET', -1, 0, 0, -1, $x*$this->k, ($this->h-$y)*$this->k, $this->_escape($txt)); elseif ($direction=='U') $s=sprintf('BT %.2F %.2F %.2F %.2F %.2F %.2F Tm (%s) Tj ET', 0, 1, -1, 0, $x*$this->k, ($this->h-$y)*$this->k, $this->_escape($txt)); elseif ($direction=='D') $s=sprintf('BT %.2F %.2F %.2F %.2F %.2F %.2F Tm (%s) Tj ET', 0, -1, 1, 0, $x*$this->k, ($this->h-$y)*$this->k, $this->_escape($txt)); else $s=sprintf('BT %.2F %.2F Td (%s) Tj ET', $x*$this->k, ($this->h-$y)*$this->k, $this->_escape($txt)); if ($this->ColorFlag) $s='q '.$this->TextColor.' '.$s.' Q'; $this->_out($s); } function TextWithRotation($x, $y, $txt, $txt_angle, $font_angle=0) { $font_angle+=90+$txt_angle; $txt_angle*=M_PI/180; $font_angle*=M_PI/180; $txt_dx=cos($txt_angle); $txt_dy=sin($txt_angle); $font_dx=cos($font_angle); $font_dy=sin($font_angle); $s=sprintf('BT %.2F %.2F %.2F %.2F %.2F %.2F Tm (%s) Tj ET', $txt_dx, $txt_dy, $font_dx, $font_dy, $x*$this->k, ($this->h-$y)*$this->k, $this->_escape($txt)); if ($this->ColorFlag) $s='q '.$this->TextColor.' '.$s.' Q'; $this->_out($s); } } ?>

Example

<?php require('rpdf.php'); $pdf=new RPDF(); $pdf->AddPage(); $pdf->SetFont('Arial', '', 40); $pdf->TextWithRotation(50, 65, 'Hello', 45, -45); $pdf->SetFontSize(30); $pdf->TextWithDirection(110, 50, 'world!', 'L'); $pdf->TextWithDirection(110, 50, 'world!', 'U'); $pdf->TextWithDirection(110, 50, 'world!', 'R'); $pdf->TextWithDirection(110, 50, 'world!', 'D'); $pdf->Output(); ?>
View the result here.

Download

ZIP | TGZ

Quelle

http://www.fpdf.org/en/script/script31.php, zuletzt abgerufen 01.10.2016 22:55