我使用 mPDF 库生成 PDF/A-3 文件,一切正常,除了
如何解决这个问题?这是我的一些代码。
$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults();
$fontDirs = $defaultConfig['fontDir'];
$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults();
$fontData = $defaultFontConfig['fontdata'];
$mpdf = new \Mpdf\Mpdf([
'format' => [210, 297]
, 'mirrorMargins' => 1
, 'mode' => 'utf-8'
, 'PDFA' => true
, 'PDFAauto' => false
, 'PDFAversion'=> 'A-3'
, 'fontDir' => array_merge($fontDirs, [
$_SERVER['DOCUMENT_ROOT'] . '/font',
])
, 'fontdata' => $fontData + [ // lowercase letters only in font key
'sarabun' => [
'R' => 'THSarabunNew.ttf'
, 'B' => 'THSarabunNew Bold.ttf'
]
]
, 'default_font' => 'sarabun'
, 'debug' => true
]);
$mpdf->SetAssociatedFiles([[
'name' => $invoiceNumber . '.xml'
, 'mime' => 'text/xml'
, 'description' => 'Tax Invoice XML Data'
, 'AFRelationship' => 'Alternative'
, 'content' => $xml
]]);
$mpdf->SetAdditionalXmpRdf($rdf);
$mpdf->SetTitle($invoiceNumber);
$mpdf->SetAuthor($masterCompany['companyName']);
$mpdf->SetCreator($masterCompany['companyName']);
$mpdf->SetSubject('Receipt/Tax Invoice');
$mpdf->SetKeywords('Tax Invoice');
$mpdf->WriteHTML($html);
$mpdf->Output($invoiceNumber . '.pdf', 'I');
我在互联网上找不到太多如何从 mPDF 输出 PDF/A-3 文档的详细示例。这是我从该网站获得的内容https://mpdf.github.io/what-else-can-i-do/pdf-a3-xmp-rdf.html
附加时报告的 0 字节大小对于此 XML 格式来说是完全正常的,因为它不是 PDF。磁盘大小 = 12.0 KB(12,288 字节)。如果以大约 2 KB 的 zip 内容发送,则比较大小,甚至在 docX 中也会变得臃肿。
这是 2.2 德国规范中的示例之一。
对于如此简单的应用程序归档方法来说,PDF/A-3 的严格要求是完全没有必要的,但它就是这样,由委员会设计的!
要通过 PDF/A 级别,PDF 需要
全部包含在复杂的 PDF 格式中。
构建这样一个庞然大物的通用方法是使用 GhostScript 作为将组件正确升级为 PDF/A-3 结构并具有完全正确的颜色配置文件的方法。