0

codeigniter で FPDF ファイルを生成する方法。以下のコードを試してみましたが、エラーが発生します。

コントローラー機能

public function pdf()
{
    // Generate PDF by saying hello to the world
    $this->load->library('pdf'); // Load library
    $this->pdf->fontpath = 'font/'; // Specify font folder
    $this->pdf->AddPage();
    $this->pdf->SetFont('Arial','B',16);
    $this->pdf->Cell(40,10,'Hello World!');
    $this->pdf->Output();
}

pdf.php ファイルを application/libraries フォルダーに配置します

pdf.php

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require('fpdf.php');
class Pdf extends FPDF
{
// Extend FPDF using this class
// More at fpdf.org -> Tutorials

function __construct($orientation='P', $unit='mm', $size='A4')
{
    // Call parent constructor
    parent::__construct($orientation,$unit,$size);
}
}
?>

fpdf.php ファイルが同じフォルダーにあります。このコードを使用すると、pdf ファイルをダウンロードできません。ネットワーク エラーが発生するか、Web ページが見つかりません

これは fpdf.php ファイルで利用可能な私の output() です

function Output($name='', $dest='')
{
// Output PDF to some destination
if($this->state<3)
    $this->Close();
$dest = strtoupper($dest);
if($dest=='')
{
    if($name=='')
    {
        $name = 'doc.pdf';
        $dest = 'I';
    }
    else
        $dest = 'F';
}
switch($dest)
{
    case 'I':
        // Send to standard output
        $this->_checkoutput();
        if(PHP_SAPI!='cli')
        {
            // We send to a browser
            header('Content-Type: application/pdf');
            header('Content-Disposition: inline; filename="'.$name.'"');
            header('Cache-Control: private, max-age=0, must-revalidate');
            header('Pragma: public');
        }
        echo $this->buffer;
        break;
    case 'D':
        // Download file
        $this->_checkoutput();
        header('Content-Type: application/x-download');
        header('Content-Disposition: attachment; filename="'.$name.'"');
        header('Cache-Control: private, max-age=0, must-revalidate');
        header('Pragma: public');
        echo $this->buffer;
        break;
    case 'F':
        // Save to local file
        $f = fopen($name,'wb');
        if(!$f)
            $this->Error('Unable to create output file: '.$name);
        fwrite($f,$this->buffer,strlen($this->buffer));
        fclose($f);
        break;
    case 'S':
        // Return as a string
        return $this->buffer;
    default:
        $this->Error('Incorrect output destination: '.$dest);
}
return '';
}

この問題を解決する方法。

4

0 に答える 0