frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Writing your own CUPS printer driver in 100 lines of Python (2018)

https://behind.pretix.eu/2018/01/20/cups-driver/
203•todsacerdoti•8mo ago

Comments

roywashere•8mo ago
Pretix is a very interesting piece of open source software for selling event tickets. It’s nice to see them venturing out to writing printer drivers for ticket printers! All the best for them.
behnamoh•8mo ago
https://gimp-print.sourceforge.io/ which uses CUPS helped me resurrect an old Canon printer for which the company refused to provide updated drivers on macOS.

I was about to throw it in the recycling/trash, but I just couldn't accept that a perfectly fine hardware was crippled because the software was not updated to work on the latest macOS versions. Perplexity pointed me to Gutenprint and it worked wonderfully! The only thing that doesn't work is the scanner functionality.

asveikau•8mo ago
Many years ago I remember Windows support vanished on a bunch of printers at the 32 to 64 bit transition. That was around the time I learned how printing on Linux and BSD worked, to save a printer or two.
fsckboy•8mo ago
>support vanished on a bunch of printers at the 32 to 64 bit transition

that was after the win16 to win32 transition when every single cutting edge tech Sony product I owned, many of them quite expensive (and designed for win98/winME because that was cutting edge), stopped working. I've never bought anything Sony since, and no regrets.

Some time later, Sony Pictures wanted something from me and I said, "I boycott Sony" and they said "we're a different company" and I said "change your trademark then, that's the whole point of trademark, reputation"

sherr•8mo ago
It was the rootkit on a CDROM that did it for me. Ever since then, I avoid Sony. As you say: reputation.
LargoLasskhyfv•8mo ago
Did you try http://sane-project.org for the scanner part? They have support for some Canons, maybe you're lucky?
exhilaration•8mo ago
I bought VueScan in 2014 specifically for a Canon scanner, looks like it's still around: https://www.hamrick.com/
saltcured•8mo ago
This takes me waaaaaaaay back to when I did my first bit of practical low-level programming. I wrote a little C program that translated PNM bitmaps into the wire format for my dusty 24-pin Epson dot matrix printer. I don't remember the details, but I used it with some plugin system involving Ghostview to print postscript documents from my first Linux system in the early 90s.
whycome•8mo ago
Is there an LLM specifically for this use case scenario?
a-ungurianu•8mo ago
I’m not clear what you’re asking with this question.

Do you mean a LLM to write printer drivers? For that I think any of the coding LLMs should be able to help

Or do you mean using an LLM to do the raster -> FGL format translation? While I’m sure it might be possible, feels like an awful waste of resources, and when it comes to printers, you kinda want the guarantee that what comes out is the same that comes in.

whycome•7mo ago
I was wondering about “domain specific LLM” for printer drivers.
userbinator•8mo ago
However, the license of the BOCA driver forbids using their driver to control printers of other vendors.

Since this is a printer, I interpret those the same way as "you're not allowed to use third-party ink": I don't care.

ale42•8mo ago
Personally, I don't either. But if you're a business, you probably need to care even if you don't want to.
userbinator•8mo ago
Enforceability of EULAs has always been a rather open-ended question.
carlos22•8mo ago
Especially in non common law countries like Germany or France. Not sure about drivers and other vendors but 3rd party ink or even patches to counters, hw modifications to "repair" (better to remove the planned obsolescence) are legal.
ValdikSS•8mo ago
Oh!

Take a look at EPSON printer driver, which prohibits you from:

1. Sharing the printer you own with anyone else unless they agree to the license of the driver (incl. business setup)

2. Sharing the printer over the internet unconditionally, because this allows to use the driver for people who did not agree to the license

3. Incorporating the driver in any "revenue generating product or service"

https://download.ebz.epson.net/la/linux/inkjet_for_linux.htm...

1. Grant of License.

[…] provided that the Software is used (i) only in a single location (e.g., a home or office or place of business), or in the case of a mobile device, on a Device owned or otherwise controlled by you, and (ii) only in connection with Epson Hardware owned by you. You may allow other users of the Epson Hardware connected to your network to use the Software, provided that you shall ensure that such users use the Software only in accordance with this Agreement. You agree to be responsible for and indemnify Epson for liabilities incurred as a consequence of use by such users.

3. Other Rights and Limitations.

[…] Further, you agree not to place the Software onto or into a shared environment accessible via a public network such as the Internet or otherwise accessible by others outside the single location referred to in Section 1 above.

