glayout

Fonts and Printing

These are implementation notes; there is no code.

Sceren fonts and printer fonts have differing character widths. This means that it's not possible to obtain perfect page fidelity. The main choices are as follows:

SSC: Use the screen widths for the printer, positioning each character

- printing is slow, because of the overhead of positioning each character

- printer files are very large

- printed output looks very bad

+ easy to do.

SSW: Use the screen widths for the printer, positioning each word

- word spacing is very bad: words overlap sometimes.

+ easy to do.

+ letterspacing of the printed output is good

SSbit: Use the screen widths for the printer, printa bitmap screen dump

- slow, big files, might use a lot of printer memory.

- looks ugly,but also lowers users' expectations.

+ moderately easy to do

- shows up any flaws in the sceren formatting

PPfmt: Use printer widths for the printer, screen widths for the sceren, reformat

- not WYSIWYG.

+ best quality output this way.

+ already used by Word, Lyx, etc.

SPW: Use screen widths for each letter on the screen, compensate for printer widths in spaces

- may get odd effects when there aer no spaces on an output line

+ moderately easy to do

+ acceptable output on screen and printer

+ could adjust printer widths slightly to minimise rounding errors

PPbit: Use printer widths on the screen, compensate with anti-aliasing

- may be slow

- no good on 1-bit screens

+ would be an attractive option

- still have to implement another solution if 1-bit support is wanted

PPC: Use printer widths on the screen, position each character

+ This is the usual approach for Quark, Adobe Illustrator, FreeHand etc.

- Makes the sceren hard to read

* this is for where the printed look is more important than the content

+ DPS and NeWS support(ed) this

* There is also a PPW variant where you position words, but the width differences can add up to cause words to touch or overlap if you do this.