Написание PDF с использованием PHP (PDFLib) - PullRequest
3 голосов
/ 21 сентября 2010

В настоящее время я пишу код для вывода PDF-файла на PHP с использованием PDFlib из http://www.pdflib.com/. Проблема в том, что все теги html также записываются в выходной файл. Как можно отменить все эти теги?

Вот мой пример кода.

$postVariable = $_POST;

$contentData = "";
foreach($postVariable as $key => $value){ 
    if(is_array($key)){
        foreach($key as $key1 => $value1){
           $contentData.= $key1 .": ". $value1."<nextline>";
        }
    }else{
        $contentData.= $key .": ". $value."<nextline>";
    } 
}

$testdata = nl2br($contentData);
$pdf = pdf_new();
// open a file
pdf_open_file($pdf, $_SERVER['DOCUMENT_ROOT']."cas".DIRECTORY_SEPARATOR."$filename.pdf");
// start a new page (A4)
pdf_begin_page($pdf, 595, 842);

// Locate Font Directory
$fontdir = "C:\WINDOWS\Fonts";
// Font Name Parameters
pdf_set_parameter($pdf, "FontOutline", "arialMyName=$fontdir\arial.ttf");
// Find Font
$arial = PDF_findfont($pdf,"arialMyName","host",0 );
// Set font size and font name
pdf_setfont($pdf, $arial, 10);

//$arial = pdf_findfont($pdf, "Arial", "host", 1);
//pdf_setfont($pdf, $arial, 10);
// print text
pdf_show_xy($pdf, "TO THE UNIT OWNER",50, 750); 
pdf_show_xy($pdf, "Test ext", 50,730);
pdf_show_xy($pdf, "test test", 50,715);
pdf_show_xy($pdf, $contentData, 50,700);
// end page
pdf_end_page($pdf);
// close and save file
pdf_close($pdf);

и пример вывода: ВЛАДЕЛЬЦУ БЛОКА Тестовый текст тестовый тест тип: квартира **** имя_армы: **** имя_компании: **** дата_даты: **** отправить: сохранить и скачать <</p>

Он игнорирует теги html и включает его в содержимое.

Существуют ли другие способы распечатки HTML в PDF с использованием библиотеки, которую я сейчас использую (PDFlib).

Спасибо.

С уважением, Resty

Ответы [ 3 ]

3 голосов
/ 21 сентября 2010

Я бы порекомендовал библиотеку TCPDF.Он может конвертировать ваш HTML в файл PDF, включая код CSS.Он поддерживает довольно много HTML-тегов и делает достойную работу.ОДНАКО из личного опыта, хотя с его помощью можно создавать высококачественные PDF-файлы, результаты не всегда на 100% ожидаемые.Возможно, потребуется немного доработать и поиграть, чтобы получить желаемый результат.

Если вы хотите удалить только HTML-теги, я думаю, вы могли бы взглянуть на strip_tags.Но я думаю, что это не совсем то, что вам нужно.

Наконец, в блоке появился действительно классный новичок - расширение PHP, использующее WebKit HTML и механизм рендеринга для создания PDF-файлов.Он называется расширением libwkhtmltox и может быть найден здесь .Это дает удивительные результаты.Например, посмотрите этот PDF-файл, который он сделал с домашней страницы New York Times - см. (http://www.2shared.com/document/kYuS_G7p/nytimes.html - нажмите «сохранить на моем компьютере» внизу).Этот вывод был сгенерирован без указания каких-либо дополнительных параметров.Исключительный.ОДНАКО, вам нужно запустить его как расширение PHP, и это может быть нетривиальной задачей.Поэтому я бы сказал: придерживайтесь библиотеки TCPDF.

2 голосов
/ 21 сентября 2010

Человек ... Я пытался сделать то же самое один раз.Работать с pdflib очень сложно.

Я нашел этот проект, размещенный на сайте кода Google.Проект заслужил 10 звезд из 5.

Он называется DOM PDF, , скачать его можно здесь .Вы можете создавать PDF-файлы из HTML-страниц с поддержкой CSS.Вы можете создавать PDF с менее чем 10 строками кода!

Посмотрите примеры , чтобы увидеть его в действии.

2 голосов
/ 21 сентября 2010

Вы не можете создавать PDF-контент из HTML, используя PDFLib.Хорошо, вы можете написать конвертер, но это огромная работа.

Я рекомендую использовать TCPDF , который поддерживает ввод HTML.

...