2014-11-25 4 views
0

Я пытаюсь использовать FPDI lib с Drupal для объединения PDF вместе. я создал класс, чтобы добавить новый PDF в FPDI:FPDI: вызов метода undefined FPDI :: _ getrawstream() на Drupal

class PdfGenerator 
{ 
public function importPDF(&$fpdi, $file) 
    { 
     $pageCount = $fpdi->setSourceFile($file); 
     for ($p = 1; $p <= $pageCount; $p++) { 
      $tplidx = $fpdi->importPage($p); 
      $size = $fpdi->getTemplatesize($tplidx); 

      if ($size['w'] > $size['h']) { 
       $format = 'L'; 
      } else { 
       $format = 'P'; 
      } 

      $fpdi->addPage($format, array($size['w'], $size['h'])); 
      $fpdi->useTemplate($tplidx); 
     } 
    } 
} 

и я называю метод importPDF так:

$pdf = new FPDI(); 
$pdf_path = 'path/to/pdf.pdf'; 
$pdfGenerator->importPDF($pdf,$pdf_path); 
$pdf->Output('test.pdf','I'); 

Но, к сожалению, у меня есть эта ошибка:

Fatal error: Call to undefined method FPDI::_getrawstream() in [..]sites/all/libraries/fpdi/fpdi.php on line 473 

Вы знаете причину этой ошибки?

спасибо заранее :)

ответ

0

Я нашел решение: Я фактически использую HTML2PDF перед FPDI для создания PDF.

  • HTML2PDF делает включать устаревшей версии TCPDF (5.0.002)

Так что, когда я использую FPDI, тип объекта FPDI Instantiate является TCPDF и не FPDF. И FPDI называется функцией TCPDF, которая появляется на v6 TCPDF.

Решение: Я Пониженный FPDI к версии 1.3.3, чтобы соответствовать к HTML2PDF (v5.0.002) И я взял fpdf_tpl версию 1.2.2, чтобы соответствовать к FPDI Lib v1.3.3

И это работает!

0

Убедитесь, что вы обновляете FPDI и FPDF до их последних версий.

+0

Я использую FPDI v1.5.2 и FPDF v1.7. Я пытаюсь использовать тот же код на чистой установке без Drupal, и он работает. У меня до сих пор нет решения с Drupal. – tyhupo

+0

В вашей настройке Drupal устарела устаревшая версия TCPDF перед загрузкой FPDI. –

+0

На самом деле, я использую html2pdf для генерации динамического pdf. В html2pdf verson TCPDF - 5.0.002. – tyhupo

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