使用PHPWord和TCPDF导出PDF时如何指定导出版本为5.0
解决方案
单独使用TCPDF设置PDF版本为5.0
TCPDF本身内置了设置PDF版本的能力,你可以在完成所有内容渲染、输出PDF之前,调用setPDFVersion()方法设置版本:
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // 你的其他业务逻辑,写入PDF内容 $pdf->setPDFVersion('1.5'); // 注意通用标准里PDF 5.0对应的版本标识为1.5 $pdf->Output('导出文件.pdf', 'I');
配合PHPWord使用时的设置方法
PHPWord默认没有暴露PDF版本的配置项,你可以通过重写渲染类的方式实现需求:
- 首先自定义继承自PHPWord原生TCPDF渲染类的自定义类,重写实例创建方法注入版本设置逻辑
class CustomTCPDFWriter extends \PhpOffice\PhpWord\Writer\PDF\TCPDF { protected function createWriterInstance($orientation, $unit, $paperSize) { $tcpdfInstance = parent::createWriterInstance($orientation, $unit, $paperSize); $tcpdfInstance->setPDFVersion('1.5'); return $tcpdfInstance; } }
- 导出时直接使用自定义的渲染类即可
$phpWord = new \PhpOffice\PhpWord\PhpWord(); // 你的PHPWord业务逻辑,编辑文档内容 $writer = new CustomTCPDFWriter($phpWord); $writer->save('导出文件.pdf');
兼容旧版本TCPDF的方案
如果你使用的TCPDF版本较旧没有setPDFVersion()方法,可以在实例化TCPDF之前提前定义版本常量覆盖默认配置:
define('PDF_VERSION', '1.5'); // 之后再执行TCPDF实例化或者PHPWord导出逻辑即可
注意如果需要设置其他版本,直接替换上述代码中的版本标识参数即可
内容的提问来源于stack exchange,提问作者C0C45
相关产品推荐
相关产品推荐

