% > <PDriver$Dir>.<PDriver$PSprologue>
% User-editable prologue definitions for the PostScript printer driver
% module.
% Version 2.03, first used with version 2.04 of the module.
%%DocumentFonts: Courier Courier-Oblique Courier-Bold
%%+ Courier-BoldOblique Helvetica Helvetica-Oblique Helvetica-Bold
%%+ Helvetica-BoldOblique NewCenturySchlbk-Bold Times-Roman
%%+ Times-Italic Times-Bold Times-BoldItalic ZapfDingbats
%%EndComments

% If you add further fonts to the '%%DocumentFonts:' and '%%+" comments
% above, make certain that you keep strictly to the format above - in
% particular, all names are case-sensitive, exactly one space should
% appear between the start of the comment and the first font name on
% the line, exactly one space should appear between font names, and
% there should no surplus spaces at the ends of lines.
%   Note also that all PostScript font names quoted in the font
% translation data at the bottom of this file should appear in these
% comments.

% Note for advanced users: the printer driver module will remove
% PostScript comments from this file when copying it into the PostScript
% output (to avoid excessive amounts of output) according to the
% following simple algorithm:
%   (a) If a line starts with "%%" or "%!", it is copied without any
%       changes.
%   (b) If a line starts with a "%" and does not start with "%%" or
%       "%!", the whole line is removed, including the new line at the
%       end of it.
%   (c) If a "%" appears anywhere else in a line that does not start
%       with "%%" or "%!", it and all characters up to but not including
%       the following new line are removed.
% In the unlikely event that you wish to add some PostScript containing
% e.g. a string with a "%" in it, use the "\045" escape sequence
% instead.
%   The printer driver will also compress multiple new lines down to
% one new line when copying this file.

% CHARACTER ENCODING VECTORS

% The following chunk of PostScript defines the ISO 8859-1 Latin 1
% mapping of character codes to PostScript character names, plus
% Acorn's extensions to this character encoding. It can be edited if
% necessary to produce other encodings. Note that PostScript character
% names are case-sensitive. Also note that if you add composite
% characters, you must make certain that all their components appear
% somewhere in the encoding vector - if necessary, among the unused
% codes 0-31.

/Latin1Enc [
/dotlessi /ring /.notdef /.notdef       % Codes 0-31 (character
/.notdef /.notdef /.notdef /.notdef     %   components required to
/.notdef /.notdef /.notdef /.notdef     %   make all the composite
/.notdef /.notdef /.notdef /.notdef     %   characters work).
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign    % Codes 32-63
/dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus
/comma /hyphen /period /slash
/zero /one /two /three
/four /five /six /seven
/eight /nine /colon /semicolon
/less /equal /greater /question
/at /A /B /C                            % Codes 64-95
/D /E /F /G
/H /I /J /K
/L /M /N /O
/P /Q /R /S
/T /U /V /W
/X /Y /Z /bracketleft
/backslash /bracketright /circumflex /underscore
/grave /a /b /c                         % Codes 96-127
/d /e /f /g
/h /i /j /k
/l /m /n /o
/p /q /r /s
/t /u /v /w
/x /y /z /braceleft
/bar /braceright /tilde /.notdef        % NB code 127 is unused
/.notdef /.notdef /.notdef /.notdef     % Codes 128-139 (Wimp characters)
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /bullet      % Codes 140-159 (Acorn extensions)
/quoteleft /quoteright /guilsinglleft /guilsinglright
/quotedblleft /quotedblright /quotedblbase /endash
/emdash /minus /OE /oe
/dagger /daggerdbl /fi /fl
/space /exclamdown /cent /sterling      % Codes 160-191
/currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft
/logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright
/onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde    % Codes 192-223
/Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis
/Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute
/Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde    % Codes 224-255
/adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis
/igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute
/ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex
/udieresis /yacute /thorn /ydieresis
] def

% This is an encoding vector for a font that is a subset of
% ZapfDingbats. It has some permutations from the original ZapfDingbats
% encoding to ensure that a set of convenient varied bullet characters
% are all drawn together in the codes &61 to &6F.
% These permutations are as follows:
%   swap &25 (a4)  with &61 (a60)
%   move &34 (a20) to   &62
%   move &38 (a24) to   &63
%   swap &48 (a35) with &65 (a64)
%   move &5D (a56) to   &66
%   move &70 (a203)to   &67
%   move &71 (a75) to   &68
%   swap &72 (a204)with &69 (a68)
%   move &75 (a78) to   &6A
%   swap &E7 (a177)with &6B (a70)

