TCPDF/FPDIを使用して既存のPDFを取り込み、証明書を追加しながらPDF/A標準に変換するPHPツールを作成する作業があります。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');
}
私は私のPDFを検証するために、このhttps://www.pdf-online.com/osa/validate.aspxを使用しました。
準拠pdfa-1b結果ドキュメントはPDF/Aに準拠していません。詳細 準拠レベルpdfa-1bのファイル "testerrrrrr.pdf"の妥当性確認 は、EOFマーカーの後のデータです。 pdfaExtension:schemas/[0] ::なし 値タイプ 'Schema'に 'property'フィールドが必要です。 pdfaExtension:schemas/ [0] :: 値タイプ 'Schema'に必須フィールド 'valueType'がありません。 pdfaExtension:schemas/[1] ::値のタイプが 'Schema'のフィールド 'valueType'の入力が必要です。 pdfaExtension:schemas/ [2] ::値型 'Schema'に必須フィールド 'valueType'がありません。 出現辞書にはエントリが含まれていません。キーSの値は で禁止されています。この文書は要求された標準 に準拠していません。ファイル形式(ヘッダー、予告編、オブジェクト、外部参照、 ストリーム)が壊れています。文書には透明性があります。 文書には、あいまいな、または の適切な外観のない注釈またはフォームフィールドが含まれています。ドキュメントのメタデータが見つからないか、または一致しないか破損している です。完了しました。
バリデーターは有効ではないと言いますが、何について苦情を言いますか? –