Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!samsung!zaphod.mps.ohio-state.edu!rpi!crdgw1!galen.crd.ge.com From: leue@galen.crd.ge.com (Bill Leue) Newsgroups: comp.sys.mac.programmer Subject: Printing Questions Keywords: printing Message-ID: <14203@crdgw1.crd.ge.com> Date: 26 Nov 90 18:24:22 GMT Sender: news@crdgw1.crd.ge.com Organization: General Electric Research & Development Lines: 32 Apologies if these subjects have been covered before. I am trying to figure out how to best use the resolution of various printing devices, both PostScript and non-PostScript. I have used the high-level printing commands in other applications, but they don't seem to do what I want in this case. In my reading of Chernikoff and others, the high-level printing commands pretty much work like this: to print the contents of a window, reset the graphics port to point to the printer, and then just blast away with the same QD commands that you would use to draw the window. This works fine for many applications, but I'm not sure it can handle these requirements: 1. I want to be able to print thin hairlines; down to as thin as the printing device can support, or at least to some width much thinner than 1 screen pixel. QD only allows you to set the pen to a 1x1 with PenSize(), no thinner, unless I am missing something. Is there a 'standard' way to draw thinner lines? How does MacDraw II do it, for instance? With PICT comments? I suppose I could generate the PostScript directly for PS printers, but that seems to pretty much bypass all of the standard print driver structure. 2. (Related to #1) I want to be able to locate the vertices of polygons to an accuracy better than plus or minus one screen pixel. That is, I have a display list containing many sets of double-precision coordinates. When I render to the screen, I round these coordinates to the nearest integer pixel coordinate, load them into an appropriate data structure, and call PaintPoly(). I want to do something similar for printing, but make use of the (usually finer) pixel grid on the printer so that the round-off errors are smaller. Note that I'm not worrying here about reducing the "jaggies" caused by aliasing: I'm aware that the print driver already handles this aspect of line drawing. Rather, it's the location of the endpoints that I care about. The same questions apply as for #1.