Проблемы с FPDI и TCPDF?

У меня довольно странная проблема с получением классов FPD FPDI и TTCPDF для совместной работы.

FPDI: http://www.setasign.com/products/fpdi/about/

TCPDF: http://www.tcpdf.org/

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

однако.. Я получаю некоторые конфликты (или что-то)

Эта ссылка показывает довольно простой и прямой способ совместного использования классов TPDF и TCPDF:

http://setasign.com/products/fpdi/demos/tcpdf-demo/

Я запускаю это / проверяю это ЛОКАЛЬНО, используя WAMP.. и PHP версии 5.4.12

<?php
// just require TCPDF instead of FPDF
//require_once 'fpdf/fpdf.php'; //old
require_once('tcpdf/tcpdf.php');
require_once('fpdi/fpdi.php');

class PDF extends FPDI{
}
// initiate FPDI
$pdf = new FPDI();

// add a page
$pdf->AddPage();
// set the source file
$pdf->setSourceFile("SRS_blank.pdf");
// import page 1
$tplIdx = $pdf->importPage(1);
// use the imported page and place it at point 10,10 with a width of 210mm (width of A4)
$pdf->useTemplate($tplIdx, 0, 0, 210, 297);

// now write some text above the imported page

//position table at bottom
$pdf->SetXY(0, 200);
//set table font
$pdf->SetFont('Helvetica');
//set table color
$pdf->SetTextColor(255, 0, 0);
//table html
$html = '<table border="1" cellspacing="2" cellpadding="2">
    <tr>
        <td width="70" rowspan="6">Company Name</td>

    </tr>
    <tr>
       <td rowspan="6"><img src="images/SRS_logo.jpg"></td>
    </tr>
    <tr>
        <td>Name</td>
        <td>Address</td>
        <td>City/State/Zip</td>
        <td>phone/fax</td>
        <td>email</td>
        <td>URL</td>
    </tr>
</table>';
// output the HTML table to pdf overlay
$pdf->writeHTML($html, true, false, true, false, '');

$pdf->Output();
?>

Вот ошибки, которые я сейчас получаю, когда пытаюсь использовать TCPDF (который имеет гораздо более надежные опции для отображения контента)

Строгие стандарты: объявление FPDF::_puttream() должно быть совместимо с TCPDF::_puttream($s, $n = 0) в C:\wamp\www\projects\PDF_generation\FPDI\fpdi2tcpdf_bridge.php в строке 167

и это:

Строгие стандарты: объявление FPDF_TPL::SetFont() должно быть совместимо с TCPDF::SetFont($family, $style = '', $size = NULL, $fontfile = '', $subset = 'default', $out = true) в C:\wamp\www\projects\PDF_generation\FPDI\fpdf_tpl.php в строке 460

Я застрял на том, КАК я получаю достойную среду разработки для тестирования и работы с этими двумя классами?

Есть идеи? все предложения приветствуются.

Спасибо!

2 ответа

При перегрузке функции нужно указывать все параметры (также со значением по умолчанию)

В файле fpdi2tcpdf_bridge.php в строке 31 задайте объявление функции

function _putstream($s) {

на

function _putstream($s, $n=0) {

И в file fpdf_tpl.php в строке 275 задайте объявление функции

public function SetFont($family, $style = '', $size = 0) {

на

public function SetFont($family, $style = '', $size = 0, $fontfile = '', $subset = 'default', $out = true) {

Начиная с последней версии FPDI и TCPDF, это строгое предупреждение больше не должно появляться. Я не знаю, какая версия FPDI, когда они наконец начали корректно перегружать функции TCPDF, но похоже, что следующие смеси PHP, FPDI и TCPDF больше не генерируют эти предупреждения...

Версия PHP: 5.5.10

Версия FPDI: 1.5.2 - http://www.setasign.com/products/fpdi/downloads/

Версия TCPDF: 6.0.089 - http://sourceforge.net/projects/tcpdf/files/

Другие вопросы по тегам