Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!wuarchive!uunet!comp.vuw.ac.nz!actrix!Bruce.Hoult From: Bruce.Hoult@actrix.co.nz (Bruce Hoult) Newsgroups: comp.sys.mac.programmer Subject: Re: Problems with SetLineWidth Message-ID: <1990Nov15.080038.5198@actrix.co.nz> Date: 15 Nov 90 08:00:38 GMT References: <11125@goofy.Apple.COM> Organization: Actrix Networks Lines: 31 <1990Nov10.213656.2583@fennel.cc.uwa.oz.au> <11216@goofy.Apple.COM> Sender: Followup-To: Distribution: Organization: Actrix Information Exchange, Wellington, New Zealand Keywords: Comment-To: sean_parent.snarkmail_l_z@gateway.qm.apple.com I've been following this SetLineWidth discussion with interest, since I tackled the whole thorny problem some time ago. I've got a program that we use to create graphics, then read into MacDraw to embellish, then paste into MS Word, then print to either a LaserWriter or FaxModem. Trying to come up with a scheme that gives the same results with all posible combinations took days of experimentation. The best solution I have come up with is to make sure that your code produced the same line width no matter whether or not the printer does cumulative scalings. To go from linewidth A to linewidth B, you can do: SetLineWidth(1/A) SetLineWidth(B) If you're using a printer that does "direct" linwwidth setting then the first SetLineWidth is redundant, but harmless. If the printer is one that does cumulative modification then the first call sets the linewidth to 1 and the second call then works correctly. The disadvantage of this scheme is that your program has to be able to keep track of the current value of the linewidth.