php 使用MPDF仅更改PDF文档中的元数据

mkh04yzy  于 2023-06-04  发布在  PHP
关注(0)|答案(1)|浏览(199)

我试图改变以前用另一个库(wkhtmltopdf)生成的文档的元数据,但是当我创建一个mpdf对象时,改变数据并以相同的名称保存,我只是用这个空的新文件覆盖了以前的pdf文件。(具有适当的元数据,但为空)

$mpdf = new \Mpdf\Mpdf(['tempDir' => '/var/www/storage/temp']);
$mpdf->SetTitle('title');
$mpdf->SetAuthor('email');
$mpdf->SetKeywords('id');
$mpdf->Output('/var/www/storage/app/myfile.pdf');

使用mpdf可以打开以前的文档,更改元数据并保存相同的文档吗?(wkhtmltopdf不能处理元数据,只能处理标题)

rsaldnfx

rsaldnfx1#

mPDF设计用于创建新的PDF文件,而不是更改/修改/更新现有的PDF文件。
PHP解决方案:

外部工具包:

  • 常规PDF元数据:PDFtk,操作update_info_utf8
  • XMP PDF元数据:exiftool,option -tagsFromFile

请注意,某些PDF元数据是重复的,并且存在于常规PDF元数据和XMP PDF元数据中:
由于PDF v 1.6元数据可以存储在附加到PDF的特殊XML文档中(XMP -可扩展元数据平台)。
可以使用Zend_Pdf::getMetadata()Zend_Pdf::setMetadata($metadata)方法检索此XML文档并将其附加到PDF:
[...]
公共文档属性在信息结构和元数据文档(如果存在)中重复。现在是用户应用程序负责保持它们同步。
https://framework.zend.com/manual/1.12/en/zend.pdf.info.html

相关问题