php - Codeigniter 如何创建 PDF

标签 php codeigniter pdf

我要创建一个发票系统,我现在正在为此做准备。 我将使用 Codeigniter。 问题是我想创建 PDF 格式的发票,这样我就可以通过电子邮件发送它。

你们有什么建议吗? 我正在考虑 HTML 到 PDF 的转换, 或者在屏幕上显示发票并安装 pdf 打印机(当您点击打印并选择打印到 PDF 文件时) 或者创建一个word文档并连接到我认为用odbc的MySQL服务器。

你们有这方面的经验吗?

最佳答案

请点击此链接,它应该可以工作..

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

或者你可以看到下面

网络上有许多 PHP 库可以将 HTML 页面转换为 PDF 文件。当您使用核心 PHP 开发任何 Web 应用程序时,它们很容易实现和部署。但是,当我们尝试将此库与任何框架或模板集成时,如果我们使用的框架没有自己的库来将其与任何 PDF 库集成,那么这将变得非常乏味的工作。当我需要将 HTML 页面转换为 PDF 文件时,我也遇到了同样的情况,而我使用的框架是 codeigniter。

我在网上搜索并找到了许多将 HTML 页面转换为 PDF 文件的 PHP 库。经过大量研究和谷歌搜索后,我决定使用 TCPDF PHP 库将 HTML 页面转换为 PDF 文件以满足我的要求。我发现 TCPDf PHP 库很容易与 codeigniter 集成,并表示正在研究它。在成功完成 codeigniter 和 TCPDF 的集成后,我想到在网络上分享这个脚本。

现在,让我们开始实现代码。

下载TCPDF库代码,可以到TCPDF网站下载http://www.tcpdf.org/ .

现在在 codeigniter 中开发的 Web 应用程序的“application/helpers/”目录中创建“tcpdf”文件夹。复制所有 TCPDF 库文件并将其粘贴到“application/helpers/tcpdf/”目录中。更新TCPDF的配置文件“tcpdf_config.php”,该文件位于“application/helpers/tcpdf/config”目录中,根据您的应用程序要求进行更改。我们可以在cofing文件中设置标志、字体、字体大小、宽度、高度、标题等。授予对 tcpdf 文件夹中的“cache”文件夹的读、写权限。定义目录结构、更新配置文件并分配权限后,这里开始实际的编码部分。

在 codeigniter 的“application/helpers/”目录中创建一个 PHP 帮助程序文件,例如“pdf_helper.php”,然后复制下面给定的代码并将其粘贴到帮助程序文件中

帮助程序:application/helpers/pdf_helper.php

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

然后在 Controller 文件中调用上面的帮助器,假设我们的 Controller 文件是“createpdf.php”并且它有 pdf() 方法,因此 pdf() 方法将加载“pdf_helper”帮助器并且还将有任何其他代码。

Controller :application/controllers/createpdf.php

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

现在创建一个 View 文件,在“application/views/”目录中创建“pdfreport.php”,该文件也被加载到 Controller 中的 pdf() 方法中。因此,在 View 文件中,我们可以直接调用“pdf_helper”帮助程序中定义的 tcpdf() 函数,它将加载所有必需的 TCPDF 类、函数、变量等。然后我们可以直接使用 TCPDF 示例代码,因为它在我们的示例代码中当前 Controller 或 View 。现在,在当前 View “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、修改。

关于php - Codeigniter 如何创建 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19806462/

相关文章:

php - 时间未插入数据库表

php - CodeIgniter:向 URL 添加参数

c# - 在没有 Interop 的情况下将 powerpoint 演示文稿 (ppt/x) 转换为 PDF

c# - 如何使用 iTextSharp 从 PDF 中正确提取下标/上标?

php - 操作 '=' 的排序规则混合非法

php - laravel 中所有响应中的未知元标记

php - 如何将 PHP mysql_fetch_array() 转换为 NSMutableArray? PHP --> Xcode

javascript - 使用 AJAX 和 Codeigniter 上传多个文件

php - CodeIgniter Controller 在调用父构造函数时中断

pdf - iText 在 pdf 中变形/拼写错误的 Unicode 字符