yes, the geometric vs cosmetic pen explanation makes sense. When I first started looking at this problem, I assumed that the problem lay somewhere in the Inkscape code. So I did three different printouts and compared them: In each case, start with a very thin cubic Bezier curve. And in each case, print to a HP Laser Jet printer driver which uses HPGL.
case 1: save svg as pdf file and print using Adobe Reader. In this case the HPGL output is recognizable as being "vector". The HPGL output contains a command called 'BZ' which stands for Bezier, and the Bezier control points are readable in the HPGL file in exactly the same format as svg uses.
case 2: print svg directly from Inkscape. In this case, rather than calling it "rasterized", it might be better to call it "discretized". The Bezier curve has been converted to a multi-line with dozens of line segments. Further, each curve is stroked twice to form an outline, and further, there is a HPGL command present called FP which stands for 'Fill Polygon'.
case 3: save svg as pdf and print from Evince. This output was identical to Inkscape output, it was "discretized".
This is the point at which I gave up, since it does not appear to be specifically an Inkscape problem.
fwiw, in gdi32.dll the distinction between the above two types of output is made in a very simple way. If you define a pen width of either 0 or 1, then you will get "vector" output, as desired. If the pen width is larger than 1, then you will get "discretized" output. Unfortunately, the problem may be that this is done in printer units, which you may not know ahead of time. This is part of the reason why I abandoned the code search and tried a different tack.
yes, the geometric vs cosmetic pen explanation makes sense. When I first started looking at this problem, I assumed that the problem lay somewhere in the Inkscape code. So I did three different printouts and compared them: In each case, start with a very thin cubic Bezier curve. And in each case, print to a HP Laser Jet printer driver which uses HPGL.
case 1: save svg as pdf file and print using Adobe Reader. In this case the HPGL output is recognizable as being "vector". The HPGL output contains a command called 'BZ' which stands for Bezier, and the Bezier control points are readable in the HPGL file in exactly the same format as svg uses.
case 2: print svg directly from Inkscape. In this case, rather than calling it "rasterized", it might be better to call it "discretized". The Bezier curve has been converted to a multi-line with dozens of line segments. Further, each curve is stroked twice to form an outline, and further, there is a HPGL command present called FP which stands for 'Fill Polygon'.
case 3: save svg as pdf and print from Evince. This output was identical to Inkscape output, it was "discretized".
This is the point at which I gave up, since it does not appear to be specifically an Inkscape problem.
fwiw, in gdi32.dll the distinction between the above two types of output is made in a very simple way. If you define a pen width of either 0 or 1, then you will get "vector" output, as desired. If the pen width is larger than 1, then you will get "discretized" output. Unfortunately, the problem may be that this is done in printer units, which you may not know ahead of time. This is part of the reason why I abandoned the code search and tried a different tack.