I have an SVG file, that uses the SVG 'mask' attribute to do some complex clipping.

I convert this file to PDF using rsvg-convert.

When I view the PDF in Preview.app, I can zoom in as far as Preview will allow without seeing any pixel artefacts. This makes me think that my clipping has survived the SVG->PDF conversion in vector form. EDIT: Actually, it turns out I was wrong about that. The mask is a bitmap in the PDF file. But that does not excuse that the bits that are not masked out are printed in poor resolution!

However, when I print the PDF (from Preview) to my HP Laserjet CP1515n printer, things get noticeably "fuzzy" along the edges. If I remove the masks, everything is razor sharp.

Using Wireshark, I captured the PostScript data actually sent to the printer. I have not analyzed it in detail, but it seems to contain bitmap data, and when rendered using Ghostscript, there are noticable pixel artefacts.

So, it seems like the PDF->PS conversion converts the masks (and possibly the masked graphic elements as well) to a bitmap. This seems reasonable, as I cannot figure out how I would express that clipping in vector form in Postscript, let alone how an automated process would do it.

What controls this conversion? Something in CUPS? Is the pixel density of generated bitmaps available as a parameter that I can tweak? There's nothing obvious in the "Print" dialogue...

You must log in to answer this question.

Browse other questions tagged .