Since you can print on Linux, you have a proper driver. This is important because CUPS also supports “raw” queues where it does not actually know how to create printer data itself but relies on client-side drivers to do that.
Because CUPS knows how to print, you can just feed it PostScript data. Windows ships with various suitable drivers. They need not be related to your printer in any way.
I’ll quote Arch Wiki’s Printer sharing article on the following.
First, to enable sharing, it refers to the CUPS server:
Open up the web interface to the server, select the Administration tab, look under the Server heading, and enable the "Share printers connected to this system" option. Save your change by clicking on the Change Settings button. The server will automatically restart.
Then, to install the printer on Windows:
Sharing via IPP
The preferred way to connect a Windows client to a Linux print server is using IPP, as the configuration is simpler than using Samba. It is a standard printer protocol based on HTTP, allowing you to use port forwarding, tunneling etc. IPP has been natively supported by Windows since Windows 2000.
Note: You may have to add the Internet Printing Client to Windows (Control Panel->Programs->Turn Windows features on or off->Print and Document Services)
[...]
On the Windows computer, go to Control Panel->Devices and Printers and choose 'Add a printer'. If on Windows 10, click "The printer that I want isn't listed". Next, choose 'Select a shared printer by name' and type in the location of the printer:
http://hostname:631/printers/printer_name(where hostname is the GNU/Linux server's hostname or IP address and printer_name is the name of the print queue being connected to. [...]
Note:
- The 'Add Printer' dialog in Windows suggests the format
http://computername/printers/printername/.printer
, which it will not accept. Instead, use the syntax suggested above.- If you are using a proxy carefully check any used proxy exclusions. A wrong setting here may result in you being unable to add a printer until the next reboot even if you disable the proxy afterwards (at least on Windows 7).
After this, install the native printer drivers for your printer on the Windows computer. If the CUPS server's print queue is set up to use its own printer drivers instead of as a
raw
queue, you can just select a generic postscript printer driver for the Windows client (e.g. 'HP Color LaserJet 8500 PS' or 'Xerox DocuTech 135 PS2').
(Emphasis in last paragraph mine).