[cups] Trying to work around Canon MF743cdw driver bugs on MacOS Catalina

Brian bdemsky at gmail.com
Sun May 17 16:03:25 PDT 2020


Does cups work with filters implemented as shell scripts?  My attempt at a shell script that just called canon’s print filter (passing parameters with $@) didn’t work.  I’m puzzled what this issue was.

Brian

Sent from my iPhone

> On May 17, 2020, at 2:05 PM, Helge Blischke <helgeblischke at web.de> wrote:
> 
> 
> 
>> Am 17.05.2020 um 00:27 schrieb Brian Demsky <bdemsky at gmail.com>:
>> 
>> Tried all the options.  Options 2 and 3 did not work (still had boxes printing).  Option 1 works, but gives me no control over whether to print in color or black and white.  Are there any print drivers that use PDF as a target and do the conversion to B&W on the host?
>> 
>> I also tried hacking together a test shell script to use a printer filter that just turns around and calls the real print filter for now.  CUPS refuses to run it.  Is there a reason or trick?  It seems to me that if I can build a filter chain that renders the input to a bitmap and back to PDF, then it should print fine with the canon print driver.
>> 
>> BTW, did you manage to get the PDL format out of the canon print driver?  How does that work?  Is it a pdf like format or more of a bitmap like format?
>> 
>> Thanks,
>> Brian
> 
> I think I’ve found the reason why Canon’s filter exhibits the open boxes issue:
> The PDFs generated by pdflatex are written with "object streams enabled“, that is, all parts of the PDF which are plain text by default,
> have been composed into a PDF stream and thus no longer text-readable.
> The Canon filter obviously tries to pre-render the font stuff (I guess especially pre-rendering each glyph once and for all if the size is the same)
> which is not possible because of the object streams.
> And, why my suggestion 2 did not work is due to the fact that the cgpdftopdf filter had no need to modify the PDF and thus passed it through 
> without any changes.
> 
> So, what I could suggest to solve the issue is one of two approaches:
> 
> a)    write a filter that rewrites the PDF (using Ghostscript) without using the object streams (would be about half the size of the original)
> b)    convert the PDF to a TIFF data stream (using Ghostscript), which generates huge amounts of data
>    (the sample PDF you sent me resulted in a TIFF file of about 2.5 GB)
> 
> As Ghostscript is not installed by default on MacOS, the latest precompiled release can be downloaded from 
> https://pages.uoregon.edu/koch/ <https://pages.uoregon.edu/koch/>
> The filter for either a) or b) above would then call the Canon filter by itself, so this filter need not handle any options.
> 
> Let me know if that is a solution for you.
> 
> Helge 
> _______________________________________________
> cups mailing list
> cups at cups.org
> https://lists.cups.org/mailman/listinfo/cups


More information about the cups mailing list