"""Writes the ICC profile the library embeds in a PDF/A file.
The Python twin of the `write_icc` example in Rust: the same bytes, through the
binding rather than through the library directly.
The profile is built from the colorimetry sRGB is defined by rather than
shipped as a file, so what a document embeds can be looked at on its own —
whether it is a well-formed ICC profile, and whether it is really sRGB, is what
`scripts/check_icc_profile.py` uses this for.
Usage: python examples/write_icc.py [out.icc]
"""
from __future__ import annotations
import sys
from pathlib import Path
import hqf_pdf
ROOT = Path(__file__).resolve().parents[3]
def main() -> None:
out = Path(sys.argv[1]) if len(sys.argv) > 1 else ROOT / "tmp" / "srgb.icc"
profile = hqf_pdf.srgb_icc_profile()
out.parent.mkdir(parents=True, exist_ok=True)
out.write_bytes(profile)
print(f"wrote {out}: {len(profile)} bytes")
if __name__ == "__main__":
main()