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

私は解決策を見つけました:私は実際にFPDIの前にHTML2PDFを使用してPDFを生成します。

  • HTML2PDF は、TCPDF の古いバージョン (5.0.002) をインクルードします。

そのため、FPDI を使用すると、インスタンス化された fpdi オブジェクトの型は FPDF ではなく、TCPDF になります。そして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 に答える