Zend Framework PDF пример для шрифтов Excel - PullRequest
1 голос
/ 07 июня 2010

Как я могу сделать что-то подобное с Zend_PDF:

У меня есть несколько столбцов A, B, C, D, E и после них у меня будет некоторая информация, например, excel.

А | Б | C | D

сс | дас | папа | DS

сс | дас | папа | DS

сс | дас | папа | DS

Как я могу создать что-то подобное с ZF_pdf? Я вытащу данные из БД.

1 Ответ

1 голос
/ 07 июня 2010

Это очень простой рабочий пример, который загружает данные из файла и создает из него PDF:

require_once 'Zend/Pdf.php';

$pdf = new Zend_Pdf();
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);

define('FONT_SIZE'      , 12);
define('MARGIN_LEFT'    , 40);
define('MARGIN_TOP'     , 40);
define('COL_WIDTH'      , 100);
define('COL_LEFT_MARGIN', 10);
define('COL_SEPARATOR'  , '|');
define('ROW_HEIGHT'     , 20);

$row = 1;
$x = MARGIN_LEFT;
$y = MARGIN_TOP;

$page->setFont($font, FONT_SIZE);

if (($handle = fopen('data.csv', 'r')) !== false) {
    while (($data = fgetcsv($handle, 1000, ",")) !== false) {
        $num = count($data);
        $row ++;
        for ($i = 0; $i < $num; $i++) {
            $page->drawText($data[$i], $x, $page->getHeight() - $y);
            $x += COL_WIDTH;
            $page->drawText(COL_SEPARATOR, $x, $page->getHeight() - $y);
            $x += COL_LEFT_MARGIN;
        }
        $x = MARGIN_LEFT;
        $y += ROW_HEIGHT;
    }
    fclose($handle);
}
$pdf->pages[] = $page;
$pdf->save('data.pdf', true);

Если CSV-файл содержит произвольные данные, например ::1004

"A","B","C","D"
"asd","daasd","sdfs","dfsdf"
"asd","daasd","sdfs","dfsdf"
"asd","daasd","sdfs","dfsdf"

Конечно, источником данных может быть что угодно. Обратите внимание, что этот пример не может работать с большими строками, несколькими страницами и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...