0

我尝试使用带有 Drupal 的 FPDI 库将 pdf 连接在一起。我创建了一个类来添加一个新的 pdf 到 fpdi :

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

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

先感谢您 :)

4

2 回答 2

0

确保将FPDIFPDF更新到其最新版本。

于 2014-11-25T19:32:18.973 回答
0

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

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

所以当我使用 FPDI 时,fpdi 对象实例化的类型是 TCPDF 而不是 FPDF。FPDI 调用了TCPDF v6 上出现的TCPDF 的一个功能。

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

这行得通!

于 2014-11-26T13:12:26.290 回答