Inkscape (using cairo) fails to print thin lines to PDF
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libcairo |
Fix Released
|
Medium
|
|||
cairo (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
Since 1.12.3, cairo cannot render fine lines to pdf. 1.12.2 was the last version that worked.
http://
introduced code to avoid lines that would be invisible when rasterized. While this is a valid logic for raster backends, it is a bad idea for PDF output. There we want to see all fine lines.
My specific use case is generating a lasercutter drawing for an Epilog Zing laser with inkscape. There the hardware would raster anything thicker than 0.02mm, and cut 0.01mm or below. 1.12.3 skips lines below 0.036mm, 1.13.1 skips lines below 0.018mm -- which is still not enough to safely drive my lasercutter.
Previously reported against inkscape: https:/
Also reported agains cairo upstream with a suggested fix: https:/
Check out the attached reproducer and fix.
I'd suggest to circulate patched ubuntu packages, until upstream releases an official fix.
Changed in libcairo: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
Changed in libcairo: | |
status: | Confirmed → Fix Released |
Since 1.12.3, cairo cannot render fine lines to pdf. 1.12.2 was the last version that worked.
http:// cgit.freedeskto p.org/cair/ diff/?id= bdf83008f4b2c72 3fd8e65e2a92bc4 7a2e7bc442
introduced this code in cairo-composito r.c:_cairo_ compositor_ stroke
if (_cairo_ pen_vertices_ needed (tolerance, style-> line_width/ 2, ctm) <= 1) STATUS_ NOTHING_ TO_DO;
return CAIRO_INT_
The idea was to avoid lines that would be invisible when rasterized. While this is a valid logic for raster backends, it is a bad idea for PDF output. There we want to see all fine lines.
My specific use case is generating a lasercutter drawing for an Epilog Zing laser with inkscape. There the hardware would raster anything thicker than 0.02mm, and cut 0.01mm or below. 1.12.3 skips lines below 0.036mm, 1.13.1 skips lines below 0.018mm -- which is still not enough to safely drive my lasercutter.
See also https:/ /bugs.launchpad .net/inkscape/ +bug/1174909
Check out the attached reproducer.