Location: PHPKode > scripts > FAPDF > example1.php
<?php
require_once('config/lang/fa.php');
include_once('persian_log2vis1/persian_log2vis.php');
require_once('fapdf.php');
function write_fa_text($pdfObj,$text,$new_line=true){
	$pdfObj->SetDirection("rtl");
	$pdfObj->SetFont("tahoma", "", 7);
	persian_log2vis($text);
	$pdfObj->Write(8,$text);
	if($new_line)
		$pdfObj->Ln();
}
function write_fa_html($pdfObj,$html){
	$pdfObj->SetDirection("rtl");
	$pdfObj->SetFont("tahoma", "", 7);
	$pdfObj->WriteHTML_FA($html);
}
function write_code($pdfObj,$code,$new_line=true){
	$pdfObj->SetDirection("ltr");
	$pdfObj->SetFont("vera",8);
	$pdfObj->Write(5,$code);
	if($new_line)
		$pdfObj->Ln();
}
$headerHTML = "<img src=\"images/1.JPG\"/>";
$pdf = new FAPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); 
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor(PDF_AUTHOR);
$pdf->SetTitle($doc_title);
$pdf->SetSubject($doc_subject);
$pdf->SetKeywords($doc_keywords);


$html = "<img src=\"images/logo.jpg\" width=\"40\" /><a href=\"http://www.iranphp.net\">IranPHP.net</a>";
$pdf->SetHeaderHTML($html);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$pdf->SetImageScale(PDF_IMAGE_SCALE_RATIO); //set image scale factor

$pdf->SetHeaderFont(Array(PDF_FONT_NAME_MAIN, '', 6));
$pdf->SetHeaderTextColor(120,120,120);
$pdf->SetFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$pdf->SetLanguageArray($l);

$pdf->SetHeaderDIR('ltr');
$pdf->AliasNbPages();
$pdf->SetPrintHeader(true);
$pdf->SetPrintFooter(true);
$pdf->AddPage();

$pdf->SetFont("tahoma", "Bb", 12);
$header = "Smarty یک Templating Engine برای PHP";
persian_log2vis($header);
$pdf->Write(8,$header);
$pdf->Ln();

