一、安装tcpdf
二、tcpdf插件中examples
三、写入方法生成pdf页面
方法一、在index.php中写入pdfdemo方法
01)、使用命名空间
user TCPDF
02)、引入example01方法
public function pdfdemo(){
$html = '<h1 style="color: #0000FF">hello tcpdf</h1><br>我是波哥,我爱Thinkphp!!!<img src="logo.png"/>'
Pdf::createPdf($html)
exit()
}
public function pdfdemo1(){
// 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 001')
$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.' 001', PDF_HEADER_STRING, array(0,64,255), array(0,64,128))
$pdf->setFooterData(array(0,64,0), array(0,64,128))
// 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 default font subsetting mode
$pdf->setFontSubsetting(true)
// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$pdf->SetFont('dejavusans', '', 14, '', true)
// Add a page
// This method has several options, check the source code documentation for more information.
$pdf->AddPage()
// set text shadow effect
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal'))
// Set some content to print
$html = <<<EOD
<h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:nonebackground-color:#CC0000color:black"><span style="color:black">TC</span><span style="color:white">PDF</span></a>!</h1>
<i>This is the first example of TCPDF library.</i>
<p>This text is printed using the <i>writeHTMLCell()</i>method but you can also use: <i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p>
<p>Please check the source code documentation and other examples for further information.</p>
<p style="color:#CC0000">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION!</a></p>
EOD
// Print text using writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true)
// ---------------------------------------------------------
// Close and output PDF document
// This method has several options, check the source code documentation for more information.
$pdf->Output('example_001.pdf', 'I')
exit()
}
}
tcpdf中文解决方案
步骤如下:1.确保你测试tcpdf能正常输出英文内容的pdf2.测试输入中文内容后显示是?的乱码或者空白
分析原因,是因为我们输入的中文,tcpdf字体库并不支持,因此乱码或者空白显示
添加一个合适的字体即可
另外tcpdf的字体分为两种方式,嵌入方式和非嵌入(系统自带)嵌入就是输出的pdf会包含你的字体文件,系统自带的要求客户端必须有你指定的字体
另外下列字体不支持嵌入The fonts that could be not embedded are only the standard core fonts and CID-0 fonts.
The PDF Core (standard) fonts are:
courier : Courier
courierb : Courier Bold
courierbi : Courier Bold Italic
courieri : Courier Italic
helvetica : Helvetica
helveticab : Helvetica Bold
helveticabi : Helvetica Bold Italic
helveticai : Helvetica Italic
symbol : Symbol
times : Times New Roman
timesb : Times New Roman Bold
timesbi : Times New Roman Bold Italic
timesi : Times New Roman Italic
zapfdingbats : Zapf Dingbats
找到了原因,明白了原理,ok,动手吧
3.下载支持中文字体的
http://sourceforge.net/projects/hawebs/files/Assistance/PHP/Droid%20Sans%20Fallback%20-%20PHP.zip/download
下载后,将它解压放在droidsansfallback.php、droidsansfallback.z以及droidsansfallback.ctg.z这三个文件复制到 TCPDF\fonts 下面即可
4.配置
中文的解决方法为:tcpdf\config\tcpdf_config.php
define (‘PDF_FONT_NAME_MAIN’, ’helvetica’)
改为: define (‘PDF_FONT_NAME_MAIN’, ’stsongstdlight’)
define (‘PDF_FONT_NAME_DATA’, ’helvetica’)
改为: define (‘PDF_FONT_NAME_DATA’, ’stsongstdlight’)
5.将数据交给TCPDF类处理时,一定要UTF8编码,否则也会出现乱码的情况发生的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)