TCPDF 怎么能批量生成pdf文件???

TCPDF 怎么能批量生成pdf文件???,第1张

tcpdf类生成PDF文件

一、安装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编码,否则也会出现乱码的情况发生的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6152089.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存