15

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

あなたのアドバイスは何ですか?私は HTML から PDF への変換を考えていました。または、請求書を画面に表示し、PDF プリンターをインストールします (印刷をクリックして PDF ファイルへの印刷を選択した場合)。または、Word 文書を作成し、MySQL サーバーに接続します。 .

皆さんの中でこれを経験した人はいますか?

4

6 に答える 6

32

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

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

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

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

Web で検索し、HTML ページを PDF ファイルに変換するための PHP ライブラリを多数入手しました。多くの調査とグーグル検索の後、TCPDF PHP ライブラリを使用して、要件に合わせて HTML ページを PDF ファイルに変換することにしました。私は、TCPDf PHP ライブラリを codeigniter と統合するのが非常に簡単であることを発見し、それに取り組んでいると述べました。codeigniter と TCPDF の統合が成功した後、このスクリプトを Web で共有することを考えました。

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

TCPDF ライブラリ コードをダウンロードします。TCPDF Web サイト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、変更を埋め込むこともできます。

于 2013-11-06T08:10:41.247 に答える
11

TCPDF は、pdf ドキュメントを生成するための PHP クラスです。

ステップ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 内に Controller ファイルを作成します。

 <?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から参照しました

于 2015-10-03T19:04:29.467 に答える
3

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

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

次に、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();
    }
}

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

于 2013-11-06T07:50:28.613 に答える