SetPDFAMode
ドキュメントプロパティ、コンプライアンス
説明
選択したドキュメントの PDF/A 準拠モードを有効にする。1 回の呼び出しで、選択した PDF/A パートおよび適合レベルに必要なすべてのドキュメントレベル設定を行う。PDF バージョンを必要な最小値に引き上げ、タグ付き PDF の適合レベル (A) が選択されている場合は /MarkInfo エントリを書き込み、出力インテント(DeviceRGB sRGB ICC プロファイル)を Catalog に追加し、pdfaid:part/pdfaid:conformance XMP 名前空間エントリを書き込む。ライブラリは、選択したパートで禁止されているコンテンツを出力する後続の呼び出しを拒否する生成側の準拠ガードも有効にする(Remarks を参照)
新しく作成したドキュメントに対し、コンテンツを追加する前に 1 回呼び出します。このライブラリまたは別のライブラリが生成した既存の PDF/A ファイルを検証するには、CheckFileCompliance を ComplianceTest = 1 で使用します
構文
Delphi
Function TPDFlib.SetPDFAMode(NewMode: Integer): Integer;
ActiveX
Function PDFlib::SetPDFAMode(NewMode As Long) As Long
DLL
int DLSetPDFAMode(int InstanceID, int NewMode);
パラメータ
| NewMode | 有効にする PDF/A 準拠モード。各モードは PDF/A part(1、2、3、4 — ISO 19005-1/-2/-3/-4)と conformance level(基本的な視覚再現は B、タグ付き PDF アクセシビリティは A)で識別されます。 0 — PDF/A モードを無効化(既定) 1 — PDF/A-1a(ISO 19005-1 Level A)。PDF 1.4。タグ付き PDF が必要 2 — PDF/A-1b(ISO 19005-1 Level B)。PDF 1.4。視覚再現のみ 3 — PDF/A-2b(ISO 19005-2 Level B)。PDF 1.7。透明度とレイヤーを許可 4 — PDF/A-2a(ISO 19005-2 Level A)。PDF 1.7。タグ付き PDF が必要 5 — PDF/A-3b(ISO 19005-3 Level B)。PDF 1.7。PDF/A-2b と同様だが任意の埋め込みファイルを許可 6 — PDF/A-3a(ISO 19005-3 Level A)。PDF 1.7。PDF/A-2a と同様だが任意の埋め込みファイルを許可 7 — PDF/A-3u(ISO 19005-3 Level U)。PDF 1.7。PDF/A-3b と同様だがテキストの Unicode マッピングを宣言 8 — PDF/A-2u(ISO 19005-2 Level U)。PDF 1.7。PDF/A-2b と同様だがテキストの Unicode マッピングを宣言し、埋め込みファイルは禁止 9 — PDF/A-4(ISO 19005-4)。PDF 2.0。準拠レベルではなくパートと改訂年で識別し、Unicode マッピングが必要でタグは不要 10 — PDF/A-4e(ISO 19005-4)。PDF 2.0。PDF/A-4 に加えてエンジニアリング文書の 3D とリッチメディアを許可 11 — PDF/A-4f(ISO 19005-4)。PDF 2.0。PDF/A-4 に加えて任意形式の埋め込みファイルを許可 |
|---|
戻り値
| 0 | 失敗 — ドキュメントが開かれていないか、NewMode が 0–7 の範囲外です |
|---|---|
| 1 | PDF/A モードが正常に有効化された |
備考
選択したモードは生成側の準拠ガードを制御します。有効にすると、ライブラリは ISO 19005 に従い、その part で禁止されるコンテンツを出力する後続の呼び出しを拒否または書き換えます:
| CMYK / Separation / Shader colors | すべての PDF/A モード (1–7) でブロックされます — ドキュメントは sRGB の出力インテントで構成されており、出力インテントのデバイスクラスと互換性のある色のみを使用できます |
|---|---|
| Encryption | すべての PDF/A モードでブロックされます。暗号化関連 API を呼び出す 前 にモードを設定します |
| Transparency / blend modes / page transparency groups | モード 1 と 2 でブロックされます (PDF/A-1 は透明を禁止します)。モード 3–7 では許可されます (PDF/A-2/3 は透明を許可します) |
| JavaScript actions | すべての PDF/A モードでブロックされます — ISO 19005-1 §6.6.1 は JavaScript を禁止しており、この禁止は PDF/A-2/3 にも引き継がれています |
| Embedded files / file attachments | モード 1–4 でブロックされます (PDF/A-1 はこれらを禁止し、PDF/A-2 は PDF/A 準拠の埋め込み PDF のみを許可しますが、ライブラリはこれを強制しません)。モード 5、6、7 では許可されます — PDF/A-3 は AFRelationship 関連付けを介して、任意の MIME タイプの埋め込みファイルを明示的に許可します |
必須のタグ付き PDF コンテンツ (見出し構造、図の代替テキスト、テーブルスコープ属性、カスタムタイプの RoleMap エントリ) は、a レベル (モード 1、4、6) では呼び出し元の責任です。構造ツリーを構築するには BeginTag、BeginArtifact、AddRoleMap、構造要素セッターを使用します。保存前に GetPDFUADiagnostics を呼び出し、一般的なタグ付き PDF の問題を表示します。u レベル (モード 7) では、文書のフォントリソースがすべてのレンダリング済みテキストに Unicode テキストマッピングを提供することを確認します
同じ文書で PDF/A と PDF/UA を有効にできます。最初に SetPDFAMode を有効にし(parts 1a/2a/3a はすでにタグ付き PDF を意味します)、次に SetPDFUAMode を呼び出して PDF/UA 固有の Catalog 設定(DisplayDocTitle、pdfuaid:part、自動 /Tabs /S)を追加します
例
// PDF/A-1b — minimum-effort archival document
PDF.NewDocument;
PDF.SetPDFAMode(2); // PDF/A-1b
PDF.SetDocumentInfo('Title', 'Quarterly Report Q1 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.SetFontSize(12);
PDF.PrintText(50, 750, 'Quarterly Report — Q1 2026');
PDF.SaveToFile('Q1-Report-PDFA1b.pdf');
// PDF/A-3a — tagged report with an embedded source spreadsheet
PDF.NewDocument;
PDF.SetPDFAMode(6); // PDF/A-3a
PDF.SetPDFUAMode('en-US'); // Optional: also satisfy PDF/UA-1
PDF.SetDocumentInfo('Title', 'Sales Analysis 2026');
PDF.AddStandardFont('Helvetica');
PDF.AddPage;
PDF.BeginTag('H1', '', '');
PDF.PrintText(50, 750, 'Sales Analysis');
PDF.EndTag;
PDF.BeginTag('P', '', '');
PDF.PrintText(50, 720, 'See attached spreadsheet for source data.');
PDF.EndTag;
PDF.EmbedFile('Source data', 'data.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
PDF.SaveToFile('Sales-PDFA3a.pdf');関連項目
CheckFileCompliance、SetPDFUAMode、SetMarkInfo、EmbedFile、BeginTag、GetPDFUADiagnostics、SetInformation