wish of those help Remove the shape-rendering="crispEdges" attribute from the svg tag (line 6 in your svg) Browsers usually switch off anti-aliasing when shape-rendering="crispEdges" - and that's what's needed in this situation. Use an other value for shape-rendering (e.g. "auto" or "geometricPrecision") or - remove the attribute and you're set.
Hope that helps 0.5 usually ends up loosing a lot of information unless the original image is extremely bright. In fact, any absolute threshold will mess up one kind of images or another. A better method would be to make a histogram of luminosities and choose a threshold near the mode. This should work better on most images than any absolute threshold.
seems to work fine If what you're looking for is to threshold the image -- everything brighter than a certain value turns white, everything darker turns black, and you pick the value -- then a library like GPU Image will work for you.
Check if PDF is colored or grayscale or black&white
seems to work fine Well that's a black and white output, its been halftoned to produce 1-bit output from 8-bit input. No matter what you do, if your device only supports 1-bit output then you're always going to have to apply some kind of screening to represent grayscale or colour. You don't give any clues as to why ljetplus is the only device you can use. Without knowing why its going to be hard to offer any concrete advice.