Bitmap-type print to printer and preview produces low resolution output
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Inkscape |
Fix Released
|
Medium
|
Unassigned | ||
inkscape (Debian) |
Fix Released
|
Unknown
|
|||
inkscape (Ubuntu) |
Fix Released
|
Low
|
Bryce Harrington |
Bug Description
The printing dialog provides two possible formats: Vector and Bitmap. When I select Bitmap and enter 600 DPI, the DPI is not used neither in "Print to file", nor when I select my printer "hp_3650" (and of course when I select "600 dpi, Photo, Photo + Color Cartr., Photo Paper" on Advanced tab). The generated PDF (in "Print to file") is very low resolution (75 DPI?); also when the output goes directly to the printer, it is very low resolution.
It looks like the print surface has wrong resolution (some default?). I saw cairo_surface_
SW versions (packages from Gentoo Linux):
Inkscape: 0.46-r3
gtk+: 2.12.11
gtkmm: 2.12.7
cairo: 1.6.4
cairomm: 1.6.0
hplip (printer drivers): 2.8.6b
Related branches
Changed in inkscape (Ubuntu): | |
assignee: | nobody → bryceharrington |
importance: | Undecided → Low |
status: | New → Triaged |
Changed in inkscape (Debian): | |
status: | Unknown → Fix Released |
After some investigation I discovered the intermediate PNG file has wrong resolution. It is problem in src/ui/ dialogs/ print.cpp in draw_page() method:
sp_export_ png_file( junk->_ doc, tmp_png.c_str(), 0.0, 0.0, width, height, (unsigned long)(width * PT_PER_IN / PX_PER_IN), (unsigned long)(height * PT_PER_IN / PX_PER_IN), dpi, dpi, bgcolor, NULL, NULL, true, NULL);
The generated PNG file is in PT_PER_IN resolution: 72 DPI! But when I change PT_PER_IN to "dpi", the generated temporary PNG looks good (at least for me), but the PDF contains zoomed-in picture - looks like it doesn't use the PNG's DPI (600), but forces it to use 72 DPI again (I don't know how to check the size of the picture in the PDF to verify this), so the resulting PNG's size in PDF is 8 times (600/72) bigger than the page.
Some hints?