Примеры использования

Большинство функций достаточно просты в использовании. Самой сложной частью, вероятно, является создание первого PDF-файла. Следующий пример должен помочь начать работу. Пример разработан для PHP 4 и создаёт файл hello.pdf с одной страницей. При этом наполняется содержимое документа, загружается шрифт Helvetica-Bold и создается текст "Hello world! (says PHP)".

Пример #1 Пример PDFlib на PHP 4

<?php
$p 
PDF_new();

/*  Создание нового PDF-файла; указание имени PDF-файла для размещения на диске */
if (PDF_begin_document($p"""") == 0) {
    die(
"Ошибка: " PDF_get_errmsg($p));
}

PDF_set_info($p"Creator""hello.php");
PDF_set_info($p"Author""Rainer Schaaf");
PDF_set_info($p"Title""Hello world (PHP)!");

PDF_begin_page_ext($p595842"");

$font PDF_load_font($p"Helvetica-Bold""winansi""");

PDF_setfont($p$font24.0);
PDF_set_text_pos($p50700);
PDF_show($p"Hello world!");
PDF_continue_text($p"(says PHP)");
PDF_end_page_ext($p"");

PDF_end_document($p"");

$buf PDF_get_buffer($p);
$len strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print 
$buf;

PDF_delete($p);
?>

Следующий пример показывает использование PDFlib в PHP 5. Он использует новые обработки исключений и инкапсуляцию, доступные в PHP 5. Он создаёт файл hello.pdf с одной страницей. Пример определяет некоторое содержимое документа, загружает шрифт Helvetica-Bold и выводит текст "Hello world! (says PHP)".

Пример #2 Пример PDFlib на PHP 5

<?php

try {
    
$p = new PDFlib();

    
/*  Создание нового PDF-файла с указанием имени PDF-файла на диске */
    
if ($p->begin_document("""") == 0) {
        die(
"Ошибка: " $p->get_errmsg());
    }

    
$p->set_info("Creator""hello.php");
    
$p->set_info("Author""Rainer Schaaf");
    
$p->set_info("Title""Hello world (PHP)!");

    
$p->begin_page_ext(595842"");

    
$font $p->load_font("Helvetica-Bold""winansi""");

    
$p->setfont($font24.0);
    
$p->set_text_pos(50700);
    
$p->show("Hello world!");
    
$p->continue_text("(says PHP)");
    
$p->end_page_ext("");

    
$p->end_document("");

    
$buf $p->get_buffer();
    
$len strlen($buf);

    
header("Content-type: application/pdf");
    
header("Content-Length: $len");
    
header("Content-Disposition: inline; filename=hello.pdf");
    print 
$buf;
}
catch (
PDFlibException $e) {
    die(
"Произошла ошибка PDFlib в примере hello:\n" .
    
"[" $e->get_errnum() . "] " $e->get_apiname() . ": " .
    
$e->get_errmsg() . "\n");
}
catch (
Exception $e) {
    die(
$e);
}
$p 0;
?>

add a note add a note

User Contributed Notes 1 note

up
1
matt at kynx dot org
12 years ago
Be careful with your Content-Length if you're using multi-byte function overloading (http://www.php.net/manual/en/mbstring.overload.php). You will want to do:

<?php
$len
= mb_strlen($buf, 'ASCII');
?>

Otherwise your PDF will be truncated and unreadable. Just cost me a sunny afternoon :-/
To Top