web-dev-qa-db-ja.com

Codeigniterの作成方法PDF

私は請求書システムを作成するつもりです、私はその準備をしています。 Codeigniterを使用します。問題は、請求書をPDFで作成し、電子メールで送信できるようにすることです。

みんなのアドバイスは? HTMLを考えていたPDF変換、または画面に請求書を表示し、pdfプリンターをインストールします(印刷を押して、PDF = file)または、Word文書を作成して、odbcを使用してMySQLサーバーに接続します。

皆さんはこれを経験したことがありますか?

12
Ralph Schipper

このリンクをクリックしてください。

http://www.php-guru.in/2013/html-to-pdf-conversion-in-codeigniter/

または、以下を見ることができます

HTMLページをPHPファイルに変換するためのPDFライブラリがウェブ上に多数あります。コアPHPのWebアプリケーションで作業している場合は、簡単に実装およびデプロイできます。しかし、このライブラリをフレームワークまたはテンプレートと統合しようとすると、使用しているフレームワークにPDFライブラリと統合する独自のライブラリがない場合、非常に退屈な作業になります。 HTMLページをPDFファイルに変換するための要件が​​1つあり、使用していたフレームワークがcodeigniterであったときに、同じような状況が目の前に現れました。

Webで検索し、HTMLページをPHPファイルに変換するためのPDFライブラリを取得しました。多くの調査とグーグルを行った後、私はTCPDF PHPライブラリを使用して、要件に合わせてHTMLページをPDFファイルに変換することにしました。 TCPDf PHPライブラリをcodeigniterと統合するのは非常に簡単で、作業中だと述べました。 codeigniterとTCPDFの統合が正常に完了した後、このスクリプトをWeb上で共有することを考えました。

それでは、コードの実装から始めましょう。

TCPDFライブラリコードをダウンロードします。TCPDFWebサイト http://www.tcpdf.org/ からダウンロードできます。

Codeigniterで開発されたWebアプリケーションの「application/helpers /」ディレクトリに「tcpdf」フォルダーを作成します。すべてのTCPDFライブラリファイルをコピーして、「application/helpers/tcpdf /」ディレクトリに貼り付けます。 「application/helpers/tcpdf/config」ディレクトリにあるTCPDFの構成ファイル「tcpdf_config.php」を更新し、アプリケーションの要件に従って変更を行います。ロゴ、フォント、フォントサイズ、高さ、ヘッダーなどをcofingファイルに設定できます。 tcpdfフォルダーにある「cache」フォルダーに読み取り、書き込みの許可を与えます。ディレクトリ構造を定義し、構成ファイルを更新し、許可を割り当てた後、ここで実際のコーディング部分を開始します。

Codeigniterの「application/helpers /」ディレクトリに1つのPHPヘルパーファイルを作成し、「pdf_helper.php」と言い、指定されたコードの下にコピーしてヘルパーファイルに貼り付けます

ヘルパー:application/helpers/pdf_helper.php

function tcpdf()
{
    require_once('tcpdf/config/lang/eng.php');
    require_once('tcpdf/tcpdf.php');
}

次に、コントローラーファイルで上記のヘルパーを呼び出し、コントローラーファイルが「createpdf.php」であり、pdf()のメソッドがあると仮定します。そのため、メソッドpdf()は「pdf_helper」ヘルパーをロードし、他のコードも持ちます。

コントローラー:application/controllers/createpdf.php

function pdf()
{
    $this->load->helper('pdf_helper');
    /*
        ---- ---- ---- ----
        your code here
        ---- ---- ---- ----
    */
    $this->load->view('pdfreport', $data);
}

ここで、「application/views /」ディレクトリに「pdfreport.php」と言うビューファイルを1つ作成します。これは、コントローラーのpdf()メソッドにもロードされます。したがって、ビューファイルでは、「pdf_helper」ヘルパーで定義したtcpdf()関数を直接呼び出すことができます。この関数は、必要なすべてのTCPDFクラス、関数、変数などをロードします。現在のコントローラーまたはビュー。現在のビュー「pdfreport」で、以下の指定されたコードをコピーします。

表示:application/views/pdfreport.php

tcpdf();
$obj_pdf = new TCPDF('P', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$obj_pdf->SetCreator(PDF_CREATOR);
$title = "PDF Report";
$obj_pdf->SetTitle($title);
$obj_pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, $title, PDF_HEADER_STRING);
$obj_pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$obj_pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$obj_pdf->SetDefaultMonospacedFont('helvetica');
$obj_pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$obj_pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$obj_pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$obj_pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$obj_pdf->SetFont('helvetica', '', 9);
$obj_pdf->setFontSubsetting(false);
$obj_pdf->AddPage();
ob_start();
    // we can have any view part here like HTML, PHP etc
    $content = ob_get_contents();
