FPDI:在Drupal上调用未定义的方法FPDI :: _ getrawstream()

时间:2014-11-25 11:22:40

标签: drupal fpdi

我尝试使用FPDI lib和Drupal将pdf连接在一起。 我创建了一个类来向fpdi添加新的pdf:

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

你知道这个错误的原因吗?

提前谢谢你:)

2 个答案:

答案 0 :(得分:0)

请务必将FPDIFPDF更新为最新版本。

答案 1 :(得分:0)

我找到了解决方案: 我实际上在FPDI之前使用HTML2PDF来生成PDF。

  • HTML2PDF包含过时版本的TCPDF(5.0.002)

因此,当我使用FPDI时,fpdi对象实例化的类型是TCPDF而不是FPDF。 FPDI称为TCPDF的函数,它出现在TCPDF的v6上。

解决方案: 我将FPDI降级到版本1.3.3以匹配html2pdf(v5.0.002) 我使用fpdf_tpl版本1.2.2来匹配fpdi lib v1.3.3

这很有效!