$pdf->SetFont("tahoma", "", 8);
$body = "مقدمه : چرا از Template استفاده کنیم ؟<BR>در یک جمله می 
توان گفت برای جدا کردن منطق برنامه از نحوه ارائه!<BR>با استفاده از یک Templating 
Engine می توان به این هدف درست یافت به ترتیبی که برنامه نویس در گیر ارائه و طراح 
رابط کاربر درگیر کار برنامه نویس نشوند و با یک زبان مشترک باهم تعامل خواند داشت. 
به این ترتیب برنامه نویس خیلی راح می تواند منطق برنامهرا عوض کند بدون اینکه در 
گیر ارائه شود و طراح نیز می تواند بدون کمک برنامه نویس شکل و شمایل یک سایت را 
کاملاً عوض کند.<BR>این چند جمله باید تا حدی برای شما روشن کرده باشد که با 
استفاده از این روش تا چه حد انعطاف در کار بوجود می آید. جالب نیست؟!<BR>تعداد 
زیادی Templating Engine برای PHP وجود دارد از کلاسهای PEAR گرفته تا Smarty و 
بسیاری ابزار های دیگر، ولی با توجه به موضوع این مقاله از دیگر ابزار ها صرف نظر 
کرده و به Smarty(http://smarty.php.net) می پردازیم .<BR>Smarty از PHP و Zend 
Engine استفاده می کند و با استفاده از آن، برنامه ها را با کمترین سربار نسبت به 
حالتی که از Template استفاده نشده باشد اجرا می شوند چون Smarty یک بار الگو را 
کامپایل کرده و تا وقتی که الگو تغییر پیدا نکد از نسخه کامپایل شده استفاده می 
نماید. برای بالا بردن کارایی امکانات caching هم دارد. <BR>Smarty چگونه کار 
می کند ؟<BR>Smarty بصورت شی گرا طراحی شده و عمل می کند پس برای استفاده از آن 
باید یک instance از آن ایجاد کنیم :";
write_fa_html($pdf,$body);

$code = '<?php
require_once("Smarty.class.php"); // use absolute path here, if necessary 
$smarty = new Smarty;
?>';
write_code($pdf,$code);

$body = 'Smarty بصورت پیش فرض در همان شاخه ای که صدا می شود دنبال الگو می گردد ولی بنا به دلایل امنیتی الگوها نباید در شاخه ای که از طریق وب قابل دسترسی هستند قرار گیرند برای معرفی مسیر دایرکتوریهای Smarty به شکل زیر عمل می کنیم :';
write_fa_text($pdf,$body);


$code = '$smarty->template_dir = "/var/www/templates/app1/template/"; 
$smarty->compile_dir = "/var/www/templates/app1/compile/"; 
$smarty->config_dir = "/var/www/templates/app1/config/"; 
$smarty->cache_dir = "/var/www/templates/app1/cache/";';

write_code($pdf,$code);

$pdf->SetDirection("rtl");
$pdf->Image("images/iranphp-logo.png",$pdf->GetX(),$pdf->GetY());
$pdf->Image("images/Zend_logo_small.png",$pdf->GetX(),$pdf->GetY());

$pdf->Ln();
$pdf->Ln();
$pdf->Ln();
$pdf->SetDirection("ltr");
$pdf->Image("images/iranphp-logo.png",$pdf->GetX(),$pdf->GetY());
$pdf->Image("images/Zend_logo_small.png",$pdf->GetX(),$pdf->GetY());

$pdf->AddPage();
$html="اهداف اين کلاس:<ol><li>برطرف کردن مشکل فارسي نويسي البته تا حدودي</li>
	<li>اضافه شدن امکان راست به چب و چپ به راست نويسي </li>
	<li>نوشتن متنهايي با فرمت html و فارسي</li>
	</ol>";
write_fa_html($pdf,$html);

$htmlcontent = "<h1>تیتر 1</h1><h2>تیتر 2</h2><h3>تیتر 3</h3><h4>تیتر 4</h4><h5>تیتر 5</h5><h6>تیتر 6</h6>لیست مرتب :<br /><ol><li><b>متن درشت</b></li><li><i>متن مورب</i></li><li><u>متن زیر خط دار</u></li><li><a href=\"http://www.tecnick.com\">لینک به http://www.iranphp.net</a></li><li>آزمایش شکستن خط<br />خط دوم<br />خط سوم</li><li><font size=\"+3\">فونت + 3</font></li><li><small>متن کوچک</small></li><li>متن نرمال <sub>زیرنویس</sub> <sup>بالانویس</sup></li></ol>
<br/>
لیست نامرتب
<ul><li><b>متن درشت</b></li><li><i>متن مورب</i></li><li><u>متن زیر خط دار</u></li><li><a href=\"http://www.tecnick.com\">لینک به http://www.iranphp.net</a></li><li>آزمایش شکستن خط<br />خط دوم<br />خط سوم</li><li><font size=\"+3\">فونت + 3</font></li><li><small>متن کوچک</small></li><li>متن نرمال <sub>زیرنویس</sub> <sup>بالانویس</sup></li></ul><hr />
<br/>
";
write_fa_html($pdf,$htmlcontent);

$htmlcontent = "<h1>heading 1</h1><h2>heading 2</h2><h3>heading 3</h3><h4>heading 4</h4><h5>heading 5</h5>
<h6>heading 6</h6>ordered list:<br /><ol><li><b>bold text</b></li>
<li><i>italic text</i></li><li><u>underlined text</u></li><li>
<a href=\"http://www.Iranphp.net\">link to http://www.Iranphp.net</a></li>
<li>test break<br />second line<br />third line</li><li><font size=\"+3\">font + 3</font></li>
<li><small>small text</small></li><li>normal <sub>subscript</sub> <sup>superscript</sup></li></ul>";
$pdf->SetDirection("ltr");
$pdf->WriteHTML($htmlcontent);
$pdf->Ln();

$html="موفق باشید<br/><a href=\"mailto:hide@address.com\">علیرضا مسکین ملک</a><br/>";
write_fa_html($pdf,$html);


$pdf->Output();
?>
Return current item: FAPDF