/SelwynEnc [
/.notdef /.notdef /.notdef /.notdef     % Codes 0-31 (character
/.notdef /.notdef /.notdef /.notdef     %   components required to
/.notdef /.notdef /.notdef /.notdef     %   make all the composite
/.notdef /.notdef /.notdef /.notdef     %   characters work).
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/space /a1 /a2 /a202                    % Codes 32-63
/a3 /a60 /.notdef /a119
/.notdef /a117 /a11 /a12
/.notdef /a14 /.notdef /.notdef
/.notdef /.notdef /.notdef /a19
/.notdef /a21 /a22 /.notdef
/.notdef /a25 /a26 /a27
/a28 /a6 /a7 /a8
/a9 /a10 /.notdef /.notdef              % Codes 64-95
/.notdef /.notdef /a33 /a34
/a64 /a36 /a37 /.notdef
/a39 /a40 /.notdef /.notdef
/a43 /a44 /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /a54
/a55 /.notdef /a57 /a58
/a59 /a4 /a20 /a24                      % Codes 96-127
/a63 /a35 /a56 /a203
/a75 /a204 /a78 /a177
/a71 /a72 /a73 /a74
/.notdef /.notdef /a68 /a76
/a77 /.notdef /a79 /a81
/a82 /a83 /a84 /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef     % Codes 128-159
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef     % Codes 160-191
/.notdef /.notdef /.notdef /.notdef
/a112 /a111 /a110 /a109
/a120 /a121 /a122 /a123
/a124 /a125 /a126 /a127
/a128 /a129 /a130 /a131
/a132 /a133 /a134 /a135
/a136 /a137 /a138 /a139
/.notdef /.notdef /.notdef /.notdef     % Codes 192-223
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /a161 /a163 /a164
/a196 /a165 /a192 /.notdef
/a167 /.notdef /.notdef /.notdef
/.notdef /.notdef /a173 /a162           % Codes 224-255
/a174 /a175 /a176 /a70
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
/acorn /.notdef /.notdef /.notdef       % Acorn character not available,
/.notdef /.notdef /.notdef /.notdef     %   so becomes /.notdef
/.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef
] def

% Unless you really know what you are doing, do not edit the following
% PostScript, except for the indicated possible changes.

% The size of the following dictionary can be changed. One entry is used
% for each font translation and one entry is used for the system font.
/fonts 100 dict def

/ChkCh {
  dup Encoding exch get
  CharStrings exch known {pop} {Encoding exch /.notdef put} ifelse
} bind def

/FF {
  3 1 roll
  findfont begin
    currentdict dup maxlength 1 add dict begin
      {1 index /FID ne {def} {pop pop} ifelse} forall
      /Encoding 3 -1 roll 256 array copy def
      /Metrics 1 dict def
      Metrics /.notdef 0 put
% Possible change: Delete or comment out the following line if you
% want undefined PostScript characters to generate errors rather than
% be ignored.
      0 1 255 /ChkCh load for
      dup currentdict
    end
  end
  definefont
  fonts 3 1 roll put
} bind def

% The font translation data follows. You can install further
% translations by adding lines of the form:
%   /<RISC OS font name> /<PostScript font name> <encoding name> FF
% Note that all names are case-sensitive. Also note that you should
% add any additional PostScript font names that appear here to the
% '%%DocumentFonts' comment at the head of this file.
%   This line will take a copy of the PostScript font specified, copy
% the specified encoding into it to get the right mapping of character
% codes to characters, change the width of the undefined character to
% zero and install the result as a new font whose name is the RISC OS
% font name. In addition, it checks that all of the characters named
% in the encoding vector exist in the font: any that don't are removed
% (i.e. replaced by '/.notdef') from the new font's encoding.

/Corpus.Medium /Courier Latin1Enc FF
/Corpus.Medium.Oblique /Courier-Oblique Latin1Enc FF
/Corpus.Bold /Courier-Bold Latin1Enc FF
/Corpus.Bold.Oblique /Courier-BoldOblique Latin1Enc FF
/Homerton.Medium /Helvetica Latin1Enc FF
/Homerton.Medium.Oblique /Helvetica-Oblique Latin1Enc FF
/Homerton.Bold /Helvetica-Bold Latin1Enc FF
/Homerton.Bold.Oblique /Helvetica-BoldOblique Latin1Enc FF
/NewHall.Bold /NewCenturySchlbk-Bold Latin1Enc FF
/Selwyn /ZapfDingbats SelwynEnc FF
/Trinity.Medium /Times-Roman Latin1Enc FF
/Trinity.Medium.Italic /Times-Italic Latin1Enc FF
/Trinity.Bold /Times-Bold Latin1Enc FF
/Trinity.Bold.Italic /Times-BoldItalic Latin1Enc FF
