2013-11-11 4 views
0

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

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

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

От чтения вокруг и даже не смотря на некоторые из приведенных примеров, они должны работать вместе НИКАКИХ ПРОБЛЕМ ...

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

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

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 :: _ putstream() должны быть совместимы с TCPDF :: _ putstream ($ s, $ п = 0) в C: \ WAMP \ WWW \ проекты \ PDF_generation \ FPDI \ FPDI 2tcpdf_bridge.php на линии 167

и это:

Строгие стандарты: Декларация FPDF_TPL :: SetFont() должны быть совместимы с TCPDF :: SetFont ($ семьи, $ стиль = '', $ размер = NULL, $ fontfile = '', $ подмножеством = 'по умолчанию', $ из = истина) в C: \ WAMP \ WWW \ проекты \ PDF_generation \ FPDI \ fpdf_tpl.php на линии 460

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

Любые идеи? все предложения оценили.

спасибо!

+0

вы пытались с: ini_set ('d isplay_errors ',' 0 '); и error_reporting (E_ALL | E_STRICT); – Hackerman

+0

Я ... но не уверен КАК? Как это реализовать в моей текущей настройке? Это что-то мне нужно сделать в моем файле php.ini? – whispers

+0

Yoa может вставить эти две строки в начале вашего скрипта php. – Hackerman

ответ

5

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

В файле 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) { 
+0

Отличный ответ дорогой друг. Этот ответ должен быть выбран в качестве правильного ответа. – NullPointer

0

По состоянию на последней версии обоих 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/

+0

святая корова .. 3+ (почти 4) лет назад, теперь ... и все еще нужно вставлять в нее свои пальцы и настраивать/редактировать ... и т. Д. (отличная работа) (бросок глаз) – whispers

Смежные вопросы