Генерация PDF с помощью php - PullRequest
0 голосов
/ 29 июля 2011

У меня есть код, который генерирует PDF для меня. Я использую FPDF для генерации PDF. Иногда он выдает пут, но иногда он ведет себя странно и создает PDF с плохим форматом, поэтому он не открывается ни в одном приложении для чтения PDF.

к тому же, когда он дает мне плохой формат, размер pdf резко увеличивается ..

Кто-нибудь может подсказать, что не так с особыми случаями? ..

вот код ..

$pdf_Str = "<table border='1'>
      <tr bgcolor=\"#666666\">
          <td>Name</td>
          <td>Number</td>
          <td>Adjusted Amount</td>
          <td>Invoice Date</td>
          <td>Transaction Date</td>
          <td>Amount</td>
          <td>Balance</td>
          <td>Record Type</td>
          <td>Session</td>
          <td>Course</td>
    </tr>";
 foreach($data as $row){
   $pdf_Str .="<tr>
        <td>".$row['student_name']."</td>
        <td>".$row['invoiceNumber']."</td>
        <td>".$row['invoiceAdjustedAmount']."</td>
        <td>".($row['invoiceDate']!=''?$row['invoiceDate']:'&nbsp;')."</td>
        <td>".($row['TransactionDate']!=''?$row['TransactionDate']:'&nbsp;')."</td>             
        <td>".($row['invoiceAmount']!=''?$row['invoiceAmount']:'&nbsp;')."</td>
        <td>".($row['invoiceBalance']!=''?$row['invoiceAmount']:'&nbsp;')."</td>
            <td>".($row['recordType']!=''?$row['recordType']:'&nbsp;')."</td>
        <td>".$row['sessionName']."</td>
        <td>".($row['catalogName']!=''?$row['catalogName']:'&nbsp;')."</td>
    </tr>";
    }
    $pdf_Str .='</table>';  
    $p = new PDFTable();
    $p->setfont('times','',12);
    $p->htmltable($pdf_Str);//
    $p->output("student_info.pdf",'I'); 

Ответы [ 3 ]

2 голосов
/ 29 июля 2011

Вы не можете создать таблицу в PHP.Вы должны использовать встроенную функцию fpdf, чтобы сделать это.

См. Это: создать таблицу в pdf с данными переноса, используя fpdf в php

, а также проверить этоэто может помочь тебе.

http://www.elated.com/articles/create-nice-looking-pdfs-php-fpdf/

1 голос
/ 29 июля 2011

Насколько я помню, FPDF не позволяет конвертировать html-> pdf. Вам нужно использовать свои собственные функции (Cell (), MultyCell () и т. Д.). Но вы можете использовать библиотеку mPDF Это действительно здорово и очень просто в использовании. Он может конвертировать HTML + CSS (!) -> PDF. И это справляется с этой работой потрясающе. Я рекомендую эту библиотеку.

Надеюсь, это будет полезно.

0 голосов
/ 30 июля 2011

Вы можете попробовать http://code.google.com/p/dompdf/. Существует множество библиотек HTML в PDF, и я использовал библиотеку для FPDF для создания счетов со сложными таблицами, если CSS не слишком сложен, он обычно хорошо воспроизводится.

Я все еще нахожу, что использование библиотеки FPDF само по себе дает лучшие результаты, когда дело доходит до таких вещей, как готовые к печати PDF-файлы, вам просто нужно приложить усилия, чтобы выводить файл на линии, нажимая кнопку обновления, подталкивая элементы вокруг.

Для вышеперечисленного вы сможете создать приличный код, используя

    $string   = 'Name';
    $border   = 1;
    $padding  = 0;
    $ln       = 0;
    $align    = 'L';
    $pdf->Cell($pdf->GetStringWidth($string)+$padding,3,0,'$align'); 

Поместите свой заголовок и данные в массив и выполните циклическое переключение $ ln на 2 в конце каждой строки.оставьте границу как 0, пока вы не будете довольны результатом и т. д.

...