Rumah pembangunan bahagian belakang tutorial php tp框架引入tcpdf插件步骤以及TCPD中文乱码的解决方法

tp框架引入tcpdf插件步骤以及TCPD中文乱码的解决方法

Apr 26, 2019 pm 05:31 PM
fail pdf tcpdf thinkphp5

本篇文章主要讲述的是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, &#39;&#39;, &#39;&#39;, $html, 0, 1, 0, true, &#39;&#39;, true);
$pdf->Output(&#39;example_001.pdf&#39;, &#39;I&#39;);
Salin selepas log masuk

注意事项:

1.因为TCPDF使用定界符的方式输出html等内容,因此上述代码中的$html一直到EOD必须顶格。

2.ThinkPHP要关闭调试模式,不然输出乱码。

TCPD中文乱码的解决方法
最新版本的TCPDF已经支持中文,在生成PDF的方法中显示指定使用中文编码即可。

$pdf->SetFont(&#39;stsongstdlight&#39;, &#39;&#39;, 12);
Salin selepas log masuk

TCPDF不能保存中文文件名的解决方法

PHP使用TCPDF生成PDF文件时,如果文件名是中文会被直接过滤掉,以下是TCPDF不能保存中文文件名的解决方法:

打开tcpdf.php文件,找到output函数,大约在7554行。

1、注释以下代码,大约在7565-7568行:

if ($dest[0] != &#39;F&#39;) {
    $name = preg_replace(&#39;/[\s]+/&#39;, &#39;_&#39;, $name);
    $name = preg_replace(&#39;/[^a-zA-Z0-9_\.-]/&#39;, &#39;&#39;, $name);
}
Salin selepas log masuk

2、搜索该方法代码,替换如下代码,大约分别在7639、7670、7693、7718行。

header(&#39;Content-Disposition: attachment; filename="&#39;.basename($name).&#39;"&#39;);
Salin selepas log masuk

替换为

header(&#39;Content-Disposition: attachment; filename="&#39;.$name.&#39;"&#39;);
Salin selepas log masuk

 上述代码分别在该方法的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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Gunakan Python dan WebDriver untuk menangkap halaman web dan menyimpannya sebagai fail PDF Gunakan Python dan WebDriver untuk menangkap halaman web dan menyimpannya sebagai fail PDF Jul 08, 2023 pm 10:55 PM

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:

Buat tera air dan imej latar belakang menggunakan PHP dan TCPDF Buat tera air dan imej latar belakang menggunakan PHP dan TCPDF May 11, 2023 am 08:37 AM

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

Bagaimana untuk menggunakan TCPDF dengan CakePHP? Bagaimana untuk menggunakan TCPDF dengan CakePHP? Jun 05, 2023 pm 12:40 PM

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

Cipta kod bar dan kod QR menggunakan PHP dan TCPDF Cipta kod bar dan kod QR menggunakan PHP dan TCPDF May 11, 2023 pm 04:42 PM

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

Apakah yang perlu saya lakukan jika saya mendapat ralat semasa menggunakan thinkphp5 di Pagoda? Apakah yang perlu saya lakukan jika saya mendapat ralat semasa menggunakan thinkphp5 di Pagoda? Dec 19, 2022 am 11:04 AM

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.

Bagaimana untuk menukar fail html kepada fail pdf Bagaimana untuk menukar fail html kepada fail pdf Apr 02, 2024 pm 02:02 PM

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.

Apakah yang perlu saya lakukan jika penulisan semula url thinkphp5 gagal? Apakah yang perlu saya lakukan jika penulisan semula url thinkphp5 gagal? Dec 12, 2022 am 09:31 AM

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.

Bagaimana untuk mendapatkan URL yang diminta dalam thinkphp5 Bagaimana untuk mendapatkan URL yang diminta dalam thinkphp5 Dec 20, 2022 am 09:48 AM

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.

See all articles