I am looking for a way to adjust the halftone screens of each color channel in CMYK PDF files using Python. I would like to enhance the perceived print resolution of the files using techniques such as intaglio or stipple engraving. The goal is to produce high-quality 4/c prints at 300-350 ppi and monochrome printing at 1200 ppi, using a maximum file size of 5 MB per US Letter page.
I have found that TIFF is the only raster image format that supports CMYK color mode, but TIFF files are too large in size. On the other hand, PDF is a more forgiving format and images in "Print Ready" CMYK PDFs are usually in RGB format. The conversion to CMYK happens at the end when viewed in programs, drivers, and hardware.
I am exploring the possibility of using ML/AI to fine-tune the 1200 dpi 1-bit output for each color channel, rather than using halftone circles. For example, transform the black layer to the elegance of a copperplate engraving or Dürer stylized line work. The CMY layers can remain as halftones.
I would like to know if it is possible to achieve this within a PDF document. File size is a concern, so I am looking for a solution that optimizes and makes the files portable.
Here is a comparison of file sizes at different resolutions and formats:
300 ppi (2550px x 3300px) US Letter Sized Image
TIFF (CMYK, No Compression) 34.2 MB
TIFF (CMYK, ZIP Compression) 26.1 MB
JPG (RGB, 12 quality) 14.1 MB
JPG (RGB, 6 quality) 2.1 MB
1200 ppi (10,200px x 13,200px) US Letter Sized Image
- PNG (BITMAP, 1-bit) 0.5 MB to 2.5 MB