TCPDF
라이브러리를 사용하여 PDF를 생성하려고합니다. 지금까지 PHP 코드를 사용하여 PDF 파일을 생성 할 수있었습니다. 외부 CSS를 렌더링하지 않고 CSS가 없으면 결과를 쓸모 없게 만들지 만 문서를 읽을 수는 없습니다.TCPDF가 외부 CSS를 렌더링하지 않습니다
public function generate_pdf() {
$this->load->model('rosters', 'roster');
$data = array();
$data['start_date'] = isset($_POST['fortnightStartDate']) ?
date("Y-m-d", strtotime(getFortnightStartDate($_POST['fortnightStartDate']))) :
getFortnightStartDate();
$cid = $_POST['cid'];
$wno = $_POST['wno'];
$data['no']=$wno;
$startDate = strtotime($data['start_date']);
$data['schedule'] = $this->roster->getShifts($cid, $data);
$data['startDate'] = $startDate;
$listing = $this->load->view('roster/roster_pdf', $data, true);
/**
* Creates an example PDF TEST document using TCPDF
* @package com.tecnick.tcpdf
* @abstract TCPDF - Example: XHTML + CSS
* @author Nicola Asuni
* @since 2010-05-25
*/
// Include the main TCPDF library (search for installation path).
require_once(APPPATH.'libraries/tcpdf/tcpdf.php');
// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 061');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 061', PDF_HEADER_STRING);
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}
// ---------------------------------------------------------
// set font
$pdf->SetFont('helvetica', '', 10);
// add a page
$pdf->AddPage();
$pdf->writeHTML($listing, true, false, true, false, '');
//Close and output PDF document
$pdf->Output('TEST.pdf', 'F');
}
나는 PDF에 포함 할 필요가있는 데이터를 보유하고있는 $listing
변수를 전달하고있다 : 다음
컨트롤러에 내 코드입니다. 데이터가 잘 인쇄되지만 CSS가 없습니다. 외부 CSS를 포함 시키려고하면 오류가 발생합니다. 다른 방법이 내가 할 수 있나요
A PHP Error was encountered
Severity: Warning
Message: array_merge(): Argument #2 is not an array
Filename: tcpdf/tcpdf.php
Line Number: 16375
:
코드는 내가 변수 $listing
아래의 코드 줄을 포함하려고하지만 오류 다음 생성 외부 CSS
$listing. = '<style>'.file_get_contents(base_url("styles/style.css")).'</style>';
을 포함하는 외부 CSS를로드 ?? 도움이 될 것입니다.
DOMPDF 당신을 위해 느린가요? –
DOMPDF는 불행히도 매우 느립니다. 작은 문서의 경우 훌륭하지만, 몇 페이지 이상 렌더링하려는 경우 매우 느려지거나 완전히 실패합니다 (특히 페이지 스패닝 HTML 테이블을 사용하는 경우). – JoeP