ob_end_clean();
$obj_pdf->writeHTML($content, true, false, true, false, '');
$obj_pdf->Output('output.pdf', 'I');

したがって、HTMLページはCodeIgniterのTCPDFを使用してPDFに変換されます。また、TCPDFライブラリを使用してPDFファイルに画像、css、変更を埋め込むこともできます。

25
Siraj Khan

TCPDFは、PDFドキュメントを生成するためのPHPクラスです。ここでは、CodeIgniterとのTCPDF統合について学習します。CodeIgniterとのTCPDF統合には、次の手順を使用します。

ステップ1

TCPDFをダウンロードするには ここをクリック

ステップ2

Application/libraries/tcpdf内で上記のダウンロードを解凍します。

ステップ3

Application/libraries/Pdf.php内に新しいファイルを作成します

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once dirname(__FILE__) . '/tcpdf/tcpdf.php';
class Pdf extends TCPDF
{ function __construct() { parent::__construct(); }
}
/*Author:Tutsway.com */
/* End of file Pdf.php */
/* Location: ./application/libraries/Pdf.php */

ステップ4

Application/controllers/pdfexample.php内にコントローラーファイルを作成します。

 <?php
    class pdfexample extends CI_Controller{ 
    function __construct()
    { parent::__construct(); } function index() {
    $this->load->library('Pdf');
    $pdf = new Pdf('P', 'mm', 'A4', true, 'UTF-8', false);
    $pdf->SetTitle('Pdf Example');
    $pdf->SetHeaderMargin(30);
    $pdf->SetTopMargin(20);
    $pdf->setFooterMargin(20);
    $pdf->SetAutoPageBreak(true);
    $pdf->SetAuthor('Author');
    $pdf->SetDisplayMode('real', 'default');
    $pdf->Write(5, 'CodeIgniter TCPDF Integration');
    $pdf->Output('pdfexample.pdf', 'I'); }
    }
    ?>

それは私のために働いています。 http://www.tutsway.com/codeignitertcpdf.php から参照を取得しました

7
Manish

[〜#〜] mpdf [〜#〜] ライブラリを使用しました。詳細については、このチュートリアルをご覧ください https://arjunphp.com/generated-a-pdf-in-codeigniter-using-mpdf/

5
Sudhir Khadka

以前にdompdfを使用しましたが、いくつか成功しました。不正な形式のHTMLには少しうるさい場合がありますが、まだサポートされていないCSSメソッドがいくつかあります(たとえば、css floatは機能しません)。

Githubからパッケージをダウンロードし、application/thirdpartyディレクトリのdompdfというフォルダーに配置します。

次に、dompdfライブラリを使用するためのいくつかの関数を持つヘルパーを作成できます。以下に例を示します。

dompdf_helper.php

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

function pdf_create($html, $filename='', $stream=TRUE) 
{
    include APPPATH.'thirdparty/dompdf/dompdf_config.inc.php';

    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->render();
    if ($stream) {
        $dompdf->stream($filename.".pdf", array("Attachment" => 0));
    } else {
        return $dompdf->output();
    }
}

HTMLに文字列としてpdf_createメソッド、生成するpdfファイルのファイル名、オプションの3番目のパラメーターを渡すだけです。 3番目のパラメーターはtrue/falseフラグであり、ユーザーにファイルのダウンロードを促す前にファイルをサーバーに保存するかどうかを決定します。

2
Jeemusu

Application\helpersフォルダーに新しいPDFヘルパーファイルを作成し、pdf_helper.phpという名前を付けます。 pdf_helper.phpファイルに以下のコードを追加します。

        function tcpdf()
      {
        require_once('tcpdf/config/lang/eng.php');
        require_once('tcpdf/tcpdf.php');
      }
     ?>

詳細については、以下のリンクに従ってください。

 http://www.ccode4u.com/how-to-generate-pdf-file-in-codeigniter.html
0
Ajay Malhotra

プロジェクトでmpdfを使用しました。 Codeigniter-3では、mpdfファイルをapplication/third_partyに配置し、次のように使用しました。

 /**
 * This function is used to display data in PDF file.
 * function is using mpdf api to generate pdf.
 * @param number $id : This is unique id of table.
 */
function generatePDF($id){
    require APPPATH . '/third_party/mpdf/vendor/autoload.php';
    //$mpdf=new mPDF();
    $mpdf = new mPDF('utf-8', 'Letter', 0, '', 0, 0, 7, 0, 0, 0);

    $checkRecords =  $this->user_model->getCheckInfo($id);      
    foreach ($checkRecords as $key => $value) {
        $data['info'] = $value;
        $filename = $this->load->view(CHEQUE_VIEWS.'index',$data,TRUE);
        $mpdf->WriteHTML($filename); 
    }

    $mpdf->Output(); //output pdf document.
    //$content = $mpdf->Output('', 'S'); //get pdf document content's as variable. 

}
0
Avnish alok