Gutentprint works perfectly with my Canon Pixma E414 except information about ink level. It doesn't provide any. At the same time I can see that libinklevel provides correct ink level information (at least the same as Windows driver does), so it can be used either directly or with some adoption.
I'd like to do that job but my C experience is not so big to study gutentprint architecture using source code only, so I will be happy to get any help or advice where to start.