Swedish characters in postscript files printing as space

Nigel Bennington nigel.bennington at royalskandia.com
Fri Feb 11 00:46:26 PST 2011


Actually, they are coded using ISO8859P1, which should be OK, and I thought UTF-8 was the font CUPS preferred? It certainly seems to be the default in everything I've read. Any hints on how to tell CUPS what character set encoding is in use?

Bear in mind that the PS files are produced by a third party app, and woked fine on Solaris 8, using standard SUN printing, it;'s only since moving to Solaris 10 and CUPS that the issue has begun.

> Nigel Bennington wrote:
>
> > Apologies for the delayed reply, I have been ill for a couple of days.
> >
> > I have a copy of one of the postscript files with swedish characters in,
> > from which I have redacted all confidential information.
> >
> > To summarise:
> >
> > On Solaris 10 (sparc), using CUPS 1,1,21 or CUPS 1.4.5, swedish characters
> > do not display.
> >
> > On Solaris 10 (sparc), using ghostscript to view the file, swedish
> > characters do not display.
> >
> > On Windows XP, using Adobe Acrobat Reader to view the file (via conversion
> > to pdf), swedish characters do not display.
> >
> > On Windows XP, using ghostscript to view the file, swedish characters
> > display without a problem.
> >
> > I can't see an upload mechanism on the forum, how do I upload the file for
> > you?
> >
> > Just in case, I have embedded it below the line of hyphens. below.
> >
> >
> -------------------------------------------------------------------------------
> >
> > %!PS-Adobe-1.0
> > % Postscri.str - SQR Postscript startup file
> > %
> > % Copyright (C) 1994 MITI  All Worldwide Rights Reserved
> > %
> > % Edit:
> > % -----
> > % 02-25-93  PAB  (SQR-0194)
> > %                 Modifications were made to support the various viewers
> > %                 available on the market. (e.g. pageview on SUN Sparc)
> > % (_V2.5.6_)
> > % 05-13-94  GLD  (DEV-1009) - Added 'Worldwide' Rights
> > % (_V3.0_)
> > % 08-03-94  DAN  (M-023)
> > %                 Corrected location of place calculation in hline, vline,
> > box.
> > %                 Will be in effect on very wide lines.
> > %                 Correction made to enable overlapping lines / boxes
> > % 08-03-94  JLK  (DEV-3016) Allow for multiple print options
> > %                 o Increased dictionary size to 100
> > % 09-02-94  EMP  (DEV-3008) Added macros for Grafsmap PS definitions
> > % 09-02-94  EMP  (DEV-3009)
> > %                 o Added cbox for 'crossed' box when image provided to
> > SQR
> > %                   is not proper
> > %                 o Added epsimg to perform EPS/AI translation and scaling
> > % 09-08-94  PAB  (DEV-1033)
> > %                 o Added ^D at end of file to prevent timeouts
> > % (_V3.5_)
> > % 07-31-95  PAB  (DEV-4007)
> > %                 o Account for minus sign (-) floating into comma
> > %                   position when processing SPF_PNUM packet.
> > % 08-03-95  PAB  (DEV-4001)
> > %                 o Redesigned the /ns macro for to handle alternate
> > %                   characters for the money-sign, thousand-separator and
> > %                   decimal-separator.  It now will work with EBCDIC
> > strings.
> > %                 o Increased dictionary size to 150.
> > % (_V4.0_)
> > % 08-13-96  PAB  (OH-1753)
> > %                 o Put back the old '/ns' macro under the name '/nsv1'
> > for
> > %                   older SPF files.
> > %                 o Increased dictionary size to 200.
> > % 10-01-96  PAB  (OH-1969)
> > %                 o Added 'save/restore' to instantiate each page.
> > % (_V4.3.2_)
> > % 09-01-98  PAB  (TS-4353)
> > %                 o Changed comments about GRAPHIC command to
> > ALTER-PRINTER. % (_V4.3.5_)
> > % 07-14-99  PAB  (OH-8391)
> > %                 o The "ns" macro now takes the textual characters for
> > the
> > %                   thousand and decimal indicators instead of their
> > %                   numerical value.
> > % (_V6.0_)
> > % 11-29-99  PAB  (OH-9346)
> > %                 o Added /fillbox and /ebf to support COLOR
> > % (_EOH_)
> > % Note: The lines beginning '%PROLOG1' and '%PROLOG2' are required.
> >
> > /server save def   % Save postscript VM stack
> > /sqdict 200 dict def
> > sqdict begin
> >
> > /FS {   % pass font scale, name
> >     findfont exch scalefont
> >     } bind def
> >
> > /LM 0.5 def
> > /TM 0.1 def
> > /PS 12.0000 def
> > /CS 6.00000 def
> > /OR /l def
> > /PL 8.50 def
> >
> > %  Font names:  These may be changed to any fonts that are supported by
> > your
> > %  		printer.  You may add or delete fonts.  Be careful not to
> > %		delete fonts or change font numbers in use by existing
> > %		SQR programs.  The Font_default_size is the point size used
> > %		when no explicit size is requested.
> > %
> > %		The Number's assigned below have been initialized to somewhat
> > %		emulate the Typeface numbers used by the HP LaserJet
> > %		(especially 3,4,5 -- Courier, Helvetica and Times-Roman) so
> > %		SQR programs designed for both printers can use the same
> > %		font numbers and produce similar results.  If this is not
> > %		important to you these font numbers may be reassigned any way
> > %		you like.  NOTE: SQR assumes font 3 (Courier) is a monospaced
> > %		(not proportional) font.
> > %
> > %		The first font in the list will be used if a font number is
> > %		not found.  The default font number for DECLARE PRINTER is 3.
> > %
> > %		Up to three point sizes per font are cached.
> > %
> > %		A boldface font (switched to automatically with the BOLD
> > %		qualifier to the PRINT command) must have a number equal to
> > %		100 times the font number of its associated lightface font.
> > %		Numbers assigned to lightface fonts must be between 1 and 99.
> > %
> > /Fonts [   % Array of point sizes and font names
> > % 				                (leave these as zeros)
> > % Number  Name			      Size_A   Size_B  Size_C  ID_A  ID_B  ID_C
> > % ------  ----------------	      ------   ------  ------  ----  ----  ----
> >    3      /Courier			0	0	0	0      0     0
> >    300    /Courier-Bold			0	0	0	0      0     0
> >    4      /Helvetica			0	0	0	0      0     0
> >    400    /Helvetica-Bold		0	0	0	0      0     0
> >    5      /Times-Roman			0	0	0	0      0     0
> >    500    /Times-Bold			0	0	0	0      0     0
> >    6      /AvantGarde-Book 		0	0	0	0      0     0
> >    8      /Palatino-Roman		0	0	0	0      0     0
> >    800    /Palatino-Bold		0	0	0	0      0     0
> >    11     /Symbol			0	0	0	0      0     0
> >    12     /ZapfDingbats			0	0	0	0      0     0
> >    17     /ZapfChancery-MediumItalic	0	0	0	0      0     0
> >    18     /Bookman-Light		0	0	0	0      0     0
> >    23     /NewCenturySchlbk-Roman	0	0	0	0      0     0
> >    2300   /NewCenturySchlbk-Bold	0	0	0	0      0     0
> >    30     /Courier-Oblique		0	0	0	0      0     0
> >    3000   /Courier-BoldOblique		0	0	0	0      0     0
> >    31     /Helvetica-Oblique		0	0	0	0      0     0
> >    3100   /Helvetica-BoldOblique	0	0	0	0      0     0
> >    32     /Times-Italic			0	0	0	0      0     0
> >    3200   /Times-BoldItalic		0	0	0	0      0     0
> >    33     /AvantGarde-Demi		0	0	0	0      0     0
> >    34     /AvantGarde-BookOblique	0	0	0	0      0     0
> >    35     /AvantGarde-DemiOblique	0	0	0	0      0     0
> >    36     /Palatino-Italic		0	0	0	0      0     0
> >    3600   /Palatino-BoldItalic		0	0	0	0      0     0
> >    37     /NewCenturySchlbk-Italic	0	0	0	0      0     0
> >    3700   /NewCenturySchlbk-BoldItalic	0	0	0	0      0     0
> >    38     /Helvetica-Narrow		0	0	0	0      0     0
> >    3800   /Helvetica-Narrow-Bold	0	0	0	0      0     0
> >    39     /Helvetica-Narrow-Oblique	0	0	0	0      0     0
> >    3900   /Helvetica-Narrow-BoldOblique	0	0	0	0      0     0
> >    40     /Bookman-Demi			0	0	0	0      0     0
> >    41     /Bookman-LightItalic		0	0	0	0      0     0
> >    42     /Bookman-DemiItalic		0	0	0	0      0     0
> >     ] def
> > /Font_i 8 def   % Items in each Font element
> > /Font_default_size 12 def   % Default point size
> >
> > %  Select font: You can switch from one font to another within a report by
> > %		using the ALTER-PRINTER command and specifying the font you want:
> > %
> > %		ALTER-PRINTER FONT=23 POINT-SIZE=14 ! NewCenturySchlbk-Roman, 14
> > points. %
> > %		Font is setup in printer only first time it is used, for speed.
> > %
> > /SF {   % Select Font:  Pass number of font as defined in Fonts array,
> > % and point size.
> >     /psiz exch dup 0 eq {pop Font_default_size} if def
> >     /fid exch def
> >     /flen Fonts length def
> >     % Find location of font number, use 0 if not found
> >     /fno 0 def
> >     {fno flen ge {/fno 0 def exit} if
> >     Fonts fno get fid eq
> >     {exit} {/fno fno Font_i add def} ifelse} loop
> >     % fno now points to font_number.  Now find matching point size.
> >     /fid fno def
> >     /fno fno 2 add def
> >     /flen fno 2 add def   % Limit for sizes in array
> >     {fno flen gt
> > {/fno fid 2 add def Fonts fno 3 add 0 put Fonts fno psiz put exit}
> >     {Fonts fno get dup psiz eq
> > {pop exit} if 0 eq {Fonts fno psiz put exit} if} ifelse
> > /fno fno 1 add def} loop
> >     % fno now points to location for point size.
> >     Fonts fno 3 add get dup 0 eq
> > % Font not loaded yet.
> > {pop psiz Fonts fid 1 add get FS dup
> > Fonts exch fno 3 add exch put} if
> >     setfont
> >     (w) stringwidth pop (W) stringwidth pop eq
> >      {/Font_Is_Fixed 1 def} {/Font_Is_Fixed 0 def} ifelse
> >     } bind def
> >
> > /lmarg LM 72 mul def	% Left margin
> > /tmarg TM 72 mul def	% Top margin
> > /pglen PL 72 mul def    % Page length
> >
> > /port   % Setup for portrait
> >    {/ypos pglen tmarg sub def
> >     initmatrix   % In case preceded by landscape page
> >     lmarg ypos moveto} def
> >
> > /portrait
> >   {port
> >    /pgtop pglen tmarg sub def
> >    /np {   % New-page macro
> > showpage
> > port
> > } def
> >     } def
> >
> > /land   % Setup for landscape
> >    {/ypos 612 tmarg sub def
> >     initmatrix
> >     90 rotate
> >     0 -612 translate
> >     lmarg ypos moveto} def
> >
> > /landscape
> >   {land
> >    /pgtop 612 tmarg sub def
> >    /np {   % New-page macro
> > showpage
> > land
> > } def
> >     } def
> >
> > /go {   % Goto location - pass SQR line, col
> >     1 sub CS mul lmarg add exch
> >     1 sub PS mul pgtop exch sub
> >     moveto
> >     } bind def
> >
> > /hline {   % Make horizontal line.
> >     % Pass line, col, length, thickness
> > % Line goes to right from location indicated
> >     /thick exch def thick setlinewidth
> >     /len exch CS mul def
> >     1 sub CS mul lmarg add exch
> >     1 sub PS mul pgtop exch sub
> >     PS .15 mul thick .5 mul add sub   % alter y, just below baseline
> >     moveto
> >     len 0 rlineto stroke
> >     } def
> >
> > /vline {   % Make vertical line.
> > % Pass line, col, length, thickness
> > % Line goes down from location indicated
> >     /thick exch def thick setlinewidth
> >     /len exch PS mul def
> >     1 sub CS mul lmarg add thick .5 mul sub exch
> >     1 sub PS mul pgtop exch sub
> >     PS .15 mul sub   % alter y, just below baseline
> >     moveto
> >     0 len -1 mul rlineto stroke
> >     } def
> >
> > /box {   % Make box.
> > % Pass line, col, depth, width, thickness, shading
> > % Location passed is upper left corner of box
> >     % If shading = 1, then box is not filled, but lines are
> >     % stroked using thickness
> >     gsave
> >     /shading exch def
> >     /thick exch def
> >     shading 1 eq {thick setlinewidth} {/thick 0 def} ifelse
> >     /width exch CS mul def
> >     /depth exch PS mul def
> >     1 sub CS mul lmarg add
> >     exch 2 sub PS mul pgtop exch sub
> >     PS .15 mul thick .5 mul add sub   % alter y, just below baseline
> >     moveto
> >     width 0 rlineto		% Top of box
> >     0 depth -1 mul rlineto	% Right edge
> >     width -1 mul 0 rlineto	% Bottom
> >     closepath 			% Closes box
> >     shading 1 eq {stroke} {shading setgray fill} ifelse
> >     grestore
> >     } def
> >
> > /fillbox {   % Make box.
> > % Pass line, col, depth, width, thickness
> > % Location passed is upper left corner of box
> >     gsave
> >     /thick exch def
> >     /width exch CS mul def
> >     /depth exch PS mul def
> >     1 sub CS mul lmarg add
> >     exch 2 sub PS mul pgtop exch sub
> >     PS .15 mul thick .5 mul add sub   % alter y, just below baseline
> >     moveto
> >     width 0 rlineto		% Top of box
> >     0 depth -1 mul rlineto	% Right edge
> >     width -1 mul 0 rlineto	% Bottom
> >     closepath 			% Closes box
> >     fill
> >     grestore
> >     } def
> >
> > /cbox
> > {
> > %% SQRx SQRy SQRw SQRh
> > gsave
> >     %% make box
> > 2 index 4 index 2 index 4 index 0.2 1.00 box
> > newpath
> > 0.2 setlinewidth
> > 1 1 go
> > 0 PS PS .15 mul sub rmoveto
> >     %% Upper left of SQR frame
> > 3 index 1 sub CS mul
> > 3 index 1 exch sub PS mul rmoveto
> >     %% Lower right of SQR frame
> > 1 index CS mul
> > 1 index 0 exch sub PS mul rlineto
> > closepath
> > stroke
> > pop pop pop pop
> > grestore
> >     } def
> >
> > /mtrx matrix def
> >
> > /epsimg {
> >
> > %% SQRx SQRy SQRw SQRh EPSx EPSy EPSw EPSh
> > 1 1 go
> >     %% Upper left of SQR frame
> > 7 index 1 sub CS mul
> > 7 index 1 exch sub PS mul rmoveto
> >     %% Lower left of SQR frame
> > 4 index 1 exch sub PS mul
> > 0 exch rmoveto
> >     %% Translate from currentpoint
> > currentpoint translate
> >     %% Scale to proper size
> > 5 index CS mul
> > 2 index div
> > 5 index PS mul
> > 2 index div
> > scale
> >     %% Translate from EPS lower left corner
> > 3 index 0 exch sub
> > 3 index 0 exch sub
> > translate
> >     %% Pop off items from stack
> > pop pop pop pop pop pop pop pop
> >     } def
> >
> > /bu {   % Begin underline or box or shade
> >     currentpoint /Uy exch def /Ux exch def
> >     } bind def
> >
> > /eu {   % End underline
> >     gsave
> >     currentpoint
> >     PS 6.75 div sub moveto
> >     Ux Uy PS 6.75 div sub lineto
> >     PS 16.67 div setlinewidth
> >     stroke
> >     grestore
> >     } bind def
> >
> > /eb {   % End box or shade.
> > % Pass line, col, depth, thickness, shading
> > % Calculate width, put it between depth and thickness on stack, and
> > % call box.
> >     currentpoint pop Ux sub CS div 3 1 roll
> >     box
> >     } bind def
> >
> > /ebf {   % End box or shade.
> > % Pass line, col, depth, thickness, shading
> > % Calculate width, put it between depth and thickness on stack, and
> > % call box.
> >     currentpoint pop Ux sub CS div 2 1 roll
> >     fillbox
> >     } bind def
> >
> > /nsv1  {   % Number set - pass line, col, dollar-sym, string
> > % Sets number in fixed character locations - for proportional fonts
> > % in string: _ = $ floated into comma, ' = ( floated into comma,
> > % ` = blank for width of comma.
> >     /str exch def
> >     /dlr exch def
> >     /col exch def
> >     /lin exch def
> >     /j 0 def
> >     /tchr (a) def
> >     /digw (0) stringwidth pop def
> >     /comw (,) stringwidth pop def
> >     /addw digw def
> >     /newcs col 1 sub CS mul lmarg add def
> >     /thisln lin 1 sub PS mul pgtop exch sub def
> >     str length
> > {str j get /tcod exch def
> >     tchr 0 tcod put
> > /j j 1 add def
> > % check for special characters, set up addw
> > tcod 95 eq   % _ - convert to $
> > {tchr 0 dlr put
> > /newcs newcs digw comw sub sub def} if
> > tcod 39 eq   % ' - convert to (
> > {tchr 0 40 put
> > /newcs newcs digw comw sub sub def} if
> > tcod 78 eq   % N/A
> > {newcs comw sub thisln moveto (N/A) sh exit} if
> > tcod 110 eq  % n/a
> > {newcs thisln moveto (n/a) sh exit} if
> > tcod 96 eq   % ` - convert to space
> > {tchr 0 32 put /addw comw def}
> > {tcod 44 eq tcod 46 eq or   % , or .
> > {/addw comw def} {/addw digw def} ifelse}
> > ifelse
> > newcs thisln moveto tchr sh
> > /newcs newcs addw add def} repeat
> >     } bind def
> >
> > /ns
> >   {
> >    % Number set: Sets number in fixed character locations for
> >    %             proportional fonts.
> >    % Arguments:  DecimalSep, ThousandSep, String
> >    %
> >    % Special     # = Money-Sign (single character) floated into comma
> >    %             % = ( floated into comma
> >    %             | = blank for width of comma (was * character)
> >    %             @ = blank for width of comma
> >    %             ! = Start of Money-Sign
> >    %             = = - floated into comma
> >    %
> >   /String       exch def
> >   /Seps         exch def
> >   /DecimalSep   Seps 0 get def
> >   /ThousandSep  Seps 1 get def
> >
> >   /Dash         (-) 0 get def
> >   /Space        ( ) 0 get def
> >   /Asterick     (*) 0 get def
> >   /PoundSign    (#) 0 get def
> >   /Percent      (%) 0 get def
> >   /AtSign       (@) 0 get def
> >   /VertBar      (|) 0 get def
> >   /Bang         (!) 0 get def
> >   /Equal        (=) 0 get def
> >   /LeftParen    (\() 0 get def
> >   /RightParen   (\)) 0 get def
> >   /TextChar     (a) def
> >
> >   Font_Is_Fixed 1 eq
> >    {
> >    /Index 0 def
> >    /Skip 0  def
> >    String length
> >     {
> >     Skip 0 eq
> >      {String Index get /TextCode exch def
> >       TextChar 0 TextCode put
> >       TextCode Equal eq
> >        {TextChar 0 Dash put}
> >        {TextCode AtSign eq
> >          {TextChar 0 Space put}
> >          {TextCode Percent eq
> >            {TextChar 0 LeftParen put}
> >            {TextCode VertBar eq
> >              {TextChar 0 Asterick put}
> >              if}
> >            ifelse}
> >          ifelse}
> >        ifelse
> >      TextCode Bang eq TextCode PoundSign  eq or
> >       {MS sh /Skip MS length 1 sub def}
> >       {TextChar sh} ifelse
> >      }
> >      {
> >      /Skip Skip 1 sub def
> >      } ifelse
> >     /Index Index 1 add def
> >     } repeat
> >    }
> >    {
> >    /ThousandChar (a) def
> >    /DecimalChar  (a) def
> >    /DigitWidth   (0) stringwidth pop def
> >    /MSChar       (a) def
> >    /MSCode        0 def
> >
> >    /ThoSepWidth ThousandChar 0 ThousandSep put ThousandChar stringwidth
> >    pop def /DecSepWidth DecimalChar 0 DecimalSep put DecimalChar
> >    stringwidth pop def /Nudge DigitWidth ThoSepWidth sub def
> >
> >    /MoneySignWidth 0 def
> >    /Index 0 def
> >    String length
> >     {
> >     String Index get /TextCode exch def
> >     TextCode Bang eq TextCode PoundSign  eq or
> >      {/Loop 0 def
> >       MS length
> >        {
> >        MS Loop get /MSCode exch def
> >        MSChar 0 MSCode put
> >        /Width MSChar stringwidth pop def
> >
> >        String Index get /TextCode exch def
> >        TextCode AtSign eq
> >         {/Width Width ThoSepWidth sub def} if
> >        /MoneySignWidth MoneySignWidth Width add def
> >
> >        /Loop Loop 1 add def
> >        /Index Index 1 add def
> >        } repeat
> >       exit
> >      } if
> >     /Index Index 1 add def
> >     } repeat
> >
> >    %
> >    % Get the current line and column coordinates
> >    %
> >    currentpoint /ThisLine exch def /NewColumn exch def
> >
> >    %
> >    % Remember the current line and column coordinates
> >    %
> >    /OrigColm NewColumn def
> >    /OrigLine ThisLine def
> >
> >    %
> >    % Process each character of the number string
> >    %
> >    /HadMoneySign 0 def
> >    /Index 0 def
> >    String length
> >     {
> >     String Index get /TextCode exch def
> >     TextChar 0 TextCode put
> >     /Index Index 1 add def
> >     TextCode PoundSign  eq
> >      {TextChar 0 MS 0 get put
> >       /Width MoneySignWidth def
> >       /NewColumn NewColumn Nudge sub def}
> >      {TextCode Percent eq
> >        {TextChar 0 LeftParen put
> >         /Width DigitWidth def
> >         /NewColumn NewColumn Nudge sub def}
> >        {TextCode VertBar eq
> >          {TextChar 0 Space put
> >           /Width ThoSepWidth def}
> >          {TextCode AtSign eq
> >            {TextChar 0 Space put
> >             /Width ThoSepWidth def}
> >            {TextCode Equal eq
> >              {TextChar 0 Dash put
> >               /Width DigitWidth def
> >               /NewColumn NewColumn Nudge sub def}
> >              {TextCode Bang eq
> >                {HadMoneySign 0 eq
> >                 {/HadMoneySign 1 def
> >                  /NewColumn NewColumn MoneySignWidth add def} if
> >                 /Width 0 def}
> >                {TextCode ThousandSep eq
> >                  {/Width ThoSepWidth def}
> >                  {TextCode DecimalSep eq
> >                    {/Width DecSepWidth def}
> >                    {TextCode Space eq TextCode RightParen eq or TextCode
> >                    {Dash eq or TextCode LeftParen eq or
> >                      {/Width DigitWidth def}
> >                      {/Width TextChar stringwidth pop def}
> >                      ifelse}
> >                    ifelse}
> >                  ifelse}
> >                ifelse}
> >              ifelse}
> >            ifelse}
> >          ifelse}
> >        ifelse}
> >      ifelse
> >
> >      Width 0 ne
> >       {NewColumn ThisLine moveto TextChar sh
> >        /NewColumn NewColumn Width add def
> >       } if
> >      } repeat
> >
> >     %
> >     % If the string had a Money-Sign in it then we need to put it
> >     % in since the above logic simply left enough space for it.
> >     %
> >     HadMoneySign 1 eq
> >      {
> >      %
> >      % Remember our location
> >      %
> >      currentpoint /CurrLine exch def /CurrColm exch def
> >
> >      %
> >      % Position to the beginning of the string
> >      %
> >      OrigColm OrigLine moveto
> >
> >      %
> >      % Process each character (advancing position) until we get to the
> >      % start of the Money-String then we simply output the string.
> >      %
> >      /Index 0 def
> >      String length
> >       {
> >       String Index get /TextCode exch def
> >       TextChar 0 TextCode put
> >       /Width TextChar stringwidth pop def
> >       TextCode Space eq TextCode Dash eq or TextCode LeftParen eq or
> >        {/Width DigitWidth def}
> >        {TextCode Percent eq
> >         {/Width DigitWidth Nudge sub def}
> >         {TextCode AtSign eq
> >          {/Width ThoSepWidth def}
> >          {TextCode Bang eq
> >           {MS sh exit}
> >          if}
> >         ifelse}
> >        ifelse}
> >       ifelse
> >
> >       /OrigColm OrigColm Width add def
> >       OrigColm OrigLine moveto
> >       /Index Index 1 add def
> >       } repeat
> >      %
> >      % Restore our location
> >      %
> >      CurrColm CurrLine moveto
> >      } if
> >    } ifelse
> >   } bind def
> >
> > /sh {show} bind def   % show macro
> >
> > OR /l eq {landscape} {portrait} ifelse   % Choose portrait or landscape
> >
> > % for Grafsman driver
> >
> > /master /Times-Roman findfont 1.3 scalefont def
> > /n {newpath} def
> > /m {moveto} def
> > /l {lineto} def
> > /s {stroke} def
> > /f {gsave fill grestore} def
> > /d {setdash} def
> > /g {setgray} def
> > /c {closepath} def
> > /t {dup stringwidth exch -.5 mul exch rmoveto show} def
> >
> > end   % End sqdict definitions
> >
> > %%EndProlog
> >
> > %%Page: 1 1
> > sqdict begin save
> >
> > 3 12 SF
> > /MS ($) def
> > 3 1 go () sh
> > 5 15 SF 9 1 go () sh
> > 9 54 go 500 15 SF (INVESTMENT REPORT) sh
> > 5 15 SF 5 9 SF 11 10 go (13 02926 625) sh
> > 11 25 go (30 September xxxx) sh
> > 11 45 go (.,) (000000000) ns
> > 5 11 SF 11 54 go 500 11 SF (Mr Björn & Mrs xxxxx-xxxxx xxxxxxx) sh
> > 5 11 SF 5 8 SF 13 9 go (Mr Björn & Mrs xxxxx-xxxxx xxxxxxx) sh
> > 14 9 go (xxxxxxxxxxxxx x) sh
> > 15 9 go (x-xxx xx xxxxxxxx) sh
> > 16 9 go (xxxxxx) sh
> > 17 9 go ( ) sh
> > 18 45 go () sh
> > 17 43 go (xxx) sh
> > 24 1 go () sh
> > 25 1 go () sh
> > 5 7 SF 26 1 go () sh
> > 28 26 7 81 0.00 0.86 box
> > 28 32 go (This statement does not confer any rights distinct from those
> > set out in the Policy Terms. The values quoted are for information
> > purposes only ) sh 29 32 go (and may not include any quarterly Portfolio
> > Fund charges accrued but not yet applied. The value is based upon the
> > latest valuation data available ) sh 30 32 go (to us and may not reflect
> > any applicable interest or redemption charges which may apply in the event
> > of the realisation of an asset. The ) sh 31 32 go (surrender/encashment
> > value* will be 100% of the Portfolio Fund value reduced by any applicable
> > charges shown in your Charges Schedule. ) sh 32 32 go ( The death benefit*
> > on the death of the Relevant Life Assured \(not applicable to Redemption
> > Bond contracts\) will be 101% of the fund value ) sh 33 32 go (reduced by
> > any applicable charge shown in your Charges Schedule unless your Schedule
> > shows a higher amount. Please check and advise xxxxx xxxxxxx ) sh 34 32 go
> > (within 1 month from the date of the valuation of any discrepancies. *
> > calculated on the date stated in your Policy Bond Terms.) sh 37 23 go ()
> > sh 37 32 go 500 7 SF (An invoice for the Portfolio Fund charges accrued
> > during the last quarter will be sent to your Fund Manager. You or your
> > appointed fund adviser ) sh 5 7 SF 38 32 go 500 7 SF (may wish to liaise
> > with them to ensure that sufficient cash is available to pay the charges.)
> > sh 5 7 SF 39 124 go () sh 40 124 go () sh 47 124 go () sh 47 32 go (Member
> > of the Association of International Life Offices. Authorised by the
> > FSA.xxx.xxxxxxxxxxxx.xxx) sh
> > 5 5 SF 50 125 go (Page  1) sh
> > 50 129 go (of) sh
> > 50 131 go (8) sh
> > 50 132 go 5 9 SF np
> > restore end
> > %%Page: 2 2
> > sqdict begin save
> > 5 9 SF
> > /MS ($) def
> > 9 1 go () sh
> > 5 15 SF 9 51 go 500 15 SF (VALUATION SUMMARY) sh
> > 5 15 SF 5 12 SF 11 38 go 500 12 SF (Policy No) sh
> > 5 12 SF 11 48 go 500 12 SF (.,) (000000000) ns
> > 5 12 SF 11 78 go 500 12 SF (30 September 0000) sh
> > 5 12 SF 5 7 SF 14 38 go 500 7 SF (SECURITY TYPE) sh
> > 5 7 SF 14 62 go 500 7 SF (GBP MARKET VALUE) sh
> > 5 7 SF 14 89 go 500 7 SF (%VALUE) sh
> > 5 7 SF 16 38 go (CASH) sh
> > 16 63 go (.,) (   @   @   @ 10,901.32) ns
> > 16 83 go (.,) (   @   @   @   @  3.36) ns
> > 18 38 go (DEBT INSTRUMENTS) sh
> > 18 63 go (.,) (   @   @   @313,574.08) ns
> > 18 83 go (.,) (   @   @   @   @ 96.64) ns
> > 20 38 go 500 7 SF (TOTAL VALUE) sh
> > 5 7 SF 20 63 go (.,) (   @   @   @000,000.00) ns
> > 20 91 go 500 7 SF (100.00) sh
> > 5 7 SF 5 8 SF 5 5 SF 50 125 go (Page  2) sh
> > 50 129 go (of) sh
> > 50 131 go (8) sh
> > 50 132 go 5 9 SF np
> > restore end
> > %%Page: 3 3
> > sqdict begin save
> > 5 9 SF
> > /MS ($) def
> > 5 15 SF 9 1 go () sh
> > 9 51 go 500 15 SF (PORTFOLIO VALUATION) sh
> > 5 15 SF 5 12 SF 11 43 go 500 12 SF (Policy No) sh
> > 5 12 SF 11 53 go 500 12 SF (.,) (000000000) ns
> > 5 12 SF 11 81 go 500 12 SF (30 September 0000) sh
> > 5 12 SF 12 1 go () sh
> > 5 10 SF 17 1 go () sh
> > 12 1 go () sh
> > 14 55 go 500 10 SF (DEBT INSTRUMENTS) sh
> > 5 10 SF 5 7 SF 16 1 go 500 7 SF (SECURITY) sh
> > 5 7 SF 17 1 go 500 7 SF (NUMBER) sh
> > 5 7 SF 16 10 go 500 7 SF (COMPANY & STOCK NAME) sh
> > 5 7 SF 16 31 go 500 7 SF (CURRENCY) sh
> > 5 7 SF 16 42 go 500 7 SF (UNITS) sh
> > 5 7 SF 16 51 go 500 7 SF (GBP BK COST) sh
> > 5 7 SF 16 62 go 500 7 SF (MKT PRICE) sh
> > 5 7 SF 16 73 go 500 7 SF (GBP RATE) sh
> > 5 7 SF 16 83 go 500 7 SF (GBP VALUE) sh
> > 5 7 SF 16 92 go 500 7 SF (ACCRUED ) sh
> > 5 7 SF 17 92 go 500 7 SF (DAYS ) sh
> > 5 7 SF 16 92 go () sh
> > 16 104 go 500 7 SF (ACCRUED ) sh
> > 5 7 SF 17 104 go 500 7 SF (INTEREST ) sh
> > 5 7 SF 16 108 go () sh
> > 16 116 go 500 7 SF (UNREALISED) sh
> > 5 7 SF 16 126 go 500 7 SF (%PROFIT) sh
> > 5 7 SF 21 133 go () sh
> > 16 133 go () sh
> > 18 1 go (0000000) sh
> > 18 10 go (xxxxxxxxxxxxx) sh
> > 19 10 go (xxxx xxxxxx xx xxx) sh
> > 18 33 go (xxx) sh
> > 18 34 go (.,) (  @   @   @000,000.00000) ns
> > 18 47 go (.,) (   @   @   @ 00,000.00) ns
> > 18 60 go (.,) (   @ 00.0000000) ns
> > 18 71 go (.,) (   @ 00.000000) ns
> > 18 78 go (.,) (   @   @   @ 00,000.00) ns
> > 18 96 go (.,) (   @   @   @   @  0.00) ns
> > 18 111 go (.,) (   @   @   @  0,000.00) ns
> > 18 126 go (.,) (      0.00) ns
> > 23 136 go () sh
> > 18 136 go () sh
> > 20 1 go (0000000) sh
> > 20 10 go (xxxxxxxxxxxxx) sh
> > 21 10 go (xxxx xxxxxx xx xxx) sh
> > 20 33 go (xxx) sh
> > 20 34 go (.,) (  @   @   @000,000.00000) ns
> > 20 47 go (.,) (   @   @   @  0,000.00) ns
> > 20 60 go (.,) (   @ 00.0000000) ns
> > 20 71 go (.,) (   @ 00.000000) ns
> > 20 78 go (.,) (   @   @   @  0,000.00) ns
> > 20 96 go (.,) (   @   @   @   @  0.00) ns
> > 20 111 go (.,) (   @   @   @   @000.00) ns
> > 20 126 go (.,) (      0.00) ns
> > 25 136 go () sh
> > 20 136 go () sh
> > 22 1 go (xxxxxxx) sh
> > 22 10 go (xxxxxxx xxxxxxxxxx) sh
> > 23 10 go (0% xxx/xxx 00/00/00 000 xxxxxxx xxx) sh
> > 22 33 go (xxx) sh
> > 22 34 go (.,) (  @   @   @000,000.00000) ns
> > 22 47 go (.,) (   @   @   @ 00,000.00) ns
> > 22 60 go (.,) (   @ 00.0000000) ns
> > 22 71 go (.,) (   @ 00.000000) ns
> > 22 78 go (.,) (   @   @   @ 00,000.00) ns
> > 22 96 go (.,) (   @   @   @   @  0.00) ns
> > 22 111 go (.,) (   @   @   @  0,000.00) ns
> > 22 126 go (.,) (     00.00) ns
> > 27 136 go () sh
> > 22 136 go () sh
> > 24 1 go (xxxxxxx) sh
> > 24 10 go (xxxxxxx xxxxxxxxxx) sh
> > 25 10 go (000 x 00/00/00 000000 xxx) sh
> > 24 33 go (xxx) sh
> > 24 34 go (.,) (  @   @   @000,000.00000) ns
> > 24 47 go (.,) (   @   @   @ 00,000.00) ns
> > 24 60 go (.,) (   @000.0000000) ns
> > 24 71 go (.,) (   @ 00.000000) ns
> > 24 78 go (.,) (   @   @   @ 00,000.00) ns
> > 24 96 go (.,) (   @   @   @   @  0.00) ns
> > 24 111 go (.,) (   @   @   @  0,000.00) ns
> > 24 126 go (.,) (     00.00) ns
> > 29 136 go () sh
> > 24 136 go () sh
> > 26 1 go (xxxxxxx) sh
> > 26 10 go (xxxxxxx xxxxxxxxxx) sh
> > 27 10 go (00/00/00 000 x 000000 xxx) sh
> > 26 33 go (xxx) sh
> > 26 34 go (.,) (  @   @   @000,000.00000) ns
> > 26 47 go (.,) (   @   @   @ 00,000.00) ns
> > 26 60 go (.,) (   @000.0000000) ns
> > 26 71 go (.,) (   @ 00.000000) ns
> > 26 78 go (.,) (   @   @   @ 00,000.00) ns
> > 26 96 go (.,) (   @   @   @   @  0.00) ns
> > 26 111 go (.,) (   @   @   @  0,000.00) ns
> > 26 126 go (.,) (     00.00) ns
> > 31 136 go () sh
> > 26 136 go () sh
> > 28 1 go (xxxxxxx) sh
> > 28 10 go (xxx) sh
> > 29 10 go (xx 000 x 00/00/00 xxx) sh
> > 28 33 go (xxx) sh
> > 28 34 go (.,) (  @   @   @000,000.00000) ns
> > 28 47 go (.,) (   @   @   @ 00,000.00) ns
> > 28 60 go (.,) (   @ 00.0000000) ns
> > 28 71 go (.,) (   @ 00.000000) ns
> > 28 78 go (.,) (   @   @   @ 00,000.00) ns
> > 28 96 go (.,) (   @   @   @   @  0.00) ns
> > 28 111 go (.,) (   @   @   @  0,000.00) ns
> > 28 126 go (.,) (      0.00) ns
> > 33 136 go () sh
> > 28 136 go () sh
> > 30 1 go (xxxxxxx) sh
> > 30 10 go (xxxx) sh
> > 31 10 go (xxxx xxxx xxxxxxxxxxx 000000 xxx) sh
> > 30 33 go (xxx) sh
> > 30 34 go (.,) (  @   @   @000,000.00000) ns
> > 30 47 go (.,) (   @   @   @  0,000.00) ns
> > 30 60 go (.,) (   @ 00.0000000) ns
> > 30 71 go (.,) (   @ 00.000000) ns
> > 30 78 go (.,) (   @   @   @  0,000.00) ns
> > 30 96 go (.,) (   @   @   @   @  0.00) ns
> > 30 111 go (.,) (   @   @   @   @000.00) ns
> > 30 126 go (.,) (      0.00) ns
> > 35 136 go () sh
> > 30 136 go () sh
> > 32 1 go (xxxxxxx) sh
> > 32 10 go (xxxxxxx xxxxxxxxxx) sh
> > 33 10 go (xxxx xxxx 00/00/00 xxx) sh
> > 32 33 go (xxX) sh
> > 32 34 go (.,) (  @   @   @000,000.00000) ns
> > 32 47 go (.,) (   @   @   @  0,000.00) ns
> > 32 60 go (.,) (   @ 00.0000000) ns
> > 32 71 go (.,) (   @ 00.000000) ns
> > 32 78 go (.,) (   @   @   @  0,000.00) ns
> > 32 96 go (.,) (   @   @   @   @  0.00) ns
> > 32 111 go (.,) (   @   @   @   @000.00) ns
> > 32 126 go (.,) (      0.00) ns
> > 37 136 go () sh
> > 32 136 go () sh
> > 34 1 go (xxxxxxx) sh
> > 34 10 go (xxxxxxx xxxxxxxxxx) sh
> > 35 10 go (xxxx xxxx xxx) sh
> > 34 33 go (xxx) sh
> > 34 34 go (.,) (  @   @   @000,000.00000) ns
> > 34 47 go (.,) (   @   @   @ 00,000.00) ns
> > 34 60 go (.,) (   @ 00.0000000) ns
> > 34 71 go (.,) (   @ 00.000000) ns
> > 34 78 go (.,) (   @   @   @ 00,000.00) ns
> > 34 96 go (.,) (   @   @   @   @  0.00) ns
> > 34 111 go (.,) (   @   @   @   @000.00) ns
> > 34 126 go (.,) (      0.00) ns
> > 39 136 go () sh
> > 34 136 go () sh
> > 36 1 go (0000000) sh
> > 36 10 go (xxx) sh
> > 37 10 go (xxxx 00/00/00 xxx) sh
> > 36 33 go (xxx) sh
> > 36 34 go (.,) (  @   @   @000,000.00000) ns
> > 36 47 go (.,) (   @   @   @  0,000.00) ns
> > 36 60 go (.,) (   @000.0000000) ns
> > 36 71 go (.,) (   @ 00.000000) ns
> > 36 78 go (.,) (   @   @   @ 00,000.00) ns
> > 36 96 go (.,) (   @   @   @   @  0.00) ns
> > 36 111 go (.,) (   @   @   @  0,000.00) ns
> > 36 126 go (.,) (     00.00) ns
> > 41 136 go () sh
> > 36 136 go () sh
> > 38 1 go (xxxxxxx) sh
> > 38 10 go (xxxx) sh
> > 39 10 go (xxxxx 000000 xxx) sh
> > 38 33 go (xxx) sh
> > 38 34 go (.,) (  @   @   @000,000.00000) ns
> > 38 47 go (.,) (   @   @   @ 00,000.00) ns
> > 38 60 go (.,) (   @ 00.0000000) ns
> > 38 71 go (.,) (   @ 00.000000) ns
> > 38 78 go (.,) (   @   @   @ 00,000.00) ns
> > 38 96 go (.,) (   @   @   @   @  0.00) ns
> > 38 111 go (.,) (   @   @   @   =000.00) ns
> > 38 126 go (.,) (     -0.00) ns
> > 43 136 go () sh
> > 38 136 go () sh
> > 40 1 go (xxxxxxx) sh
> > 40 10 go (xxxxxxx xxxxxxxxxx) sh
> > 41 10 go (xxxxx 000000 xxx) sh
> > 40 33 go (xxx) sh
> > 40 34 go (.,) (  @   @   @000,000.00000) ns
> > 40 47 go (.,) (   @   @   @ 00,000.00) ns
> > 40 60 go (.,) (   @000.0000000) ns
> > 40 71 go (.,) (   @ 00.000000) ns
> > 40 78 go (.,) (   @   @   @ 00,000.00) ns
> > 40 96 go (.,) (   @   @   @   @  0.00) ns
> > 40 111 go (.,) (   @   @   @  0,000.00) ns
> > 40 126 go (.,) (     00.00) ns
> > 45 136 go () sh
> > 40 136 go () sh
> > 42 1 go (xxxxxxx) sh
> > 42 10 go (xxxxxxx xxxxxxxxxx) sh
> > 43 10 go (0% xxx xxx 00/00/0000 xxx ) sh
> > 42 33 go (xxx) sh
> > 42 34 go (.,) (  @   @   @000,000.00000) ns
> > 42 47 go (.,) (   @   @   @ 00,000.00) ns
> > 42 60 go (.,) (   @000.0000000) ns
> > 42 71 go (.,) (   @ 00.000000) ns
> > 42 78 go (.,) (   @   @   @ 00,000.00) ns
> > 42 96 go (.,) (   @   @   @   @  0.00) ns
> > 42 111 go (.,) (   @   @   @  0,000.00) ns
> > 42 126 go (.,) (     00.00) ns
> > 47 136 go () sh
> > 42 136 go () sh
> > 44 1 go (xxxxxxx) sh
> > 44 10 go (xxxxxxx xxxxxxxxxx) sh
> > 45 10 go (xxx xxxxx 00/00/0000 xxx) sh
> > 44 33 go (xxx) sh
> > 44 34 go (.,) (  @   @   @000,000.00000) ns
> > 44 47 go (.,) (   @   @   @ 00,000.00) ns
> > 44 60 go (.,) (   @000.0000000) ns
> > 44 71 go (.,) (   @ 00.000000) ns
> > 44 78 go (.,) (   @   @   @ 00,000.00) ns
> > 44 96 go (.,) (   @   @   @   @  0.00) ns
> > 44 111 go (.,) (   @   @   @  0,000.00) ns
> > 44 126 go (.,) (     00.00) ns
> > 5 8 SF 5 5 SF 50 125 go (Page  3) sh
> > 50 129 go (of) sh
> > 50 131 go (8) sh
> > 50 132 go 5 9 SF np
> > restore end
> > %%Page: 4 4
> > sqdict begin save
> > 5 9 SF
> > /MS ($) def
> > 8 136 go () sh
> > 7 136 go () sh
> > 5 10 SF 8 55 go 500 10 SF (DEBT INSTRUMENTS) sh
> > 5 10 SF 5 7 SF 10 1 go 500 7 SF (SECURITY) sh
> > 5 7 SF 11 1 go 500 7 SF (NUMBER) sh
> > 5 7 SF 10 10 go 500 7 SF (COMPANY & STOCK NAME) sh
> > 5 7 SF 10 31 go 500 7 SF (CURRENCY) sh
> > 5 7 SF 10 42 go 500 7 SF (UNITS) sh
> > 5 7 SF 10 51 go 500 7 SF (GBP BK COST) sh
> > 5 7 SF 10 62 go 500 7 SF (MKT PRICE) sh
> > 5 7 SF 10 73 go 500 7 SF (GBP RATE) sh
> > 5 7 SF 10 83 go 500 7 SF (GBP VALUE) sh
> > 5 7 SF 10 92 go 500 7 SF (ACCRUED ) sh
> > 5 7 SF 11 92 go 500 7 SF (DAYS ) sh
> > 5 7 SF 10 92 go () sh
> > 10 104 go 500 7 SF (ACCRUED ) sh
> > 5 7 SF 11 104 go 500 7 SF (INTEREST ) sh
> > 5 7 SF 10 108 go () sh
> > 10 116 go 500 7 SF (UNREALISED) sh
> > 5 7 SF 10 126 go 500 7 SF (%PROFIT) sh
> > 5 7 SF 12 1 go (xxxxxxx) sh
> > 12 10 go (xxxxxxx xxxxxxxxxxxxx) sh
> > 13 10 go (0% xxx xxx xxx 00/0000 xxx) sh
> > 12 33 go (xxx) sh
> > 12 34 go (.,) (  @   @   @000,000.00000) ns
> > 12 47 go (.,) (   @   @   @  0,000.00) ns
> > 12 60 go (.,) (   @000.0000000) ns
> > 12 71 go (.,) (   @ 00.000000) ns
> > 12 78 go (.,) (   @   @   @ 00,000.00) ns
> > 12 96 go (.,) (   @   @   @   @  0.00) ns
> > 12 111 go (.,) (   @   @   @  0,000.00) ns
> > 12 126 go (.,) (     00.00) ns
> > 17 136 go () sh
> > 12 136 go () sh
> > 14 1 go (xxxxxxx) sh
> > 14 10 go (xxxxxxx xxxxxxxxxx) sh
> > 15 10 go (0% xxx xxx 00/00/0000 xxx) sh
> > 14 33 go (xxx) sh
> > 14 34 go (.,) (  @   @   @000,000.00000) ns
> > 14 47 go (.,) (   @   @   @ 00,000.00) ns
> > 14 60 go (.,) (   @ 00.0000000) ns
> > 14 71 go (.,) (   @ 00.000000) ns
> > 14 78 go (.,) (   @   @   @ 00,000.00) ns
> > 14 96 go (.,) (   @   @   @   @  0.00) ns
> > 14 111 go (.,) (   @   @   @  0,000.00) ns
> > 14 126 go (.,) (      0.00) ns
> > 15 74 go 500 7 SF (TOTAL) sh
> > 5 7 SF 15 78 go (.,) (   @   @   @000,000.00) ns
> > 5 8 SF 5 5 SF 50 125 go (Page  4) sh
> > 50 129 go (of) sh
> > 50 131 go (8) sh
> > 50 132 go 5 9 SF np
> > restore end
> > %%Page: 5 5
> > sqdict begin save
> > 5 9 SF
> > /MS ($) def
> > 9 1 go () sh
> > 5 15 SF 9 43 go 500 15 SF (CASH ACCOUNT SUMMARY) sh
> > 5 15 SF 5 12 SF 11 40 go 500 12 SF (Policy No) sh
> > 5 12 SF 11 50 go 500 12 SF (.,) (000000000) ns
> > 5 12 SF 11 78 go 500 12 SF (00 xxxxxxxxx 0000) sh
> > 5 12 SF 12 95 go () sh
> > 5 7 SF 14 8 go 500 7 SF (ACCOUNT TYPE) sh
> > 5 7 SF 14 28 go 500 7 SF (LOCATION) sh
> > 5 7 SF 14 46 go 500 7 SF (REFERENCE) sh
> > 5 7 SF 14 65 go 500 7 SF (CURRENCY) sh
> > 5 7 SF 14 82 go 500 7 SF (BALANCE) sh
> > 5 7 SF 14 93 go 500 7 SF (EXCHANGE RATE) sh
> > 5 7 SF 14 117 go 500 7 SF (GBP BALANCE) sh
> > 5 7 SF 15 8 go (CURRENT ACCOUNT) sh
> > 15 28 go (xxx-x) sh
> > 15 46 go (00000 xxx 0-000000) sh
> > 15 65 go (xxX) sh
> > 15 76 go (.,) (   @   @   @   @-00.00) ns
> > 15 96 go (.,) (   @  0.000000) ns
> > 15 114 go (.,) (   @   @   @   @-00.00) ns
> > 18 136 go () sh
> > 15 136 go () sh
> > 16 8 go (CURRENT ACCOUNT) sh
> > 16 28 go (xxx-x) sh
> > 16 46 go (00000 xxx 0-000000) sh
> > 16 65 go (xxx) sh
> > 16 76 go (.,) (   @   @   @   @  0.00) ns
> > 16 96 go (.,) (   @  0.000000) ns
> > 16 114 go (.,) (   @   @   @   @  0.00) ns
> > 19 136 go () sh
> > 16 136 go () sh
> > 17 8 go (CURRENT ACCOUNT) sh
> > 17 28 go (xxx-x) sh
> > 17 46 go (00000 xxx 0-000000) sh
> > 17 65 go (xxx) sh
> > 17 76 go (.,) (   @   @   @000,000.00) ns
> > 17 96 go (.,) (   @ 00.000000) ns
> > 17 114 go (.,) (   @   @   @ 00,000.00) ns
> > 20 136 go () sh
> > 17 136 go () sh
> > 18 8 go (CURRENT ACCOUNT) sh
> > 18 28 go (xxx-x) sh
> > 18 46 go (00000 xxx 0-000000) sh
> > 18 65 go (xxX) sh
> > 18 76 go (.,) (   @   @   @   @  0.00) ns
> > 18 96 go (.,) (   @  0.000000) ns
> > 18 114 go (.,) (   @   @   @   @  0.00) ns
> > 21 136 go () sh
> > 18 136 go () sh
> > 20 100 go 500 7 SF (TOTAL) sh
> > 5 7 SF 20 114 go (.,) (   @   @   @ 00,000.00) ns
> > 5 8 SF 47 90 go 5 5 SF 50 125 go (Page  5) sh
> > 50 129 go (of) sh
> > 50 131 go (8) sh
> > 50 132 go 5 9 SF np
> > restore end
> > %%Page: 6 6
> > sqdict begin save
> > 5 9 SF
> > /MS ($) def
> > 9 1 go () sh
> > 5 15 SF 9 47 go 500 15 SF (CASH ACCOUNT TRANSACTIONS) sh
> > 5 15 SF 5 12 SF 11 37 go 500 12 SF (Policy No) sh
> > 5 12 SF 11 47 go 500 12 SF (.,) (000000000) ns
> > 5 12 SF 11 81 go 500 12 SF (00 xxxxxxxxx 0000) sh
> > 5 12 SF 5 7 SF 14 5 go 500 7 SF (ACCOUNT CURRENCY  : ) sh
> > 5 7 SF 14 24 go (xxx-xxxxx xxxxxxxx) sh
> > 15 5 go 500 7 SF (ACCOUNT TYPE      : ) sh
> > 5 7 SF 15 24 go (xxxxxxx xxxxxxx-xxx-x) sh
> > 16 5 go 500 7 SF (ACCOUNT REFERENCE :) sh
> > 5 7 SF 16 24 go (00000 xxx 0-000000) sh
> > 18 5 go 500 7 SF (VALUATION DATE) sh
> > 5 7 SF 18 23 go 500 7 SF (REFERENCE) sh
> > 5 7 SF 18 43 go 500 7 SF (PARTICULARS) sh
> > 5 7 SF 18 92 go 500 7 SF (DEBIT) sh
> > 5 7 SF 18 106 go 500 7 SF (CREDIT) sh
> > 5 7 SF 18 119 go 500 7 SF (BALANCE) sh
> > 5 7 SF 5 8 SF 19 23 go (brought forward) sh
> > 5 7 SF 19 113 go (.,) (   @   @   @   =000.00) ns
> > 20 5 go (00-000-0000) sh
> > 20 23 go (xx-xxxxxxx) sh
> > 5 8 SF 20 43 go (xx-xxxxxxx:xxxxxxxxxxxxx xxxxxx: xx) sh
> > 5 7 SF 20 83 go (.,) (   @   @   @   @ 00.00) ns
> > 20 113 go (.,) (   @   @   @   =000.00) ns
> > 23 135 go () sh
> > 20 135 go () sh
> > 21 5 go (00-xxx-0000) sh
> > 21 23 go (00-0000000) sh
> > 5 8 SF 21 43 go (00-0000000: xxxxxxxxxxxxxxx: xxxxxxxx xxxx xxx) sh
> > 5 7 SF 21 98 go (.,) (   @   @   @   @ 00.00) ns
> > 21 113 go (.,) (   @   @   @   =000.00) ns
> > 24 135 go () sh
> > 21 135 go () sh
> > 22 92 go 500 7 SF (ACCOUNT TOTAL) sh
> > 5 7 SF 22 113 go (.,) (   @   @   @   =000.00) ns
> > 5 8 SF 5 5 SF 50 125 go (Page  6) sh
> > 50 129 go (of) sh
> > 50 131 go (8) sh
> > 50 132 go 5 9 SF np
> > restore end
> > %%Page: 7 7
> > sqdict begin save
> > 5 9 SF
> > /MS ($) def
> > 5 15 SF 9 1 go () sh
> > 9 47 go 500 15 SF (CASH ACCOUNT TRANSACTIONS) sh
> > 5 15 SF 5 12 SF 11 37 go 500 12 SF (Policy No) sh
> > 5 12 SF 11 47 go 500 12 SF (.,) (000000000) ns
> > 5 12 SF 11 81 go 500 12 SF (00 xxxxxxxxx 0000) sh
> > 5 12 SF 5 7 SF 14 5 go 500 7 SF (ACCOUNT CURRENCY  : ) sh
> > 5 7 SF 14 24 go (xxx-xxxxx xxxxxxxx) sh
> > 15 5 go 500 7 SF (ACCOUNT TYPE      : ) sh
> > 5 7 SF 15 24 go (xxxxxxx xxxxxxx-xxx-x) sh
> > 16 5 go 500 7 SF (ACCOUNT REFERENCE :) sh
> > 5 7 SF 16 24 go (00000 xxx 0-000000) sh
> > 18 5 go 500 7 SF (VALUATION DATE) sh
> > 5 7 SF 18 23 go 500 7 SF (REFERENCE) sh
> > 5 7 SF 18 43 go 500 7 SF (PARTICULARS) sh
> > 5 7 SF 18 92 go 500 7 SF (DEBIT) sh
> > 5 7 SF 18 106 go 500 7 SF (CREDIT) sh
> > 5 7 SF 18 119 go 500 7 SF (BALANCE) sh
> > 5 7 SF 5 8 SF 19 23 go (brought forward) sh
> > 5 7 SF 19 113 go (.,) (   @   @   @   @  0.00) ns
> > 20 5 go (00-xxx-0000) sh
> > 20 23 go (000-0000000) sh
> > 5 8 SF 20 43 go (000:0000000-0:xxxxxX/xxx at 00.000000) sh
> > 5 7 SF 20 98 go (.,) (   @   @   @   @ 00.00) ns
> > 20 113 go (.,) (   @   @   @   @ 00.00) ns
> > 23 135 go () sh
> > 20 135 go () sh
> > 21 5 go (00-xxx-0000) sh
> > 21 23 go (00-0000000) sh
> > 5 8 SF 21 43 go (00-0000000: xxxxxxxxxxxxxxx: xxxxxxxx xx xxx) sh
> > 5 7 SF 21 83 go (.,) (   @   @   @   @ 00.00) ns
> > 21 113 go (.,) (   @   @   @   @  0.00) ns
> > 24 135 go () sh
> > 21 135 go () sh
> > 22 92 go 500 7 SF (ACCOUNT TOTAL) sh
> > 5 7 SF 22 113 go (.,) (   @   @   @   @  0.00) ns
> > 5 8 SF 5 5 SF 50 125 go (Page  7) sh
> > 50 129 go (of) sh
> > 50 131 go (8) sh
> > 50 132 go 5 9 SF np
> > restore end
> > %%Page: 8 8
> > sqdict begin save
> > 5 9 SF
> > /MS ($) def
> > 5 15 SF 9 1 go () sh
> > 9 47 go 500 15 SF (CASH ACCOUNT TRANSACTIONS) sh
> > 5 15 SF 5 12 SF 11 37 go 500 12 SF (Policy No) sh
> > 5 12 SF 11 47 go 500 12 SF (.,) (000000000) ns
> > 5 12 SF 11 81 go 500 12 SF (00 xxxxxxxxX 0000) sh
> > 5 12 SF 5 7 SF 14 5 go 500 7 SF (ACCOUNT CURRENCY  : ) sh
> > 5 7 SF 14 24 go (xxx-xxxxxxx xxxxx) sh
> > 15 5 go 500 7 SF (ACCOUNT TYPE      : ) sh
> > 5 7 SF 15 24 go (xxxxxxx xxxxxxx-xxx-x) sh
> > 16 5 go 500 7 SF (ACCOUNT REFERENCE :) sh
> > 5 7 SF 16 24 go (33978 SEK 1-369126) sh
> > 18 5 go 500 7 SF (VALUATION DATE) sh
> > 5 7 SF 18 23 go 500 7 SF (REFERENCE) sh
> > 5 7 SF 18 43 go 500 7 SF (PARTICULARS) sh
> > 5 7 SF 18 92 go 500 7 SF (DEBIT) sh
> > 5 7 SF 18 106 go 500 7 SF (CREDIT) sh
> > 5 7 SF 18 119 go 500 7 SF (BALANCE) sh
> > 5 7 SF 5 8 SF 19 23 go (brought forward) sh
> > 5 7 SF 19 113 go (.,) (   @   @   @000,000.00) ns
> > 20 5 go (00-xxx-0000) sh
> > 20 23 go (000-0000000) sh
> > 5 8 SF 20 43 go (000:0000000-0:xxxxxx/xxx at 00.000000) sh
> > 5 7 SF 20 83 go (.,) (   @   @   @  0,000.00) ns
> > 20 113 go (.,) (   @   @   @000,000.00) ns
> > 23 135 go () sh
> > 20 135 go () sh
> > 21 92 go 500 7 SF (ACCOUNT TOTAL) sh
> > 5 7 SF 21 113 go (.,) (   @   @   @000,000.00) ns
> > 5 8 SF 5 5 SF 50 125 go (Page  8) sh
> > 50 129 go (of) sh
> > 50 131 go (8) sh
> > 50 132 go 5 9 SF np
> > restore end
> >
> > % After data:
> > %%Trailer
> > server restore   % Restore Postscript VM stack
> > 
> >> Nigel Bennington wrote:
> >>
> >> > Unfortunately, I can't post the documents, as they are
> >> > client-confidential.
> >> >
> >> > I assume that they are correctly formed, since the exact same document
> >> > prints perfectly when printed from a windows machine, using Adobe
> >> > Reader.
> >> >
> >> >> Nigel Bennington wrote:
> >> >>
> >> >> > Hi guys,
> >> >> >
> >> >> > I'm hoping you can point me in the right direction here, as I am
> >> >> > racking my brains over this one.
> >> >> >
> >> >> > I am running CUPS 1.1.21 (I think, that's the version string in
> >> >> > cupsd.conf) on Solaris 10 - If it helps, it's the CUPS from the
> >> >> > 10/04 companion CD.
> >> >> >
> >> >> > I have all locales installed, and base locale is set to Northern
> >> >> > Europe, with ISO8859P1 as the default character set.
> >> >> >
> >> >> > The problem I have is that postscript or pfd files containing
> >> >> > swedish characters are substituting spaces for the swedish
> >> >> > characters. They also display as spaces in Ghostscript.
> >> >> >
> >> >> > If I ftp the same files down to a windows system, they both print
> >> >> > and display correctly.
> >> >> >
> >> >> > Any pointers as to what I am doing wrong?
> >> >>
> >> >> Please post (an URL to) a sample file (PostScript preferred).
> >> >> If the files are created on your system, I guess either the fonts
> >> >> installed on your system do not contain the glyphs for the swedish
> >> >> characters or the creating applications do not correctly reencode the
> >> >> fonts.
> >> >>
> >> >> Helge
> >> >>
> >>
> >> Well, then, at least, do the following:
> >>
> >> Open such a file in Adobe Reader, select "properties" from the file menu,
> >> go to the "fonts" tab, and post what it tells about the used fonts (at
> >> least for some of them).
> >>
> >> Helge
> >>
>
> Well, as far as I can see, the "swedish characters" are encoded as UTF-8
> characters, and PostScript does not support UTF-8 by default. Moreover, your
> PS job uses the needed fonts "as is", which means - for Type1 fonts - the
> set of accessible glyphs ("characters") is restricted to the one defined by
> the "Adobe stadard encoding" (and implies similar restrictions for TrueType
> fonts as well).
>
> To settle the issue, you need to either
>
> a) recode the text to, say, ISO8849-1 by your application and reencode the
> fonts to IsoLatin1Encoding by a PostScript routine,
>
> or
>
> b) set up all the needed fonts as CID kyed composite fonts using a suitable
> CMap which sets up UTF-8 handling as far as needed.
>
> Approach a) is suitable only if your text data are restricted to what is
> called western european scripts, and approach b) is restricted only by the
> glyph sets of the used base fonts but is quite laborious to implement.
>
> Helge
>
>





More information about the cups mailing list