Acrobat konvertuje TTF do Type1?

Milos Balcarik milos.balcarik at berit.cz
Wed Mar 1 13:02:59 CET 2000


Acrobat 3/4 konvertuje, resp. posila TTF fonty do nasledujicich formatu:
-- jako TTF
-- jako obrysy/Outlines
-- jako bitmapy
-- jako fonty Type 42
-- pripadne se vubec TTF neposilaji do PDF a tudiz se bere v uvahu
substitucni tabulka pro fonty Type 1.

Vse zalezi POUZE na uzivatelskem nastaveni.

M.B.

----- Původní zpráva -----
Od: Pavel Janik ml. <Pavel.Janik at inet.cz>
Komu: <cstex at cs.felk.cvut.cz>
Odesláno: 1. března 2000 11:18
Předmět: Acrobat konvertuje TTF do Type1?


Zdravím,

dodnes jsem předpokládal, že pokud budu mít dokument obsahující TrueType
font
v PDF a pomocí Adobe Acrobatu (mám doma bohužel pouze 3) jej vytisknu do
souboru, bude ve výsledném dokumentu font zabalen do Type42. Dnes jsem se
chtěl podívat, jak to doopravdy vypadá a byl jsem poměrně překvapen :-)
Acrobat totiž font _konvertuje_ přímo do *Type 1* a ne do Type42.

Mám dokument:

\pdfcompresslevel=0
\nopagenumbers
\font\f=verdana8z\f Pokus
\bye

po přeložení pdfTeXem dostávám korektní dokument obsahující text `Pokus'
napsaný TrueType fontem Verdana. Pokud jej vytisknu do .ps, tak výsledek
obsahuje:

11 dict
begin
/FontName exch def
/PaintType exch def
/FontType 1 def
/FontMatrix [1 3 index div 0 0 1 6 index div 0 0] def
pop % Empels, used in calculation
/Encoding
256 array
0 1 255 { 1 index exch /.notdef put } for
3 index 3 index FE
def % Encoding array is defined
pop pop % FirstChar, LastChar
/FontBBox { 0 0 0 0 } def
currentdict
end
currentfile eexec

což je normální hlavička Type 1 fontu a následuje:

9E67EDC6F3DDB54D987DFB0AD4392351758038A4DDCD7496126CAEBF3C4B776A
934FB683024E82FD3C5BE9EBFD038A003D6E3D0EBBAA9D611329A441BE1119A5
...
530BBA14629E1C3FEF4B66E5227B893444E15F6A3C318FB0558BD2F5BFF91A22
ABA8
0000000000000000000000000000000000000000000000000000000000000000
...
0000000000000000000000000000000000000000000000000000000000000000
cleartomark

Tedy normální Type 1 font v podobě .pfa. Když se pokusím tuto část
rozkryptovat, dostávám normální definici slovníků Private a CharStrings:

dup /Private 8 dict dup begin
/RD { string currentfile exch readstring pop } def
/ND { def } def
/NP { put } def
/BlueValues [-250 0 2200 2200] def
/MinFeature { 16 16 } def
/password 5839 def
/Subrs 43 array def
2 index /CharStrings 257 dict dup begin
/G00 {
        256 2048 hsbw
        1536 hmoveto
        1536 vlineto
        -1536 hlineto
        -1536 vlineto
...

No a protože jsem teď nemocný a nemám co dělat, tak jsem se z toho pokusil
vydolovat korektní Type1 font. No možná ne zcela korektní, ale chtěl jsem
jenom vypsat písmeno A z fontu Verdana v podobě Type1:

11 dict
begin
/FontName /Verdana def
/PaintType 0 def
/FontType 1 def
/FontMatrix [0.001 0 0 0.001 0 0] readonly def
/Encoding 256 array
0 1 255 {1 index exch /.notdef put} for
dup 65 /G41 put
readonly def
/FontBBox { 0 0 0 0 } def
currentdict
end
currentfile eexec
9E67EDC6F3DDB54D987DFB0AD4392351758038A4DDCD7496126CAEBF3C4B776A
934FB683024E82FD3C5BE9EBFD038A003D6E3D0EBBAA9D611329A441BE1119A5
...
0000000000000000000000000000000000000000000000000000000000000000

cleartomark

/Verdana findfont 100 scalefont setfont
0 0 moveto
(AAAA) show

A k mému překvapení mi GS opravdu zobrazil AAAA :-) Že by to mohla být "taky
cesta" jak používat True Type fonty v TeXu? Dá si někdo tu práci a ověří
moji
myšlenku?

BTW - no a ještě obligátní otázku - nevíte, jak jednoduše na OS Linux
vygenerovat ps soubor obsahující Type42 font? :-))
--
Pavel Janík ml.
Pavel.Janik at inet.cz






More information about the csTeX mailing list