Я собираюсь создать систему счетов-фактур, сейчас я готовлюсь к этому. Я собираюсь использовать Codeigniter. Дело в том, что я хочу создать счет в PDF, чтобы отправить его по электронной почте.
Каковы рекомендации ваших ребят? Я думал о преобразовании HTML в PDF или показывал счет на экране и устанавливал PDF-принтер (когда вы нажимаете на печать, и вы выбираете печать в PDF-файл). Или создайте текстовый документ и подключитесь к серверу MySQL, я думаю, что с odbc ,
У кого из вас есть опыт?
Пожалуйста, нажмите на эту ссылку, она должна работать.
http://www.php-guru.in/2013/html-to-pdf-conversion-in-codeigniter/
Или вы можете видеть ниже
Существует множество библиотек PHP в Интернете для преобразования HTML-страницы в файл PDF. Их легко реализовать и развернуть, когда вы работаете над любым веб-приложением в основном PHP. Но когда мы пытаемся интегрировать эти библиотеки с любой структурой или шаблоном, то становится очень утомительной работой, если используемая нами фреймворк не имеет собственной библиотеки для ее интеграции с любой библиотекой PDF. Такая же ситуация возникла передо мной, когда было одно требование конвертировать HTML-страницу в файл PDF, а используемая мной структура была codeigniter.
Я искал в Интернете и получил количество библиотек PHP для преобразования HTML-страницы в файл PDF. После много исследований и googling я решил пойти с библиотекой PHP TCPDF для преобразования HTML-страницы в файл PDF для моего требования. Я обнаружил, что PHP-библиотека TCPDf довольно легко интегрируется с codeigniter и заявляет, что работает над ней. После успешного завершения интеграции Codeigniter и TCPDF я решил поделиться этим скриптом в Интернете.
Теперь давайте начнем с внедрения кода.
Загрузите код библиотеки TCPDF, вы можете загрузить его с веб-сайта TCPDF http://www.tcpdf.org/ .
Теперь создайте папку «tcpdf» в каталоге «application / helpers /» вашего веб-приложения, которое разработано в кодеигниторе. Скопируйте все файлы библиотеки TCPDF и вставьте его в каталог «application / helpers / tcpdf /». Обновите файл конфигурации «tcpdf_config.php» TCPDF, который находится в каталоге «application / helpers / tcpdf / config», внесите изменения в соответствии с вашими требованиями к применению. Мы можем установить логотип, шрифт, размер шрифта, с высотой, заголовком и т. Д. В файле cofing. Дайте чтение, разрешение на запись в папку «cache», которая находится в папке tcpdf. После определения структуры каталогов, обновления файла конфигурации и назначения разрешений здесь начинается ваша фактическая часть кодирования.
Создайте один хелпер-файл PHP в каталоге «application / helpers /» codeigniter, скажем «pdf_helper.php», затем скопируйте приведенный ниже код и вставьте его в вспомогательный файл
Помощник: приложение / помощники / pdf_helper.php
function tcpdf() { require_once('tcpdf/config/lang/eng.php'); require_once('tcpdf/tcpdf.php'); }
Затем в файле контроллера вызовите вышеупомянутый помощник, предположим, что наш файл-контроллер является «createpdf.php», и у него есть метод как pdf (), поэтому метод pdf () будет загружать помощника «pdf_helper» и также будет иметь любой другой код.
Контроллер: приложение / контроллеры / createpdf.php
function pdf() { $this->load->helper('pdf_helper'); /* ---- ---- ---- ---- your code here ---- ---- ---- ---- */ $this->load->view('pdfreport', $data); }
Теперь создайте один файл вида, скажем, «pdfreport.php» в каталоге «application / views /», который также загружается в метод pdf () в контроллере. Таким образом, в файле view мы можем напрямую вызвать функцию tcpdf (), которую мы определили в помощнике «pdf_helper», который загрузит все необходимые классы, функции, переменную TCPDF и т. Д. Затем мы можем напрямую использовать примеры кода TCPDF, как и в нашем текущий контроллер или просмотр. Теперь из текущего представления «pdfreport» скопируйте приведенный ниже код:
Просмотр: приложение / 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-страница будет преобразована в PDF с использованием TCPDF в CodeIgniter. Мы также можем вставлять изображения, css, изменения в PDF-файл, используя библиотеку TCPDF.
Я использовал библиотеку MPDF . Для получения дополнительной информации просмотрите этот учебник https://arjunphp.com/generating-a-pdf-in-codeigniter-using-mpdf/
Раньше я использовал 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, который он сгенерирует, а затем дополнительный третий параметр. Третий параметр – это флаг истина / ложь, чтобы определить, должен ли он сохранить файл на вашем сервере, прежде чем запрашивать у пользователя его загрузку или нет.
TCPDF – это класс PHP для создания pdf-документов. Здесь мы изучим интеграцию TCPDF с CodeIgniter. Мы будем использовать следующий шаг для интеграции TCPDF с CodeIgniter.
Шаг 1
Загрузить TCPDF Нажмите здесь .
Шаг 2
Разархивируйте вышеуказанную загрузку внутри приложения / libraries / 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
Создать файл контроллера внутри приложения / контроллеров / 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
Создайте новый pdf-файл-помощник в папке application \ helpers и назовите его 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 в приложении / 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. }