You may not rent, lease, distribute, lend the Software to third parties or incorporate the Software into a revenue generating product or service.

ivolimmen•8mo ago
I currently own 7 printers. 6 I got from a small business owner who wanted them gone. He asked me to check them and give them away to others who needs them. Maybe I just just grab one and hook it to the internet and let others print stuff. Would be a nice social experiment and a big middle finger to the manufacturer and those stupid EULA's.
CableNinja•7mo ago
Youd want some sort of filter and ocr in between to prevent things that were prevalent in the days of faxes. All black pages, endless printing, etc. And ofc youd want some csam filter because you dont want to end up having printed that. Gl proving it wasnt you.

That being said, it would be an interesting thing to see what people would decide to send to a random printer on the internet

ValdikSS•8mo ago
>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

dale_huevo•8mo ago
This is great.

Until now I thought CUPS drivers had to be written in C in order to link against its internal APIs.

Most inexpensive Chinese thermal printers ship with blatantly GPL violating drivers and they are precompiled binaries. Which means half the time they won't work in your situation, assuming you trust their probable malware in the first place.

Havoc•8mo ago
Ideally don't buy a thermal printer at all. The paper usually contains BPA. You found one that says BPA free? Yep they switched to BPS. Also toxic and harmful to reproductive health.

If you absolutely must - use a European supplier - both are banned there for thermal paper.

zrobotics•8mo ago
I was about to write an incredulous comment accusing you of licking receipts, but I thought I'd look into it first. It does appear that just handling thermal paper can expose you to BPA [0].

Such a shame, thermal printers are the only printing device I don't suspect of being a plot by Satan to tempt us into wrathful thinking. Thermal printers are insanely reliable, I've worked IT for several businesses with shipping departments and thermal label printers are less troublesome than even keyboards, I struggle to think of a class of equipment that generated less issues. I guess I should have suspected there was something devious about them, they are printers after all and all other printers I've had to support have always just been constant sources of annoying issues.

[0] https://www.pca.state.mn.us/business-with-us/bpa-and-bps-in-...

dqv•8mo ago
That article has a good alternative though: ascorbic acid. I think the last time I looked into this I had a hard time finding thermal labels that used ascorbic acid, but they at least have receipt paper. I do still have concerns that even the ascorbic acid paper still has something bad in it absent any documentation going over the full ingredient list.
devmor•8mo ago
I had the same incredulity when BPA alarms started going off, thinking it was another Prop 65 warning type thing. Finding out that it is literally absorbed through the skin sent shivers down my spine. That stuff is scary.
0_____0•8mo ago
Oh man... I've definitely crumpled up and put a receipt in my mouth before... probably even eaten one at some point, probably to horrify a girlfriend in my younger days. I know, I'm a gremlin.
Havoc•8mo ago
Yeah knowledge of it seems pretty thin on the ground despite this being decade+ known. Haven't quite worked out why - unlikely say tobacco it doesn't seem like an industry that would have financial might behind it.
_rami_•8mo ago
There's completely safe thermal paper in Germany by this company: https://www.oekobon.de/ There's a similar company in France, I forgot the name
kiliankoe•8mo ago
I use these for printing my shopping lists, I like synced lists (in Todoist in my case), but hate walking through stores with a device in my hand. The Ökobons have the added benefit of me being able to scratch items off the list with my fingernail. Also the blue is cool.
th0ma5•8mo ago
CUPS was instrumental in me getting an old Commodore 64 printer working haha. It can do some amazing stuff.
_rami_•8mo ago
Author here. Funny this ended up here again!

These days, we don't use this any more. First, because we now use primarily original Boca printers and are allowed to use the official drivers, and second, because we do 99% of printing from Android devices, where we also handle the protocol conversion ourselves, but it's a lot simpler without CUPS. Still, was a fun ride doing this back then!

Google is ending full-web search for niche search engines

https://programmablesearchengine.googleblog.com/
65•01jonny01•52m ago•34 comments

I built a light that reacts to radio waves [video]

https://www.youtube.com/watch?v=moBCOEiqiPs
161•codetheweb•4h ago•29 comments

Replacing Protobuf with Rust to go 5 times faster

https://pgdog.dev/blog/replace-protobuf-with-rust
20•whiteros_e•1h ago•9 comments

Proton Spam and the AI Consent Problem

