1.PHP的PDF-API
2.使用MPDF类生成PDF的方法
mPDF是一个PHP类,它可以从UTF-8编码的HTML生成PDF文件,它基于FPDF和HTML2FPDF,并具有许多增强功能。对于语言处理和UTF-8支持,mpdf优于FPDF。对于CJK支持,它不仅支持字体嵌入,而且支持字体子集(所以您的CJK PDF不会过大)。
$config = [
// 支持中文设置
"autoScriptToLang" => true,
// 支持中文设置(中文乱码时,设置为true)
"autoLangToFont" => true,
"setAutoTopMargin" => "stretch",
"setAutoBottomMargin" => "stretch",
"autoMarginPadding" => 5,
"margin_left" => 5,
"margin_right" => 5
];
$mpdf = new \Mpdf\Mpdf($config);
// 设置页眉和页脚
$mpdf->SetHTMLHeader($header);
$mpdf->SetHTMLFooter($footer);
// 分两列写入
$mpdf->SetColumns(2);
$mpdf->WriteHTML($html);
// I'表示在线展示 'D'则显示下载窗口 'F'保存本地文件
$mpdf->Output('PDF的名称.pdf', 'I');
3.MPDF自定义字体
<?php
namespace App\Http\Controllers;
use Mpdf\Mpdf;
use Mpdf\Config\FontVariables;
use Mpdf\Config\ConfigVariables;
class ExampleController extends Controller
{
public function readPDF()
{
// 字体文字所在目录
$defaultConfig = (new ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
// 配置的字体
$defaultFontConfig = (new FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$mpdf = new Mpdf([
// 配置自定义字体,“lt-liti”只能是小写,不然乱码
'fontdata' => $fontData + [
'st-liti' => [
'R' => '华文隶书.TTF',
]
],
'default_font' => 'st-liti',
// 设置下面两个值为false,方能启用自定义字体
"autoScriptToLang"=>false,
"autoLangToFont"=>false,
"setAutoTopMargin"=>"stretch",
"setAutoBottomMargin"=>"stretch",
"autoMarginPadding"=>5,
"margin_left" => 5,
"margin_right" => 5
]);
4.MPDF相关文档
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。