Идеята е даден текст и таблица да бъдат съхранени в pdf . За целта използвам fpdf (http://fpdf.org/) и всичко е наред, но една част от задачата е информацията която ще се вкарва да бъде HTML т.е. пример "<table><tr><td>test</td><td>test1</td></tr></table>" Така вместо да се създава pdf файла на по- ниско ниво се използва едно допълнито апи html2pdf -> http://html2pdf.spipu.net/ . Всичко супер, но реших да ползвам cyrillic text на cp1251 енкодинг и имаше проблем. Поиграх с html2pdf, но нищо не се получи тогава реших ръчно да си добавя кирилизирани фотнове. Преди да се добавят трябва да бъдат създадени като се ползва една тулка: ttf2pt1 пример "ttf2pt1 -a times.ttf times" и след това да вкарвате генерирания файл "times.afm" в DIR "makefont" и вътре в makefont.php изпълнявате създаването на фонта за html2pdf или пример "MakeFont('times.ttf','times.afm','cp1251');". След това се създават "times.php и times.z" като тези фонтове ги добавяте в DIR ../font/ . След това трябва да ги добавите ръчно и да ги използвате за поставената цел :)
Редактирам по- долния файл. Ръчно поставям:
Файл: html2pdf/html2pdf.class.php
Преди:
function AddFont($family, $style=", $file=")
{
$this->pdf->AddFont($family, $style, $file);
}
След:
function AddFont($family, $style=", $file=")
{
$this->pdf->AddFont($family, $style, $file);
$this->pdf->AddFont('times',",'times.php');
$this->pdf->AddFont('times','B','timesb.php');
$this->pdf->AddFont('times','I','timesi.php');
$this->pdf->AddFont('times','BI','timesbi.php');
}
Сега един html файл мога с един ред да го направя pdf и по- конкретно на енкодинг cp1251. Идеята е лесно и бързо създаване на отчети, генериране на фактури, договори и други документи.
Пример за html файл -> pdf:
<?php
echo "<table style='width:100%;'><tr><td style='width:50%'><img src='images/test/logo_tuv.png' align='left'></td><td style='width:50%'><img src='images/test/logo_nikosltd.png' align='right'></td></tr></table><div style='font-family:comic;'>Тест -1251 :)</div>";
$content = ob_get_clean();
require_once(dirname(__FILE__).'/include/html2pdf/html2pdf.class.php');
$html2pdf = new HTML2PDF('P','A4','en');
$html2pdf->AddFont('times',",'times.php');
$html2pdf->WriteHTML($content, isset($_GET['vuehtml']));
$html2pdf->Output();
?>
Пример: Имаше голяма заинтересованост за пример на тази публикация и затова ето го и него: Пример
PS: Междо другото докато цъках с това fpdf забелязах, че и Joomla го ползват (просто информативно).