|
PDF und Type 3 Schriften
Message-ID:<736vofFsvumaU2@mid.individual.net>
Subject:PDF und Type-3-Schriften
Date:Sat, 28 Mar 2009 16:55:57 +0100
[Nachdem die Resonanz in den englisch-sprachigen PostScript- und
PDF-Gruppen nicht gerade =FCberw=E4ltigend war, versuche ich es jetzt auc=
h
einmal hier ...]
Ich habe mir, da ich nichts Passendes "k=E4uflich" finden konnte, eine
Schrift "handgeschnitzt", und zwar als PostScript-Type-3-Font. Die wird
dann in PostScript-Programme eingebunden und schlussendlich durch den
Distiller "gescheucht", um daraus ein PDF zu generieren. Als Beispiel
eine "Kurzfassung" einer solchen Schrift:
| /ABCDEF+TrafficIcons-Regular
| << /FontType 3
| /FontMatrix [0.000998 0 0 0.000998 0 0]
| /LanguageLevel 2
| /Encoding ISOLatin1Encoding
| /FontBBox [0 0 0 0]
| /FontInfo
| << /FullName (Traffic Icons, regular version)
| /FamilyName (Traffic Icons)
| /version (0.0.00)
| /ItalicAngle 0
| /isFixedPitch false
| >>
| /CharProcs
| << /.notdef
| { 0 0 0 0 0 0 setcachedevice
| }
| /space
| { 200 0 1 1 199 1001 setcachedevice
| 200 0 moveto
| }
| /a
| { 553 0 1 1 552 1001 setcachedevice
| newpath
| % viele "moveto"-, "lineto"-,
| % "arc"- und "arct"-Befehle ...
| fill
| }
| >>
| /BuildGlyph
| { 2 copy exch /CharProcs get exch
| 2 copy known not { pop /.notdef } if
| get exec pop pop
| }
| /BuildChar
| { 1 index /Encoding get exch get
| 1 index /BuildGlyph get exec
| }
| >> definefont
Seltsamerweise findet der Schriftname _nicht_ den Weg in's PDF:
| __T1___________________________
|
| Type: Type 3
| Encoding: Custom
| Actual Font: T1
| Actual Font Type: Type 3
Es ist dabei unerheblich, ob das "Font Dictionary" explizit einen
"/FontName"-Eintrag enth=E4lt oder nicht. Bei vergleichbar eingebundenen
Type-1-Schriften wird der Name wie erwartet in die Font-Liste des PDF
=FCbernommen und mit "embedded subset" gekennzeichnet.
Die hier vermutlich relevanten Einstellungen f=FCr den Distiller sind dab=
ei:
| <<
| /CannotEmbedFontPolicy /Warning
| /CompatibilityLevel 1.4
| /EmbedAllFonts true
| /EmbedJobOptions true
| /MaxSubsetPct 100
| /Optimize true
| /PreserveCopyPage true
| /PreserveEPSInfo true
| /SubsetFonts true
| /AlwaysEmbed [ true
| ]
| /NeverEmbed [ true
| ]
| >> setdistillerparams
Ach ja: Hier werkelt "Adobe Acrobat 6.0.2 Standard" unter Windows 2000
-- betagt, ich wei=DF, aber einen neueren habe ich nicht zur Verf=FCgung.=
Hat jemand dazu eine "zielf=FChrende Idee", die den Schriftnamen in's
PDF-Dokument bringt?
Michael
[1] Ursprungs-Posting in "comp.lang.postscript", Message-ID
<72cnguFpgbf0U2@mid.individual.net>
[2] Posting mit ausf=FChrlicherem Beispiel des Type-3 Fonts, Message-ID
<72v2foFs6je2U3@mid.individual.net>
--=20
Real names enhance the probability of getting real answers.
My e-mail account at DECUS Munich is no longer valid.
Message-ID:<slrngsuued.1h78.Thomas.Kaiser@phg-online.de>
Subject:Re: PDF und Type-3-Schriften
Date:Sun, 29 Mar 2009 14:38:22 +0100
Michael Unger schrieb am 28.03.2009 in <news:736vofFsvumaU2@mid.individual.net>
> Als Beispiel eine "Kurzfassung" einer solchen Schrift:
Aus Deiner originalen Font-Datei oder aus dem PostScript-Datenstrom
kopiert, das dem Distiller vorgeworfen wird (unter Windows passiert ja
in Abhängigkeit von Programm und Treiber(-Version) respektive Settings
das ein oder andere Unerwartete hinsichtlich Fonts, d.h. es kommt beim
Distiller ggf. schon was ganz anderes an)
>| /SubsetFonts true
Kein Unterschied, wenn Du das auf false setzt?
> Ach ja: Hier werkelt "Adobe Acrobat 6.0.2 Standard" unter Windows 2000
> -- betagt, ich weiß, aber einen neueren habe ich nicht zur Verfügung.
Hast Du mit aktuelleren Versionen testen können? Falls nein, schieb doch
mal ein PS-File irgenwo komprimiert hin und poste den Link.
Gruss,
Thomas
Message-ID:<739h64Ftr4ouU1@mid.individual.net>
Subject:Re: PDF und Type-3-Schriften
Date:Sun, 29 Mar 2009 15:36:48 +0100
On 2009-03-29 15:38, "Thomas Kaiser" wrote:
> Michael Unger schrieb am 28.03.2009 in <news:736vofFsvumaU2@mid.individ=
ual.net>
>> Als Beispiel eine "Kurzfassung" einer solchen Schrift:
>=20
> Aus Deiner originalen Font-Datei oder aus dem PostScript-Datenstrom=20
> kopiert, das dem Distiller vorgeworfen wird [...]
Es gibt keine "Font-Datei" im eigentlichen Sinne -- die Schrift
existiert (nur) als "Font Dictionary" im PostScript-Programm. Genau
daraus ist das Beispiel entnommen.
>>| /SubsetFonts true
>=20
> Kein Unterschied, wenn Du das auf false setzt?
Das steht bislang bewusst auf "true", da ja bei den meisten Schriften
das vollst=C3=A4ndige Einbetten gar nicht erlaubt ist und es mit
Type-1-Schriften auch bestens funktioniert; an _dieser_ Stelle habe ich
aber noch nicht experimentiert.
>> Ach ja: Hier werkelt "Adobe Acrobat 6.0.2 Standard" unter Windows 2000=
>> -- betagt, ich wei=C3=9F, aber einen neueren habe ich nicht zur Verf=C3=
=BCgung.
>=20
> Hast Du mit aktuelleren Versionen testen k=C3=B6nnen? Falls nein, schie=
b doch=20
> mal ein PS-File irgenwo komprimiert hin und poste den Link.
Nein, aktuellere Versionen hab eich nicht (und auch keinen Rechner
"frei", auf dem ich eine Demo-Version installieren k=C3=B6nnte). Das Erge=
bnis
(nach "Re-Export" als EPS) soll die Titelgrafik f=C3=BCr einen Rundbrief
eines Vereins ergeben; bislang habe ich erst meine "kreative Phase", vom
Vorstand ist noch nichts abgesegnet -- insofern kann ich also nichts
"=C3=B6ffentlich" machen. Ich erstelle aber mal eine "reduzierte Version"=
und
schick Dir die und die daraus generierte PDF-Datei per e-Mail -- das
wird aber bis morgen Abend dauern. (Anderer Rechner, der gerade nicht
l=C3=A4uft.)
Michael
--=20
Real names enhance the probability of getting real answers.
My e-mail account at DECUS Munich is no longer valid.
Message-ID:<slrngsvo6q.1pg8.Thomas.Kaiser@phg-online.de>
Subject:Re: PDF und Type-3-Schriften
Date:Sun, 29 Mar 2009 21:58:02 +0100
Michael Unger schrieb in <news:739h64Ftr4ouU1@mid.individual.net>
> On 2009-03-29 15:38, "Thomas Kaiser" wrote:
>
>> Michael Unger schrieb am 28.03.2009 in <news:736vofFsvumaU2@mid.individual.net>
>>> Als Beispiel eine "Kurzfassung" einer solchen Schrift:
>>
>> Aus Deiner originalen Font-Datei oder aus dem PostScript-Datenstrom
>> kopiert, das dem Distiller vorgeworfen wird [...]
>
> Es gibt keine "Font-Datei" im eigentlichen Sinne -- die Schrift
> existiert (nur) als "Font Dictionary" im PostScript-Programm. Genau
> daraus ist das Beispiel entnommen.
Aha. Also kein PS-Treiber mehr im Spiel, der für Modifikationen sorgen
könnte?
>>>| /SubsetFonts true
>>
>> Kein Unterschied, wenn Du das auf false setzt?
>
> Das steht bislang bewusst auf "true", da ja bei den meisten Schriften
> das vollständige Einbetten gar nicht erlaubt ist
Hä? "Untergruppen" haben meines Wissens nach gar nichts mit Lizensierung
zu tun.
> Ich erstelle aber mal eine "reduzierte Version" und schick Dir die und
> die daraus generierte PDF-Datei per e-Mail -- das wird aber bis morgen
> Abend dauern. (Anderer Rechner, der gerade nicht läuft.)
Sag bitte noch an, mit welchem Programm Du die Schriftinformationen
innerhalb des PDF geprüft hast. Bzw. reich doch bitte zu akkuraten
Vergleichszwecken noch die Ausgabe von "pdffonts" aus dem XPDF-Paket
nach.
Gruss,
Thomas
Message-ID:<73c6hlFuaoi8U1@mid.individual.net>
Subject:Re: PDF und Type-3-Schriften
Date:Mon, 30 Mar 2009 16:09:32 +0100
On 2009-03-29 22:58, "Thomas Kaiser" wrote:
> Michael Unger schrieb in <news:739h64Ftr4ouU1@mid.individual.net>
>> On 2009-03-29 15:38, "Thomas Kaiser" wrote:
>>
>>> Michael Unger schrieb am 28.03.2009 in <news:736vofFsvumaU2@mid.indiv=
idual.net>
>>>> Als Beispiel eine "Kurzfassung" einer solchen Schrift:
>>>=20
>>> Aus Deiner originalen Font-Datei oder aus dem PostScript-Datenstrom=20
>>> kopiert, das dem Distiller vorgeworfen wird [...]
>>
>> Es gibt keine "Font-Datei" im eigentlichen Sinne -- die Schrift=20
>> existiert (nur) als "Font Dictionary" im PostScript-Programm. Genau=20
>> daraus ist das Beispiel entnommen.
>=20
> Aha. Also kein PS-Treiber mehr im Spiel, der f=C3=BCr Modifikationen so=
rgen=20
> k=C3=B6nnte?
So ist es.
>>>>| /SubsetFonts true
>>>=20
>>> Kein Unterschied, wenn Du das auf false setzt?
>>
>> Das steht bislang bewusst auf "true", da ja bei den meisten Schriften
>> das vollst=C3=A4ndige Einbetten gar nicht erlaubt ist
>=20
> H=C3=A4? "Untergruppen" haben meines Wissens nach gar nichts mit Lizens=
ierung=20
> zu tun.
Nach meinem Verst=C3=A4ndnis hei=C3=9Ft "subsetting", dass nur genau diej=
enigen
Zeichen eingebettet werden, die auch tats=C3=A4chlich im Dokument ben=C3=B6=
tigt
werden, und nicht der vollst=C3=A4ndige Zeichensatz. Ich mag mich da aber=
durchaus irren.
Genau diese Bedingung hat Linotype in den Lizenzbedingungen (f=C3=BCr die=
Weitergabe von Schriften bei der Erzeugung von PDF-Dateien) stehen, die
man abnicken muss.
Es macht =C3=BCbrigens, wie ich inzwischen ausgetestet habe, keinerlei
Unterschied, ob das auf "true" oder "false" steht -- die Type-3-Schrift
hei=C3=9Ft immer nur "T1".
>> Ich erstelle aber mal eine "reduzierte Version" und schick Dir die und=
=20
>> die daraus generierte PDF-Datei per e-Mail -- das wird aber bis morgen=
=20
>> Abend dauern. (Anderer Rechner, der gerade nicht l=C3=A4uft.)
>=20
> Sag bitte noch an, mit welchem Programm Du die Schriftinformationen=20
> innerhalb des PDF gepr=C3=BCft hast.
Ganz einfach im Adobe Reader "Datei" -> "Eigenschaften" -> "Schriften".
> Bzw. reich doch bitte zu akkuraten
> Vergleichszwecken noch die Ausgabe von "pdffonts" aus dem XPDF-Paket=20
> nach.
Das genannte Paket, das atark nach "Unix" riecht, habe ich nicht. Ich
habe aber mal (aus dem umfangm=C3=A4=C3=9Fig reduzierten PDF-Dokument) de=
n
"Quelltext" f=C3=BCr zwei Schriften herausgezogen:
| 22 0 obj
| << /Type /Font
| /Encoding 30 0 R
| /BaseFont /BCKGEO+SyntaxLT-Regular
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| /FirstChar 32
| /LastChar 252
| /Subtype /Type1
^^^^^^^^^^^^^^^
| /ToUnicode 31 0 R
| /FontDescriptor 33 0 R
| /Widths [... ... ...]
| >>
| endobj
| 23 0 obj
| << /Type /Font
| /Resources 38 0 R
| /Name /T1
^^^^^^^^^
| /Encoding 39 0 R
| /FirstChar 32
| /LastChar 100
| /CharProcs 43 0 R
| /Subtype /Type3
^^^^^^^^^^^^^^^
| /FontBBox [0.1 0.1 131.037003 99.900002]
| /FontMatrix [0.01 0 0 0.01 0 0]
| /ToUnicode 44 0 R
| /Widths [... ... ...]
| >>
| endobj
Im zugrundeliegenden PostScript-Code sind beide Schriften als "Font
Dictionary" in der folgenden Art definiert:
| /NewFont
| <<
| % Definition aller Eigenschaften ...
| >>
| definefont
Warum auch immer der Distiller bei _allen_ Type-1-Schriften den
angegebenen Schriftnamen benutzt und bei der Type-3-Schrift nicht ...
In Thomas' e-Mail-Antwort auf meine Beispiel-PostScript-Datei findet
sich dann noch folgender sch=C3=B6ne Satz:
| Ich erinnere mich dunkel an irgendeinen bekannten Bug mit Type 3
| und Font Names, komme aber grad ums Verrecken nicht mehr drauf,
| was das war.
F=C3=A4ngt bei irgend jemand ein kleines Gl=C3=B6ckchen leise an zu bimme=
ln?
Michael
--=20
Real names enhance the probability of getting real answers.
My e-mail account at DECUS Munich is no longer valid.
Message-ID:<slrngt21pt.2g17.Thomas.Kaiser@phg-online.de>
Subject:Re: PDF und Type-3-Schriften
Date:Mon, 30 Mar 2009 18:54:04 +0100
Michael Unger schrieb in <news:73c6hlFuaoi8U1@mid.individual.net>
> Nach meinem Verständnis heißt "subsetting", dass nur genau diejenigen
> Zeichen eingebettet werden, die auch tatsächlich im Dokument benötigt
> werden, und nicht der vollständige Zeichensatz. Ich mag mich da aber
> durchaus irren.
Nö, genau das geschieht dabei. Und der Sinn des Ganzen ist:
* Größenreduzierung
* eindeutige Schriftnamen (d.h. kein Risiko, daß bei der Ausgabe bzw.
bei Ausgabedienstleistern aus Versehen oder aus Prinzip dokument-
interne Schriften durch RIP- oder Workflow-residente Fonts ersetzt
werden. Sehr schönes Beispiel "früher". Dokument mit Base13 Fonts und
Euro-Zeichen und bei der Ausgabe die Druckerinterne Helvetica genutzt:
€ weg wegen unterschiedlichem Encoding)
* Pseudo-Lizenz-Graffl in der Form, daß eine Schriftdatei, die als
Untergruppe eingebettet ist, natürlich meist nicht vollständig ist,
d.h. der Gebrauchswert einer solchen Schrift sinkt
> Genau diese Bedingung hat Linotype in den Lizenzbedingungen (für die
> Weitergabe von Schriften bei der Erzeugung von PDF-Dateien) stehen,
> die man abnicken muss.
Ach so, das meinst Du. Naja, stimmt schon, daß ein Subset der Schriften
es schwieriger macht, eine Schrift aus einem PDF zu extrahieren. Aber
unmöglich ist auch das nicht, wenn einen eh nicht der ganze Zeichen-
vorrat interessieren sollte. Und die gleiche Diskussion gibt's ja auch
im Web-Umfeld mit "embedded fonts" und TTF/OTF vs. EOT (Embedded
OpenType, das auch nur Subsetting kennt)
["pdffonts"]
> Das genannte Paket, das atark nach "Unix" riecht, habe ich nicht.
Gibt's für alle relevanten OS also auch für Windows. Sind nur 2 MByte im
Umfang:
<http://www.foolabs.com/xpdf/download.html>
Gruss,
Thomas
Message-ID:<73epf9Fujor0U2@mid.individual.net>
Subject:Re: PDF und Type-3-Schriften
Date:Tue, 31 Mar 2009 15:57:32 +0100
On 2009-03-30 19:54, "Thomas Kaiser" wrote:
> [...]
>=20
> * eindeutige Schriftnamen (d.h. kein Risiko, da=C3=9F bei der Ausgabe b=
zw.=20
> bei Ausgabedienstleistern aus Versehen oder aus Prinzip dokument-=20
> interne Schriften durch RIP- oder Workflow-residente Fonts ersetzt=20
> werden. [...]
Resultiert _daher_ das "ABCXYZ+" vor dem _eigentlichen_ Schriftnamen?
> [...]
>=20
> Ach so, das meinst Du. Naja, stimmt schon, da=C3=9F ein Subset der Schr=
iften=20
> es schwieriger macht, eine Schrift aus einem PDF zu extrahieren. Aber=20
> unm=C3=B6glich ist auch das nicht, wenn einen eh nicht der ganze Zeiche=
n-=20
> vorrat interessieren sollte. [...]
Das habe ich auch schon gemacht, wenn ich "mal schnell" f=C3=BCr speziell=
e
(nicht-kommerzielle) Zwecke einzelne Buchstaben gebraucht habe. Gibt es
da einen "direkten Weg"? Ich habe das PDF immer in (E)PS ausgegeben und
dann das Font-Dictionary "herausgeklaubt" und gleich einmal auf "lesbar"
getrimmt.
> ["pdffonts"]
>=20
> Gibt's f=C3=BCr alle relevanten OS also auch f=C3=BCr Windows. Sind nur=
2 MByte im=20
> Umfang:
>=20
> <http://www.foolabs.com/xpdf/download.html>
Danke.
Michael
--=20
Real names enhance the probability of getting real answers.
My e-mail account at DECUS Munich is no longer valid.
Message-ID:<slrngt537g.q7.Thomas.Kaiser@phg-online.de>
Subject:Re: PDF und Type-3-Schriften
Date:Tue, 31 Mar 2009 22:36:48 +0100
Michael Unger schrieb in <news:73epf9Fujor0U2@mid.individual.net>
> On 2009-03-30 19:54, "Thomas Kaiser" wrote:
>
>> [...]
>>
>> * eindeutige Schriftnamen (d.h. kein Risiko, daß bei der Ausgabe bzw.
>> bei Ausgabedienstleistern aus Versehen oder aus Prinzip dokument-
>> interne Schriften durch RIP- oder Workflow-residente Fonts ersetzt
>> werden. [...]
>
> Resultiert _daher_ das "ABCXYZ+" vor dem _eigentlichen_ Schriftnamen?
Exakt.
>> [...]
>>
>> Ach so, das meinst Du. Naja, stimmt schon, daß ein Subset der
>> Schriften es schwieriger macht, eine Schrift aus einem PDF zu
>> extrahieren. Aber unmöglich ist auch das nicht, wenn einen eh nicht
>> der ganze Zeichen- vorrat interessieren sollte. [...]
>
> Das habe ich auch schon gemacht, wenn ich "mal schnell" für spezielle
> (nicht-kommerzielle) Zwecke einzelne Buchstaben gebraucht habe. Gibt
> es da einen "direkten Weg"?
Keine Ahnung. Ich hatte nur mal in einem Projekt, bei dem es darum ging,
aus Satzdaten, die von Lieferant A als PostScript kamen, bei Lieferant B
wieder Stehsatz zu machen, mit 'nem ziemlichen PostScript-Checker zu
tun, für den das Ganze wohl kein Problem dargestellt hat. Der PS-Code
war Ergebnis einer Rückumwandlung aus PDF mit Font-Untergruppen. Und er
hatte sich (in PostScript IIRC) ein Tool geschrieben, das sich aus den
hunderten bis tausenden PS-Files die Glyphen zur Not einzeln heraussaugt
hat.
Gruss,
Thomas
|