<?
// graphicsPDF testing
define('FPDF_FONTPATH', 'tfpdf_fonts/');
require_once(
'tfpdf.php');
require_once(
'GraphicsPDF.php');

$pdf = new GraphicsPDF('P', 'in', 'letter');
$pdf->SetDisplayMode('default');
$pdf->SetCompression(isset($_GET['debug'])); // so we can examine the output

$pdf->AddPage();
$pdf->SetFont('Helvetica', '', 12);
$pdf->Cell(0,0,'Text and Image Placement');

$pdf->Text(1.5, 1, 'Rotating Text');
$pdf->SetFont('Helvetica', '', 30);
$count = 6;
for (
$i = 1; $i <= $count; ++$i){
    
$pdf->SetTextColor(255*$i/$count);
    
$pdf->Text(2.125, 2.75, 'Hello, World', M_TAU*$i/$count); // M_TAU is defined in GraphicsPDF.php as 2 pi (one complete revolution)
}

$pdf->SetFont('Helvetica', '', 12);
$pdf->SetTextColor(0);
$pdf->Text(4.5, 1, 'Image (placed by top left corner)');
$pdf->Text(4.5, 1.2, ' vs. PlaceImage (placed by center)');
$pdf->Image(dirname(__FILE__).'/smiley.png', 6.375, 2.75);
$pdf->PlaceImage(dirname(__FILE__).'/smiley.png', 6.375, 2.75);
$pdf->SetDrawColor(125, 0, 0, 30);
$pdf->SetLineWidth(0.1);
$pdf->Line (6.25,2.625, 6.5,2.875);
$pdf->Line (6.25,2.875, 6.5,2.625);

$pdf->Text(.5, 6, 'Rotating Rect (around top left)');
$pdf->Text(.5, 6.2, 'Rotating Images (around center)');
$pdf->SetFillColor(255, 0, 0);
$pdf->Rect(2.125, 10.5, 4, 2, 'F', deg2rad(135));
$pdf->Arc(2.125, 10.5, .2);
$count = 3;
for (
$i = 0; $i < $count; ++$i){
    
$pdf->PlaceImage(dirname(__FILE__).'/smiley2.png', 2.125, 8.25, 0, 0, M_TAU*$i/$count);
}

$pdf->Text(6, 6, 'Path Operations');
$pdf->SetDrawColor(0, 255, 0);
$pdf->SetLineWidth(0.125);
$pdf->MoveTo(4.25, 5.5);
$pdf->LineTo(5.25, 6.5);
$pdf->CurveTo(6.25, 7.5, 6.5, 7.5, 7.5, 6.5);
$pdf->LineTo(8.5, 5.5);
$pdf->DrawPath();
$pdf->MoveTo(4.5, 8.5);
$pdf->CurveTo(4.5, 10.5, 7.5, 10.5, 7.5, 8.5);
$pdf->CurveTo(4.5, 8.5, 4.5, 10.5, 7.5, 10.5);
$pdf->CurveTo(7.5, 8.5, 4.5, 8.5, 4.5, 10.5);
$pdf->CurveTo(7.5, 10.5, 7.5, 8.5, 4.5, 8.5);
$pdf->ClosePath();
$pdf->DrawPath('DF');

$pdf->AddPage();
$pdf->Text(.5, 1, 'Wedges and Ellipses');
$pdf->SetFillColor(200);
$pdf->Arc(4.125, 2.75, 2, .75, 'F', M_TAU/12, M_TAU/3, 0);
$pdf->Arc(4.25, 2.5, 2, .75, 'F', M_TAU/12, 0, M_TAU/3);
$pdf->SetFillColor(255,0,0);
$pdf->Arc(2.125, 2.75, 1, NULL, 'F', 0, M_TAU/3, -M_TAU/3);
$pdf->SetFillColor(0,0,255);
$pdf->Arc(2.125, 2.75, 1, NULL, 'F', 0, -M_TAU/3, 0);
$pdf->SetFillColor(0,255, 0);
$pdf->Arc(2.375, 2.5, 1, NULL, 'F', 0, 0, M_TAU/3);

$pdf->Text(0.5, 4.25, 'Transparency in images and drawing');
$pdf->Image (dirname(__FILE__).'/stlouis.png', .5, 4.5);
$dice = imagecreatefrompng(dirname(__FILE__).'/dice.png');
$pdf->Image ($dice, 1, 5.5);
$gecko = imagecreatefrompng(dirname(__FILE__).'/shadowmaker-gecko.png');
$pdf->Image ($gecko, 4.25, 7.25);
$pdf->SetDrawColor (120, 120, 255, 60);
$pdf->SetFillColor (175, 238, 238, 80);
$pdf->Rect(6, 7.5, 2, 2, 'DF');

