Re: making fonts look same in Ghostscript and X11



Usman Muzaffar wrote:
My application writes text to X11 display and to PostScript output. I
want the rendered output by Ghostscript on that same X11 display to
look *exactly* (identical pixels) like it does in my X11 app.

But even if I use exactly the same Type 1 font (Times Roman 18,
which on my system maps "Nimbus Roman No 9 L" from URW) for
both X11 and PostScript output, there are noticeable differences,
especially in the spaces between letters and words, but even in
the rendering for individual glyphs.

It's easy to illustrate the discrepancy (this is on Fedora Core 3,
Xorg 6.8.1.902, GNU Ghostscript 7.07, 100dpi display). Compare:

% cat hello.ps
/Times-Roman findfont 18 scalefont setfont
10 10 moveto (The quick brown fox jumps over the lazy dog.) show
% gs -g800x50 -sDEVICE=x11 hello.ps

TO

% xmessage -fn
'-urw-nimbus roman no9 l-medium-r-normal--18-0-0-0-p-0-iso8859-1'
"The quick brown fox jumps over the lazy dog."

On my system, they're not even close. Larger fonts match a bit better,
but it's never anywhere near identical.

Questions:

1. Is this to be expected? The same Type 1 font will be rendered with
significant differences by X vs GhostScript? Why? Does the font data
leave a lot of specifics up to the individual rendering engine?

2. What are my choices for making Ghostscript and X11 match perfectly
(or as best as possible)? I'm not wedded to Type 1 fonts or even
X11 - my app just needs to manipulate text on a display, and then create
PostScript that when rendered on that display looks the way it did in
my app. Suggestions (short of embeeding Ghostcript in my app)?

Thanks,
-usman



As Aandi stated, there is no guarantee that both rendering engines will
display the same glyphs exactly the same.
But, as for the document layout, what seems to be essential to your
workflow, you should either
- use the font's printer metrics (as specified in the accompanying AFM
file for Type1 fonts) in your display application,
or
- use the X11 metrics for your PostScript output.

Both approaches require some (not neglectable) amount of additional
work, but I think the only means to settle your issue.

Helge


--
Helge Blischke
Softwareentwicklung
SRZ Berlin | Firmengruppe besscom
http://www.srz.de
.



Relevant Pages

  • Re: start X11 app on second X11 screen/virtual console
    ... Im presuming the app will fail, saying it cant find a X11 server ... in a virtual console don't usually have this variable, and yes, the application will say it does not find the display. ... on a tcp socket, not just a unix-domain socket, and it must be set up to allow connections from the computer the application runs on. ...
    (comp.os.linux.misc)
  • making fonts look same in Ghostscript and X11
    ... My application writes text to X11 display and to PostScript output. ... the rendering for individual glyphs. ... Xorg 6.8.1.902, GNU Ghostscript 7.07, 100dpi display). ...
    (comp.lang.postscript)
  • same font looks different X11 and Ghostscript
    ... My application writes text to X11 display and to PostScript output. ... the rendering for individual glyphs. ... Xorg 6.8.1.902, GNU Ghostscript 7.07, 100dpi display). ...
    (comp.windows.x)
  • Re: making fonts look same in Ghostscript and X11
    ... look *exactly* like it does in my X11 app. ... This is unlikely on a single computer, and a practical impossibility if you want to use a remote display. ... On my fc4 system the xmessage rendering is terrible. ... This seems to be a problem for many proportional fonts and few fixed-width fonts. ...
    (comp.lang.postscript)
  • Re: problem regarding setting DISPLAY env variable and hostname
    ... Giorgos Keramidas wrote: ... Then your .bash_profile will override the default DISPLAY of the X11 ... You have done a good thing when you removed the xdpyinfo command too. ...
    (freebsd-questions)