Path: utzoo!attcan!uunet!munnari!otc!metro!basser!usage!ccadfa!anucsd!csc3!phys0!bill From: bill@phys0.anu.oz Newsgroups: comp.lang.postscript Subject: PostScript problems Message-ID: <5@phys0.anu.oz> Date: 24 Jun 88 11:22:50 GMT Lines: 56 Every now and then I come across PostScript bugs and/or limitations. You Netlanders out there may be able to help me with the following two problems, both of which are probably PostScript design limitation problems. The first problem is this: on a black and white pixel output device I would like to, in general, draw one diagram over the top of another diagram and where the second diagram's blackened pixels intersect the blackened pixels of the first diagram I would like to do an exclusive or of the pixels (to produce a whitened pixel). As an example of this, consider the following lines of PostScript which solve the problem for two simple diagrams: /inch{72 mul}def /inchsquare{newpath 0 0 moveto 0 1 inch rlineto 1 inch 0 rlineto 0 -1 inch rlineto closepath}def 1 inch 1 inch translate /diagram {inchsquare 30 setlinewidth}def /diagram1 {45 rotate inchsquare 2 setlinewidth}def gsave diagram stroke grestore gsave diagram1 strokepath clip gsave diagram 1 setgray stroke grestore grestore gsave diagram1 stroke grestore gsave diagram strokepath clip gsave diagram1 1 setgray stroke grestore grestore showpage What I would really like to be able to do, to generalize this PostScript, is use part of the frame buffer assembled so far as input to the imagemask operator, but I don't know of any way in PostScript to do this (yet). I realize that to be able to do this is going to make PostScript less device independent, and a colour output device would provide an easier solution to the problem. The second problem is this: what I would like to be able to do is a proper "solid shadowing" of a font with cross-connecting lines between the front of the character and its shadow to create a proper 3-dimensional effect of a really solid character sitting out from the page. This problem may also need the removal of hidden lines. Another thing I would like to do with a font is draw a proper outline of a character around an original black filled version of the character (with white inbetween). Simple scaling won't solve this problem where parts of a character curve back on themselves (I don't want a shadowing effect there, I want a proper outline tracing of the font). In all my attempts at an automated solution of these problems I come across the problem that Adobe disables the pathforall operator when the charpath operator is in the current path. I think I understand why Adobe does this (to protect the proprietriness of fonts), but does anyone have a solution to these problems (preferrably not involving designing a new font)? Solutions to these problems may have some interesting consequences. Whilst on this topic, I have always regarded the omission of a dotless j from the Adobe fonts a serious omission. Has anybody ever properly overcome this omission? One solution which has crossed my mind is to take a good guess at the CharStrings entry for j using suitable output from the strokepath operator and then suitably incorporate this (minus the dot) into a new version of the original Adobe font. This solution isn't a very elegant solution. Bill Alford, SCU RSPhySc, ANU, GPO Box 4, Canberra ACT 2601, Australia or bill@phys0.anu.oz