$pdf->AddPage();
$pdf->SetDrawColor (120, 120, 255);
$pdf->SetFillColor (175, 238, 238);
$pdf->SetLineWidth(0.01);
$size = 0.25;
for (
$row = 2; $row < 20; ++$row){
    for (
$col = 0; $col < ($row-1)/2; ++$col){
        
$pdf->Polygon(1+(2*$size+.1)*$col, $size+(2*$size+.1)*($row-2), $row, $size, NULL, 'DF', $col+1);
    }
}
for (
$row = 2; $row < 20; ++$row){
    for (
$col = 0; $col < $row/2; ++$col){
        
$pdf->Cloverleaf(7.5-(2*$size+.1)*$col, 2*$size+(2*$size+.1)*(19-$row), $row, $size, NULL, 'D', $col+1);
    }
}
$pdf->SetTextColor(0);
$pdf->Text(0.5, 6, 'Polygons and Cloverleafs', M_TAU/4);

// colors and dimensions from http://en.wikipedia.org/wiki/Flag_of_the_United_States
// a white five-pointed star
$pdf->OpenImage('star', 1, 1);
$pdf->SetFillColor(255, 255, 255); 
$pdf->Polygon(0.5, 0.5, 5, .5, NULL, 'F', 2, M_TAU/4);
$pdf->CloseImage();
// "Old Glory" blue field
$pdf->OpenImage('starfield', 0.76, 0.5385);
$pdf->SetFillColor(59.67, 59.415, 109.65);
$pdf->Rect(0, 0,  0.76, 0.5385, 'F');
for (
$row =0; $row < 9; ++$row){
    
$nstars = $row % 2 ? 5 : 6;
    
$start = $row % 2 ? 0.1266 : 0.0633;
    for (
$col = 0; $col < $nstars; ++$col){
        
$pdf->PlaceImage('star', $start+0.1266*$col, 0.0538*($row+1), 0.0616);
    }
}
$pdf->CloseImage();
$pdf->OpenImage('flag', 1.9, 1);
$pdf->SetFillColor(255, 255, 255);
$pdf->Rect(0, 0, 1.9, 1, 'F');
$pdf->SetFillColor(177.99, 33.66, 51.765); // Old Glory Red
for ($stripe = 0; $stripe < 13; $stripe += 2){
    
$pdf->Rect(0, 0.0769*$stripe, 1.9, 0.0769, 'F');
}
$pdf->Image('starfield', 0, 0, 0.76);
$pdf->CloseImage();
$pdf->AddPage();
$pdf->Cell(0, 1, 'Vector Graphics', 0, 1);
$pdf->Image('flag');
$pdf->PlaceImage('flag', 4, 1, 3, 0, deg2rad(30));
$pdf->PlaceImage('flag', 4, 3, 3, 0, deg2rad(-30));
$pdf->SetFillColor(0,0,0,60);
$pdf->Rect (4, 3, 2, 4, 'F');
$pdf->OpenImage('trefoil', 1.3, 1.3);
$pdf->SetLineWidth(0.1);
$pdf->SetDrawColor(171, 205, 239, 60);
$pdf->CloverLeaf(0.65, 0.65, 3, 0.5, null, 'D');
$pdf->CloseImage();
$pdf->PlaceImage('trefoil', 0.5, 7, 1, 1);
$pdf->PlaceImage('trefoil', 1, 7.25, 1, .5);
$pdf->PlaceImage('trefoil', 1.5, 6.5, 1, 1.5);
$pdf->PlaceImage('trefoil', 2, 6, 1, 1, M_TAU/6);
$pdf->PlaceImage('trefoil', 2.5, 5.5, 1, 1, M_TAU/3);
$pdf->PlaceImage('trefoil', 3, 5.5, 1, 1, -M_TAU/3);
$pdf->PlaceImage('trefoil', 3.5, 6, 1, 1, -M_TAU/6);
$pdf->PlaceImage('trefoil', 4, 6.5, 1, 1.5);
$pdf->PlaceImage('trefoil', 4.5, 7.25, 1, .5);
$pdf->PlaceImage('trefoil', 5, 7, 1, 1);
$pdf->Output();
?>