Film Printer - free from Screen Print Help (screenprinthelp.com)
===============================================================
A free, offline halftone RIP for screen-printing film positives. Replaces GSview + Ghostscript.

START: unzip anywhere, double-click index.html (opens in Chrome or Edge). No install, no internet, nothing uploaded.

1. Drag a separation (PNG, JPG, WEBP, TIF or PDF) onto the window. Black/gray = ink density.
   Color art: choose "Grayscale (1 film)" or "CMYK process (4)" (GCR/UCR with an adjustable black generation).
2. Check the art size (taken from the file's ppi; 300 ppi is assumed when the file has none).
3. Set LPI (55), dot shape (Elliptical default), output dpi (1440 for Epson inkjets; 1200 or 600 for most lasers), choke/spread (default 0; presets: Large 2 pt / Medium 1.5 pt / Small 1 pt choke, or type any value), per-film angle and min/max dot / gain comp.
   CMYK default angles (screen printing): C 22.5, M 52.5, Y 82.5, K 82.5. White and spot films: 22.5.
   Dark shirts: in CMYK mode tick "White underbase (dark shirts)" to add a 5th film, printed first.
   Angle 22.5, same LPI and dot shape. "Solid underbase inside design" (on by default): 100% underbase everywhere
   inside the design's outer outline (white text and highlights included); the white or transparent background
   around the design stays clear. Turn it off for art that fades into the shirt: the underbase then follows the
   total ink coverage (halftoned where the art fades, enclosed whites still solid); "Underbase strength" makes it
   heavier or lighter.
   In CMYK mode the choke control becomes "Underbase choke": it chokes/spreads only the OUTER perimeter of the
   white underbase (where the design meets the shirt/background); edges inside the design are never touched;
   the C, M, Y and K films are never choked. In grayscale mode choke/spread applies to the single film as before.
4. Hover the preview: the loupe shows the real 1-bit dots.
5. Print films  -> Windows print dialog: pick the Epson, paper = film size, Margins: None, Scale: 100% / Actual size.
   PNG          -> 1-bit PNG per film, with dpi stored in the file.
   PDF          -> one PDF (one page per film) at the exact physical size; print it at "Actual size".
   For very large films (e.g. 13x19 at 1440 or 2880 dpi), printing the PDF is the most reliable route.

Tip: a TIF/PNG/JPG must be flat (not layered). PDFs are rendered at up to 600 ppi; page 1 is used unless you pick another.

Open-source components: pdf.js (Apache-2.0), UTIF.js (MIT), pako inflate (MIT) - licenses in vendor/.

How-to and updates: https://screenprinthelp.com/film-printer/how-to.html
