我有任務使用TCPDF/FPDI創建一個PHP工具,該工具在添加證書的同時將現有的PDF轉換爲PDF/A標準。TCPDF生成的PDF不符合PDF/A標準
不幸的是,所有生成的PDF不符合PDF/A標準。我也嘗試生成一個隨機測試文檔,如https://tcpdf.org/examples/example_065/所示,但該文檔不符合要求。
這是我的代碼:
public static function convertPdf($path)
{
$pdf = new \FPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false, true);
$pagecount = $pdf->setSourceFile(ROOT . $path);
for ($i = 1; $i <= $pagecount; $i++) {
$tpl = $pdf->importPage($i);
$size = $pdf->getTemplateSize($tpl);
$orientation = $size['h'] > $size['w'] ? 'P':'L';
$pdf->AddPage($orientation);
$pdf->useTemplate($tpl, null, null, $size['w'], $size['h'], true);
}
$pdf->SetCreator("Creator");
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('My PDFA example');
$pdf->SetSubject('TCPDF Tutorial');
$certificatePath = 'file://' . ROOT . '/libs/TCPDF-master/examples/data/cert/tcpdf.crt';
// set additional information
$info = array(
'Name' => 'TCPDF',
'Location' => 'Office',
'Reason' => 'Testing TCPDF',
'ContactInfo' => 'http://www.tcpdf.org',
);
$pdf->setSignature($certificatePath, $certificatePath, 'tcpdfdemo', '', 2, $info);
$pdf->addEmptySignatureAppearance(0, 0, 0, 0);
$pdf->Output('example_065.pdf', 'I');
}
我用這個https://www.pdf-online.com/osa/validate.aspx來驗證我的PDF。它生成此輸出:
符合性pdfa-1b結果文檔不符合PDF/A。詳細信息 驗證文件「testerrrrrr.pdf」是否符合等級pdfa-1b有 是EOF標記之後的數據。 pdfaExtension:schemas/[0] ::缺少 值類型爲'Schema'的必填字段'property'。 pdfaExtension:schemas/ [0] ::在 值類型'Schema'中缺少必填字段'valueType'。 pdfaExtension:schemas/[1] ::缺少必需 值類型爲'Schema'的字段'valueType'。 pdfaExtension:schemas/ [2] ::值類型'Schema'中缺少必需字段'valueType'。 外觀字典不包含條目。密鑰S的值爲 透明度被禁止。該文件不符合 要求的標準。文件格式(標題,預告片,對象,外部參照, 流)已損壞。該文件包含透明度。 文檔包含註釋或表單字段,其中含有或不含 適當的外觀。該文檔的元數據缺失或者不一致或者不完整。完成。
什麼驗證程序認爲它無效,它抱怨什麼? –