tp框架引入tcpdf插件步骤以及TCPD中文乱码的解决方法
本篇文章主要讲述的是tp框架引入tcpdf插件步骤以及TCPD中文乱码的解决方法,具有一定的学习价值,有需要的朋友可以看看,希望能够帮助到你。
做项目时用到HTML生成PDF,发现TCPDF插件功能比较适合,因此选择了这款插件具体流程如下:
1.通过Composer下载最新版TCPDF,切换到程序根目录运行如下命令(Windows下DOS命令切换):
composer require tecnickcom/tcpdf
命令成功执行后,TCPDF会被下载到程序根目录中的vendor文件夹,如图:
examples中有60多个典型示例,需要什么功能直接看例子即可,例子对应列表见TCPDF官网:https://tcpdf.org/examples/
2.在控制器中调用TCPDF。
use TCPDF;
3.在方法中直接粘贴官方示例中的代码,成功运行。
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Nicola Asuni'); $pdf->SetTitle('TCPDF Example 001'); $pdf->SetSubject('TCPDF Tutorial'); $pdf->SetKeywords('TCPDF, PDF, example, test, guide'); $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)); $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { require_once(dirname(__FILE__).'/lang/eng.php'); $pdf->setLanguageArray($l); } $pdf->setFontSubsetting(true); $pdf->SetFont('dejavusans', '', 14, '', true); $pdf->AddPage(); $pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2, 'depth_h'=>0.2, 'color'=>array(196,196,196), 'opacity'=>1, 'blend_mode'=>'Normal')); $html = <<<EOD <h1>Welcome to <a href="http://www.tcpdf.org" style="text-decoration:none;background-color:#CC0000;color: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; $pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true); $pdf->Output('example_001.pdf', 'I');
注意事项:
1.因为TCPDF使用定界符的方式输出html等内容,因此上述代码中的$html一直到EOD必须顶格。
2.ThinkPHP要关闭调试模式,不然输出乱码。
TCPD中文乱码的解决方法
最新版本的TCPDF已经支持中文,在生成PDF的方法中显示指定使用中文编码即可。
$pdf->SetFont('stsongstdlight', '', 12);
TCPDF不能保存中文文件名的解决方法
PHP使用TCPDF生成PDF文件时,如果文件名是中文会被直接过滤掉,以下是TCPDF不能保存中文文件名的解决方法:
打开tcpdf.php文件,找到output函数,大约在7554行。
1、注释以下代码,大约在7565-7568行:
if ($dest[0] != 'F') { $name = preg_replace('/[\s]+/', '_', $name); $name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name); }
2、搜索该方法代码,替换如下代码,大约分别在7639、7670、7693、7718行。
header('Content-Disposition: attachment; filename="'.basename($name).'"');
替换为
header('Content-Disposition: attachment; filename="'.$name.'"');
上述代码分别在该方法的case 'I':(打印PDF)、case 'D':(下载PDF)、case 'FD':(保存到本地文件)语句中。
这样PHP使用TCPDF生成PDF文件时就可以保存为中文名称了。
相关教程:thinkPHP视频教程
Atas ialah kandungan terperinci tp框架引入tcpdf插件步骤以及TCPD中文乱码的解决方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Gunakan Python dan WebDriver untuk tangkapan skrin halaman web dan simpannya sebagai fail PDF Ringkasan: Semasa pembangunan dan ujian web, selalunya perlu untuk tangkapan skrin halaman web untuk analisis, rakaman dan pelaporan. Artikel ini akan memperkenalkan cara menggunakan Python dan WebDriver untuk mengambil tangkapan skrin halaman web dan menyimpan tangkapan skrin sebagai fail PDF untuk perkongsian dan pengarkiban yang mudah. 1. Pasang dan konfigurasikan SeleniumWebDriver: Pasang Python: Lawati tapak web rasmi Python (https:

Dengan kemunculan Internet dan era digital, imej digunakan dengan lebih meluas, terutamanya dalam beberapa situasi di mana ia perlu menambah tera air atau imej latar belakang pada imej untuk memastikan keselamatan maklumat dan perlindungan hak cipta. Pada masa ini, kita boleh menggunakan bahasa PHP dan perpustakaan TCPDF untuk melaksanakan penanda air dan pemprosesan imej latar belakang Berikut ialah kaedah pelaksanaan khusus. 1. Pasang perpustakaan TCPDF TCPDF ialah perpustakaan PHP sumber terbuka untuk mencipta dokumen PDF, tetapi ia juga menyediakan beberapa alatan untuk mencipta imej. Pemasangan perpustakaan kelas TCPDF agak mudah, kami

CakePHP ialah rangka kerja PHP yang sangat popular yang menyediakan banyak kaedah mudah untuk pembangunan aplikasi web. TCPDF ialah perpustakaan penjanaan PDF yang sangat biasa digunakan apabila kita perlu menjana fail PDF dalam aplikasi. Artikel ini akan memperkenalkan cara menggunakan TCPDF dalam CakePHP. Pasang TCPDF Mula-mula, kami perlu memasang TCPDF dalam projek CakePHP kami. Ini boleh dilakukan dalam beberapa cara, seperti menyalin TCPDF secara manual ke v

Kod bar dan kod QR ialah alat penting yang digunakan secara meluas dalam kehidupan moden. Ia digunakan secara meluas dalam pelbagai bidang seperti logistik, runcit, perubatan, pembayaran, dll. Artikel ini akan memperkenalkan cara membuat kod bar dan kod QR menggunakan PHP dan perpustakaan TCPDF. 1. Apakah itu TCPDF? TCPDF ialah perpustakaan PHP untuk menjana dokumen PDF. Ia percuma, sumber terbuka dan sudah digunakan secara meluas dalam banyak projek. Selain menjana dokumen PDF, TCPDF juga menyediakan fungsi mencipta kod bar dan kod QR. 2. Cara memasang T

Penyelesaian kepada ralat yang dilaporkan semasa menggunakan thinkphp5 dalam Pagoda: 1. Buka pelayan Pagoda, pasang sambungan php pathinfo dan dayakannya 2. Konfigurasikan fail ".access" dengan kandungan "RewriteRule ^(.*)$ index.php ?s=/$1 [QSA ,PT,L]”; 3. Dalam pengurusan laman web, hanya dayakan pseudo-static thinkphp.

Kaedah penukaran: 1. Alat penukaran dalam talian, seperti pdfcrowd dan online2pdf, boleh menukar fail HTML kepada PDF dengan cepat tanpa pemasangan. 2. Pemalam penyemak imbas, seperti pemalam HTML ke PDF Chrome, membenarkan penukaran dilakukan terus dalam penyemak imbas. 3. Perisian profesional, seperti Adobe Acrobat dan Foxit PhantomPDF, menyediakan fungsi yang lebih komprehensif dan menyokong penukaran kelompok pantas dan pilihan output lanjutan.

Penyelesaian untuk penulisan semula url thinkphp5 tidak berfungsi: 1. Semak sama ada modul mod_rewrite.so dimuatkan dalam fail konfigurasi httpd.conf 2. Tukar Tiada dalam AllowOverride None to All 3. Ubah suai fail konfigurasi Apache .htaccess kepada "RewriteRule ^ (.*)$ index.php [L,E=PATH_INFO:$1]" dan simpannya.

Kaedah untuk thinkphp5 untuk mendapatkan URL yang diminta: 1. Gunakan kaedah "$request = Request::instance();" kelas "\think\Request" untuk mendapatkan maklumat URL semasa 2. Gunakan pembantu terbina dalam fungsi "$request-> url()" untuk mendapatkan alamat URL lengkap termasuk nama domain.
