/** * PDF/A-1b compliance utilities. * * Provides XMP metadata stream writing and OutputIntent creation for * PDF/A-1b (ISO 19005-1, Level B) conformance. * * **Limitations:** * - Type1 base fonts (Helvetica, Times-Roman, Courier, etc.) are NOT embedded. * PDF/A-1b strictly requires all fonts to be embedded. Documents using only * CIDFonts (embedded TrueType via `embedFont()`) are fully compliant. * Documents using base Type1 fonts will pass structural validation but may * fail strict PDF/A font-embedding checks. * * @see ISO 19005-1:2005 — Document management — Electronic document file * format for long-term preservation — Part 1: Use of PDF 1.4 (PDF/A-1) */ import type { PdfWriter } from "./pdf-writer.js"; /** * Minimal sRGB ICC profile (v2.1.0). * * This is a valid ICC profile with the correct header structure, profile * signature, and a minimal tag table. It identifies the color space as RGB * with the sRGB rendering intent. The profile is intentionally minimal * (~128 bytes) — enough to satisfy PDF/A-1b OutputIntent requirements. * * Structure: * - 128-byte header (profile size, preferred CMM, version, device class, * color space, PCS, creation date, signature, platform, flags, etc.) * - Tag table with 0 tags (profile is header-only for minimal compliance) * * @see ICC.1:2001-04 — File Format for Color Profiles (v2) */ export declare const sRGB_ICC_PROFILE: Uint8Array; /** * Write a PDF/A-1b XMP metadata stream as an indirect object. * * The XMP packet contains: * - `dc:title` — document title * - `dc:creator` — document author * - `xmp:CreatorTool` — creating application * - `pdf:Producer` — PDF producer * - `pdfaid:part` — PDF/A part (1) * - `pdfaid:conformance` — PDF/A conformance level (B) * * @returns The object number of the XMP metadata stream. */ export declare function writePdfAMetadata(writer: PdfWriter, metadata: { title?: string; author?: string; subject?: string; creator?: string; }): number; /** * Write a PDF/A-1b OutputIntent with an embedded sRGB ICC profile. * * Creates two objects: * 1. The ICC profile stream * 2. The OutputIntent dictionary referencing the profile * * @returns The object number of the OutputIntent dictionary. */ export declare function writePdfAOutputIntent(writer: PdfWriter): number;