>Unfortunately, CUPS sends us grayscale values and our printer only supports pixels that are either fully black or white. Since we do not want to drop grayscale values compeltely, we want to apply Dither.
CUPS can send black-and-white 1 bit data, dithered. It's just a matter of proper option in a PPD file. It could also handle rotation by itself.
Other than that, pretty good and accurate article! I bet you can write the driver (filter) even in <50 lines of Python code :P