The Python file of the “The embedded ICC profile” example.
The ICC profile the library embeds in a PDF/A file.
Python
36 lines
What this example is for
This entry is a download, not a page to look at. A file meant for archiving is obliged to carry a colour profile describing the device its colours are meant for, and the usual answer is to ship somebody else's: a hundred kilobytes or more, with a licence attached, copied into every document you ever produce.
What this example shows
A complete sRGB profile built by the library, not shipped with it.
The profile every PDF/A file gets when none is named.
A download rather than a page: inspect it with specialist software. The library alone writes it, and no request to the server hands it back.
"""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 thebinding rather than through the library directly.The profile is built from the colorimetry sRGB is defined by rather thanshipped 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__importannotationsimportsysfrompathlibimportPathimporthqf_pdfROOT=Path(__file__).resolve().parents[3]defmain()->None:out=Path(sys.argv[1])iflen(sys.argv)>1elseROOT/"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()