在ThinkPHP中生成PDF文件,需要使用第三方库mPDF。下面介绍如何安装和使用mPDF来实现这一功能。
一、安装mPDF
在composer.json中添加依赖:
"require": { "mpdf/mpdf": "^8.0" }
运行以下命令进行安装:
composer install
在config.php中添加以下配置:
'pdf' => [ // PDF输出路径 'output_path' => './pdf', // mPDF配置项 'mpdf_configs' => [ 'tempDir' => sys_get_temp_dir(), // 暂存目录 'mode' => '', // 编辑模式('':默认模式,'utf-8':UTF-8模式,'gb':GB模式) 'format' => 'A4', // 页面格式(见:https://mpdf.github.io/reference/mpdf-functions/setpageformat.html) 'default_font_size' => 14, // 默认字体大小 'default_font' => 'stsong', // 默认字体 'margin_left' => 10, // 左边距 'margin_right' => 10, // 右边距 'margin_top' => 20, // 上边距 'margin_bottom' => 10, // 下边距 'orientation' => 'P' // 页面方向('P':纵向,'L':横向) ] ]
二、编写控制器
在控制器中,我们可以通过mPDF类的实例来生成PDF文件。
引入mPFD:
use \Mpdf\Mpdf;
编写PDF生成方法:
public function generatePdf() { // 实例化mPFD $mpdf = new Mpdf($this->config->pdf['mpdf_configs']);
// 设置输出路径和文件名
$output_path = $this->config->pdf['output_path'];
$filename = "example.pdf";
$file_path = $output_path . DIRECTORY_SEPARATOR . $filename;
// 设置PDF内容(这里以HTML为例)
$html = "<h1>Hello, world!</h1><p>This is an example PDF file generated using mPDF.</p>";
$mpdf->WriteHTML($html);
// 输出PDF文件
$mpdf->Output($file_path, 'F');
}
以上代码中,首先实例化了一个mPDF对象,并且设置了一些配置项。然后,设置了输出路径和文件名以及PDF的内容。最后,使用Output方法将PDF文件输出到指定路径中。
三、调用PDF生成方法
在需要生成PDF文件的地方调用上述方法即可。例如,在路由中定义:
Route::get('pdf', 'Index/generatePdf');
这时,访问http://yourdomain.com/pdf就可以生成一个名为example.pdf的PDF文件,并保存到定义的输出路径下。
总结:
以上就是在ThinkPHP中生成PDF文件的方法。使用mPDF库可以轻松地实现PDF文件的生成,同时也可以自定义一些参数以满足个性化的需求。