我要创建一个发票系统,我现在正在为此做准备。我将使用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时,同样的情况也出现在我面前。
我在网上搜索并获得了许多PHP库,可以将HTML页面转换为PDF文件。经过大量的研究和谷歌搜索,我决定使用TCPDF PHP库将HTML页面转换为PDF文件以满足我的要求。我发现TCPDf PHP库很容易与codeigniter集成,并说明正在研究它。在成功完成codeigniter和TCPDF的集成后,我想在网络上共享此脚本。
现在,让我们从代码的暗示开始。
下载 TCPDF库代码,您可以从 TCPDF 网站下载 http://www.tcpdf.org/。
现在在代码点火器中开发的Web应用程序的"应用程序/助手/"目录中创建"tcpdf"文件夹。复制所有TCPDF库文件并将其粘贴到"application/helpers/tcpdf/"目录中。更新TCPDF的配置文件"tcpdf_config.php",该文件位于"application/helpers/tcpdf/config"目录中,根据您的应用需求进行更改。我们可以在cofing文件中设置徽标,字体,字体大小,with,高度,标题等。授予对tcpdf文件夹中的"缓存"文件夹的读取,写入权限。定义目录结构、更新配置文件和分配权限后,这里开始实际的编码部分。
在codeigniter的"application/helpers/"目录中创建一个PHP帮助程序文件,说"pdf_helper.php",然后复制下面给定的代码并将其粘贴到helper文件中
助手:应用程序/助手/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",它也加载在控制器的pdf()方法中。因此,在视图文件中,我们可以直接调用我们在"pdf_helper"帮助程序中定义的tcpdf()函数,它将加载所有必需的TCPDF类,函数,变量等。然后,我们可以直接使用当前控制器或视图中的TCPDF示例代码。现在在当前视图中"pdfreport"复制以下给定代码:
查看:应用程序/视图/pdf报告.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,修改。
TCPDF是用于生成pdf文档的PHP类。在这里,我们将学习TCPDF与CodeIgniter的集成,我们将使用以下步骤进行TCPDF与CodeIgniter的集成。
步骤 1
要下载TCPDF,请单击此处。
步骤 2
将上述下载解压缩到应用程序/库/tcpdf 中。
步骤 3
在应用程序/库/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
我使用了MPDF库。有关更多信息,请查看本教程 https://arjunphp.com/generating-a-pdf-in-codeigniter-using-mpdf/
我以前使用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 文件的文件名以及可选的第三个参数传递即可。第三个参数是一个 true/false 标志,用于确定在提示用户下载文件之前是否应将文件保存到服务器。
在应用程序''帮助程序文件夹中创建新的 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
我在项目中使用了 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.
}