//实例化mpdf
$mpdf = new \Mpdf\Mpdf([ 'mode' => 'UTF-8', 'format' => 'A4', 'default_font_size' => 40, 'default_font' => '', 'margin_left' => 20, 'margin_right' => 20]);//utf-8
//$mpdf->SetAutoFont(AUTOFONT_ALL);//使用6.0以上版本不需要
//获取要生成的静态文件
// 支持中文
$mpdf->useAdobeCJK = true;
$mpdf->autoScriptToLang = true;
$mpdf->autoLangToFont = true;
//设置pdf显示方式
$mpdf->SetDisplayMode('fullpage');
//设置pdf的尺寸为270mm*397mm
//$mpdf->WriteHTML('<pagebreak sheet-size="270mm 397mm" />');
$time = "2022-8-1";
$html1 = "
<h2 style='text-align: center;font-size: 28px'>标题<h2>
<h4 style='text-align: center;font-size: 20px'>——副标题</h4>
<diV style='font-size: 14px;text-align: left'>报告时间:2022-01-02</diV>
<diV style='font-size: 14px;text-align: left'>报告地点</diV>
<img style='width:400px;height:350px;margin: 0;padding: 0;text-align: center' src='http://sanshi-file.oss-accelerate.aliyuncs.com//uploads/20220718/3bb9164bd8acc75af03d3d9391b05b62.png' >
$mpdf->WriteHTML($html1);
$file_path = ROOT_PATH . 'public/uploadpdf/' . Date('Ymd');//保存路径
//如果不存在此目录,则创建此目录
if (!is_dir($file_path)) {
mkdir($file_path, 0777, true);
$Name = '123.pdf'; //文件名
$fileName = $file_path . '/' . $Name; //文件路径+名字
//输出pdf
$mpdf->Output($fileName); //可以写成下载此pdf $mpdf->Output('文件名','D');
所有标准页面格式、自定义页面格式、自定义边距和计量单位;
UTF-8 Unicode 和从右到左的语言;
TrueTypeUnicode、OpenTypeUnicode、TrueType、OpenType、Type1 和 CID-0 字体;
字体子集;
发布一些 XHTML + CSS 代码、Javascript 和表单的方法;
图像、图形(几何图形)和转换方法;
原生支持 JPEG、PNG 和 SVG 图像,GD 支持的所有图像(GD、GD2、GD2PART、GIF、JPEG、PN
在这个程序之前需要做的是office文件转化为pdf,详情见我另外一个下载文件,如果只是单纯的pdf文件,这步可省略。
为了兼容移动端问题 最好是做成pdf预览或者图片合成预览
就是对pdf进行图片化处理,把部分pdf生成图片,最后合成
最近遇到了需要把多个PDF文件合并成一个PDF文件、把PNG格式的图片合并生成一个新的PDF文件的需求。
解决办法是采用Fpdi类库来实现。
* composer命令安装:composer require setasign/fpdf
* composer命令安装:composer require setasign/fpdi
<?php
//档案管理中的公用方法
//引入加载PDF合成多个PDF的扩展
vendor('setasign.fpdi.autoload');
use setasig
使用:wq 时,无论文件的内容是否改变,都会对文件重新写入,并改变文件的修改时间
使用:x时,当文件内容未被修改时,只是退出文件,文件的修改时间不会改变。当文件内容被修改时,保存文件并退出,文件的修改时间会改变
使用:X对文件加密
使用vim打开文件,并进入末行模式,输入命令:X,回车,输入两次密码回车,此时需要进入末行模式,使用:wq保存文件并退出时,加密才会生效。
此处,对文件加密,默认是没有改变文件内
$pdf->SetCreator('PHP TCPDF');
$pdf->SetAuthor('Your Name');
$pdf->SetTitle('Sample PDF');
$pdf->SetSubject('PHP TCPDF');
$pdf->SetKeywords('PDF, TCPDF, PHP');
// 添加第一页
$pdf->AddPage();
// 设置字体和字号
$pdf->SetFont('helvetica', '', 12);
// 添加文本内容
$pdf->Cell(0, 10, 'Hello, World!', 0, 1, 'C');
// 输出PDF文件
$pdf->Output('output.pdf', 'D');
以上代码使用了TCPDF库来生成PDF。首先,我们需要导入TCPDF类,并创建一个新的PDF对象。然后,我们可以设置文档信息,例如创建者、作者和标题等。接下来,我们添加一页,并设置字体和字号。最后,我们输出PDF文件,可以选择直接下载(使用'D'标志)或保存到服务器上(使用'F'标志)。
请注意,这只是一个简单的示例代码,有关TCPDF库更多的功能和设置选项,请查阅官方文档。同时,还有其他一些流行的PHP库可以用于生成PDF,如FPDF和Dompdf等,具体使用方法可以参考它们的官方文档。