怎样读取文件并输出为PDF_PHP将文件内容转换为PDF格式方法【操作】

1次阅读

可采用tcpdf、dompdf、mpdf或fpdf四种纯php方案将文件内容转pdf:tcpdf支持html/文本直接渲染;dompdf专注html/css解析;mpdf优化多语言与复杂排版;fpdf轻量但需手动处理文本布局。

怎样读取文件并输出为PDF_PHP将文件内容转换为PDF格式方法【操作】

如果您需要将PHP脚本读取的文件内容(如文本、HTML或结构化数据)转换为PDF格式并输出,可采用多种不依赖外部命令行工具的纯PHP方案。以下是实现此目标的具体操作步骤:

一、使用TCPDF库生成PDF

TCPDF是一个开源、纯PHP编写的PDF生成类库,支持从字符串、HTML片段直接渲染为PDF,无需外部二进制依赖。

1、通过composer安装TCPDF:运行命令 composer require tecnickcom/tcpdf

2、在PHP文件中引入TCPDF类:require_once ‘vendor/autoload.php‘;

立即学习PHP免费学习笔记(深入)”;

3、读取目标文件内容:$content = file_get_contents(‘example.txt’);

4、初始化TCPDF对象并设置文档属性:$pdf = new TCPDF(); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false);

5、将读取的内容写入PDF页面:$pdf->AddPage(); $pdf->writeHTML($content, true, false, true, false, ”);

6、输出PDF到浏览器:$pdf->Output(‘output.pdf’, ‘I’);

二、使用Dompdf库渲染HTML为PDF

Dompdf将HTML和CSS解析为PDF,适合处理含样式、表格或嵌入图像的HTML文件内容,支持UTF-8中文字符(需正确设置字体)。

1、通过Composer安装Dompdf:composer require dompdf/dompdf

2、引入自动加载器与Dompdf核心类:require_once ‘vendor/autoload.php’; use DompdfDompdf;

3、读取HTML格式的源文件:$html = file_get_contents(‘document.html’);

4、创建Dompdf实例并配置选项:$dompdf = new Dompdf([‘enable_remote’ => true]);

5、加载HTML内容:$dompdf->loadHtml($html);

6、设置纸张大小与方向:$dompdf->setPaper(‘A4’, ‘portrait’);

7、渲染并输出PDF:$dompdf->render(); $dompdf->stream(‘result.pdf’);

三、使用mpdf库处理多语言及复杂排版

mpdf专为多语言(含中文、阿拉伯文等)和CSS兼容性优化,支持页眉页脚、分栏、水印及TrueType字体嵌入,适用于正式文档输出场景。

1、执行Composer安装:composer require mpdf/mpdf

2、引入mpdf命名空间require_once ‘vendor/autoload.php’; $mpdf = new MpdfMpdf();

3、读取待转换文件内容(支持HTML或纯文本):$text = file_get_contents(‘report.txt’);

4、若为纯文本,需包裹HTML基础结构以确保正确渲染:$html = ‘

' . htmlspecialchars($text) . '

‘;

5、写入内容并生成PDF:$mpdf->WriteHTML($html);

6、发送PDF响应至客户端:$mpdf->Output(‘report.pdf’, ‘I’);

四、使用FPDF配合GetStringWidth实现轻量文本转PDF

FPDF是极简型PDF生成库,无外部依赖,适合仅需输出纯文本且格式简单的场景;需手动处理换行与分页,但体积小、执行快。

1、下载fpdf.php并放入项目目录,然后引入:require(‘fpdf.php’);

2、创建FPDF实例并添加页面:$pdf = new FPDF(); $pdf->AddPage();

3、设置中文字体(需提前准备UTF-8兼容字体文件):$pdf->AddFont(‘simhei’, ”, ‘simhei.php’); $pdf->SetFont(‘simhei’, ”, 12);

4、读取原始文件:$lines = file(‘data.txt’, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

5、逐行写入PDF,控制宽度避免溢出:foreach ($lines as $line) { $pdf->Cell(0, 6, $line, 0, 1); }

6、输出PDF流:$pdf->Output(‘data.pdf’, ‘I’);

text=ZqhQzanResources