I have setup ScanServJS which is an awesome web page that access your scanner and let you scan and download the scanned pages from your self hosted web server. I have the scanner configured via sane locally on the server and now I can scan via web from whatever device (phone, laptop, tablet, whatever) with the same consistent web interface for everyone. No need to configure drivers anywhere else.
I want to do the same with printing. On my server, the printer is already configured using CUPS, and I can print from Linux laptops via shared cups printer. But that require a setup anyway, and while I could make it work for phones and tablets, I want to avoid that
I would like to setup a nice web page, like for the scanner, where the users no matter the device they use, can upload files and print them. Without installing nor configuring anything on their devices.
Is there anything that I can self-host to this end?
I made something crude with python and flask, but it's only to print address labels, always the same settings (paper size and so on)
So i just put a textbox, press the button and it prints there.
When printing generic stuff, you would need to set paper type, paper size, color or BW, if have both sides printed, if printing from a specific tray, then some kind of user authentication (i am lazy and i didn't care about privacy so i used cloudflare access), so the complexity becomes much bigger.
Before making my crude script I searched long time for a free or cheap solution, but I didn't find. If you find, let me know
Gotta say, this question and the process explained threw me for a loop.
You have a network print server where it's advertising an available printer, but instead of the native printer system on a client device, you want to NOT use the CUPS server to print? That's what it's there for. I'm confused on why you have it then.
If your goal is just to have clients print as directly as possible to a printer...you already have that with CUPS running. I guess I'm not getting why submitting via web form is useful in this case.
CUPS already does this though, and that's where I'm getting confused. This is the entire point of CUPS. If your issue is with drivers, then you need to configure it to just print from its own driver via a spooled queue like PostScript, or maybe IPP.