https://dbushell.com/2026/01/22/proton-spam/
190•dbushell•3h ago•97 comments

Show HN: isometric.nyc – giant isometric pixel art map of NYC

https://cannoneyed.com/isometric-nyc/
935•cannoneyed•17h ago•185 comments

GPTZero finds 100 new hallucinations in NeurIPS 2025 accepted papers

https://gptzero.me/news/neurips/
840•segmenta•19h ago•441 comments

Capital One to acquire Brex for $5.15B

https://www.reuters.com/legal/transactional/capital-one-buy-fintech-firm-brex-515-billion-deal-20...
302•personjerry•13h ago•230 comments

AI Is a Horse (2024)

https://kconner.com/2024/08/02/ai-is-a-horse.html
18•zdw•3d ago•3 comments

Why does SSH send 100 packets per keystroke?

https://eieio.games/blog/ssh-sends-100-packets-per-keystroke/
477•eieio•15h ago•264 comments

I was banned from Claude for scaffolding a Claude.md file?

https://hugodaniel.com/posts/claude-code-banned-me/
544•hugodan•15h ago•461 comments

TI-99/4A: Leaning More on the Firmware

https://bumbershootsoft.wordpress.com/2026/01/17/ti-99-4a-leaning-more-heavily-on-the-firmware/
32•ibobev•4d ago•16 comments

Qwen3-TTS family is now open sourced: Voice design, clone, and generation

https://qwen.ai/blog?id=qwen3tts-0115
600•Palmik•20h ago•187 comments

Scaling PostgreSQL to power 800M ChatGPT users

https://openai.com/index/scaling-postgresql/
188•mustaphah•13h ago•83 comments

Douglas Adams on the English–American cultural divide over "heroes"

https://shreevatsa.net/post/douglas-adams-cultural-divide/
448•speckx•20h ago•439 comments

Bugs Apple Loves

https://www.bugsappleloves.com
641•nhod•8h ago•279 comments

A gaming success story: how Warhammer became one of Britain's biggest companies

https://www.theguardian.com/lifeandstyle/2026/jan/18/a-gaming-success-story-how-warhammer-became-...
33•GeoAtreides•4d ago•34 comments

Your app subscription is now my weekend project

https://rselbach.com/your-sub-is-now-my-weekend-project
357•robteix•4d ago•262 comments

Improving the usability of C libraries in Swift

https://www.swift.org/blog/improving-usability-of-c-libraries-in-swift/
116•timsneath•10h ago•10 comments

Project Mercury and the Sofar Bomb

https://www.thequantumcat.space/p/project-mercury-and-the-sofar-bomb
9•verzali•4d ago•0 comments

Why medieval city-builder video games are historically inaccurate (2020)

https://www.leidenmedievalistsblog.nl/articles/why-medieval-city-builder-video-games-are-historic...
142•benbreen•10h ago•88 comments

Writing First, Tooling Second

https://susam.net/writing-first-tooling-second.html
33•blenderob•4d ago•4 comments

Show HN: Txt2plotter – True centerline vectors from Flux.2 for pen plotters

https://github.com/malvarezcastillo/txt2plotter
19•tsanummy•3d ago•5 comments

Turso is an in-process SQL database, compatible with SQLite

https://github.com/tursodatabase/turso
118•marklit•3d ago•72 comments

Stunnel

https://www.stunnel.org/
76•firesteelrain•9h ago•27 comments

'Askers' vs. 'Guessers' (2010)

https://www.theatlantic.com/national/2010/05/askers-vs-guessers/340891/
149•BoorishBears•22h ago•97 comments

Why are there so many CPU bugs nowadays

https://mas.to/@gabrielesvelto/115939583202357863
16•riffraff•1h ago•4 comments

CSS Optical Illusions

https://alvaromontoro.com/blog/68091/css-optical-illusions
185•ulrischa•16h ago•15 comments

Launch HN: Constellation Space (YC W26) – AI for satellite mission assurance

40•kmajid•17h ago•15 comments

Show HN: Text-to-video model from scratch (2 brothers, 2 years, 2B params)

https://huggingface.co/collections/Linum-AI/linum-v2-2b-text-to-video
83•schopra909•17h ago•15 comments

In Europe, wind and solar overtake fossil fuels

https://e360.yale.edu/digest/europe-wind-solar-fossil-fuels
622•speckx•20h ago•628 comments