…Here is a classic little PostScript program:
% Hello World in Postscript
100 100 moveto
(Hello World!) show
% is a comment character, meaning the line will be ignored. Although we have some codes we use after a comment sometimes that we don’t ignore, which we use to gather various information about a print job, like determining up front what fonts are to be used in the document, so we can see if the fonts exist on the printer, or if they are in the PostScript file itself.
%!PS is the universal signifier that a PostScript program is about to follow. Some printers will ignore a print job unless they see it. We verbally say this as “Percent Bang P S”. The “!” is called the “bang” character.
/Palatino-Roman findfont tells the interpreter to find the Palatino Roman font on the printer. We used to put fonts in the printer, because fonts take up a bit of memory, and RAM was expensive. Also, networks were slow, so you wanted to have the font handy on the printer, rather than having to send the font to it. Nowdays, RAM is cheap and networks scream, so we prefer to send the font from the computer to the printer. One thing that they didn’t incorporate into fonts was the idea of font “Versioning.” So back in 1990 you might have bought an expensive laser printer that had Palatino-Roman version 1.0 in it. Later on, Palatino-Roman might get updated. Because face it, things change in life. For example, the Europeans got together to form an economic bloc and invented a common currency they named the “Euro” and gave it a symbol that looks like a big letter C with an = stuck though the side of it. Well we didn’t have that character before, so they had to update the font and add it. And then they might have even found a bug in their font and fixed that. And they might have added some upper-ascii characters. You never know. And so today you’ll be using a much-updated version of Palatino Roman on your computer, let’s call it version 6.0, and you use it in Microsoft Word or whatever, and you see your document on screen and it all looks well. But you print it to the 1990 laser printer and use the printer’s font, and your Euro characters don’t get printed, and your bugs aren’t fixed, and you don’t have your new upper-ascii characters. Well that tends to piss people off. So these days we have a complete 180 degree about-face: Now it is vastly better to have no font on the printer, and send the font in the print job. (Or otherwise work out a way to ignore the font on the printer and send the computer’s font to the printer.)
Still, some fonts are huge. Like Japanese fonts with over 4000 characters. So you don’t REALLY want to send the entire font. You’d much rather send just the 7 characters used in the phrase “Hello World” which are: HeloWrd. So we do that, we call it “Character indexing” and we build a new, tiny font file on the fly and call it a CID font, for “Character InDexed font” and it keeps things nice and fast. And that causes problems like if you make your document into a PDF and embed the CID font in it, and later someone wants to edit the font and make it say “Hello Bad World” and you don’t have the B or the a character. Anyway, you can see that font slinging is no easy business, and that’s what I wanted to impress upon you. But I digressed…
to be continued…