[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ps-print does not print and report correctly
From: |
Kenichi Handa |
Subject: |
Re: ps-print does not print and report correctly |
Date: |
Wed, 12 Oct 2005 16:41:23 +0900 |
User-agent: |
SEMI/1.14.3 (Ushinoya) FLIM/1.14.2 (Yagi-Nishiguchi) APEL/10.2 Emacs/22.0.50 (i686-pc-linux-gnu) MULE/5.0 (SAKAKI) |
In article <address@hidden>, Peter Dyballa <address@hidden> writes:
> No, this can't be printed in ISO 8859-15! Although my printer has
> PostScript 3 and is younger than the European currency unit it only
> knows Adobe-StandardEncoding, Adobe-SymbolEncoding, Adobe-CEEncoding,
> and probably too ISOLatin1Encoding and Adobe-ExpertEncoding. To print
> the ISO Latin-9 glyphs from the above mentioned range the font needs to
> be encoded correctly.
Hmmm, then please try this brute force method.
(1) Apply the attached patch to etc/ps-prin1.ps.
(2) (setq ps-mark-code-directory nil)
(3) (setq ps-mule-font-info-database-default
'((latin-iso8859-1
(normal nil nil iso-latin-1))
(latin-iso8859-15
(normal nil nil ps-mule-encode-8bit 1))))
(4) M-x list-charset-chars RET latin-iso8859-15
(5) ps-print the buffer "*Character List*".
This works at least in my environment. But, as we need
non-trivial change to the current code to make that work in
general, I think we must wait for Emacs 23.
---
Kenichi Handa
address@hidden
*** ps-prin1.ps 07 Jul 2005 11:07:43 +0900 1.18
--- ps-prin1.ps 12 Oct 2005 16:00:10 +0900
***************
*** 78,83 ****
--- 78,98 ----
256 packedarray def
}ifelse
+ /ISOLatin15Encoding where{pop}{
+ % Make it by modifying several elements of ISOLatin1Encoding.
+ /ISOLatin15Encoding
+ [ ISOLatin1Encoding 0 256 getinterval aload pop ]
+ dup 16#A4 /Euro put
+ dup 16#A6 /Scaron put
+ dup 16#A8 /scaron put
+ dup 16#B4 /Zcaron put
+ dup 16#B8 /zcaron put
+ dup 16#BC /OE put
+ dup 16#BD /oe put
+ dup 16#BE /Ydieresis put
+ def
+ }ifelse
+
/reencodeFontISO{ %def
dup
length 12 add dict % Make a new font (a new dict the same size
***************
*** 90,96 ****
{1 index/FID ne{def}{pop pop}ifelse}forall
% Override the encoding with the ISOLatin1 encoding.
! currentdict/FontType get 0 ne{/Encoding ISOLatin1Encoding def}if
% Use the font's bounding box to determine the ascent, descent,
% and overall height; don't forget that these values have to be
--- 105,111 ----
{1 index/FID ne{def}{pop pop}ifelse}forall
% Override the encoding with the ISOLatin1 encoding.
! currentdict/FontType get 0 ne{/Encoding ISOLatin15Encoding def}if
% Use the font's bounding box to determine the ascent, descent,
% and overall height; don't forget that these values have to be