<?php
//===================================================================================================
// this is the php file which creates the readme.pdf file, this is not seriously
// suggested as a good way to create such a file, nor a great example of prose,
// but hopefully it will be useful
//
// adding ?d=1 to the url calling this will cause the pdf code itself to ve echoed to the
// browser, this is quite useful for debugging purposes.
// there is no option to save directly to a file here, but this would be trivial to implement.
//
// note that this file comprisises both the demo code, and the generator of the pdf documentation
//
//===================================================================================================
// don't want any warnings turning up in the pdf code if the server is set to 'anal' mode.
error_reporting(7);
include 'class.ezpdf.php';
// I am in NZ, so will design my page for A4 paper.. but don't get me started on that.
// (defaults to legal)
// this code has been modified to use ezpdf.
$pdf = new Cezpdf('a4','portrait');
$pdf -> ezSetMargins(50,70,50,50);
// put a border round all the pages
$all = $pdf->openObject();
$pdf->rectangle(20,40,558,782);
$pdf->closeObject();
// note that object can be told to appear on just odd or even pages by changing 'all' to 'odd'
// or 'even'.
$pdf->addObject($all,'all');
$pdf->ezSetDy(-100);
// select a font
$pdf->selectFont('./fonts/Helvetica');
$pdf->ezText("PHP Pdf Creation\n",30,array('justification'=>'centre'));
$pdf->ezText("Module-free creation of Pdf documents\nfrom within PHP\n",20,array('justification'=>'centre'));
$pdf->ezText("developed by R&OS Ltd\nhttp://www.ros.co.nz/pdf\n\nversion 0.05",18,array('justification'=>'centre'));
$pdf->ezSetDy(-150);
// modified to use the local file if it can
if (file_exists('ros.jpg')){
$pdf->addJpegFromFile('ros.jpg',199,$pdf->y-100,200,0);
} else {
// comment out these two lines if you do not have GD jpeg support
// I couldn't quickly see a way to test for this support from the code.
// you could also copy the file from the locatioin shown and put it in the directory, then
// the code above which doesn't use GD will be activated.
$img = ImageCreatefromjpeg('http://www.ros.co.nz/pdf/ros.jpg');
$pdf-> addImage($img,199,$pdf->y-100,200,0);
}
//-----------------------------------------------------------
// load up the document content
$data=file('./data.txt');
$pdf->ezNewPage();
$pdf->ezStartPageNumbers(500,30,10,'','',1);
$size=12;
$height = $pdf->getFontHeight($size);
foreach ($data as $line){
// go through each line, showing it as required, if it is surrounded by '<>' then
// assume that it is a title
$line=chop($line);
if ($line[0]=='#'){
// comment, or new page request
if ($line=='#NP'){
$pdf->ezNewPage();
}
} else if (($line[1]=='<' || $line[0]=='<') && $line[strlen($line)-1]=='>') {
// then this is a title
switch($line[0]){
case '1':
$pdf->ezText(substr($line,2,strlen($line)-3),26,array('justification'=>'centre'));
break;
default:
$pdf->ezText(substr($line,2,strlen($line)-3),18,array('justification'=>'left'));
break;
}
} else {
// then this is just text
// the ezpdf function will take care of all of the wrapping etc.
$pdf->ezText($line,$size,array('justification'=>'full'));
}
}
/*
// show all the fonts that we have
$pdf->newPage();
$y=$top;
addTitle($pdf,$y,30,'Font Sampler (basic fonts)');
$fonts=array(
'Courier','Courier-Bold','Courier-BoldOblique','Courier-Oblique'
,'Helvetica','Helvetica-Bold','Helvetica-BoldOblique','Helvetica-Oblique'
,'Times-Roman','Times-Bold','Times-BoldItalic','Times-Italic'
);
foreach($fonts as $font){
$pdf->selectFont('./fonts/'.$font);
addText($pdf,$y,18,$font);
addText($pdf,$y,18,'abcdefghijklmnopqrstuvwxyz');
addText($pdf,$y,10,'');
}
*/
if ($d){
$pdfcode = $pdf->ezOutput(1);
$pdfcode = str_replace("\n","\n<br>",htmlspecialchars($pdfcode));
echo '<html><body>';
echo trim($pdfcode);
echo '</body></html>';
} else {
$pdf->ezStream();
}
?>
|