2017-07-27 3 views
0

Ich habe eine pdf-Pipeline, wo am Ende ghostscript (Linux) aufgerufen wird, um mit einem PDF zu enden (Eingabe ps). Das PDF muss so klein wie möglich sein, so die allgemeine Kommandozeile verwendet wird, istGhostscript sollte keine Schrift einbetten, sondern nur einen Ersatz auflisten

ps2pdf13 -dSAFER -dPDFSETTINGS=/default -dEmbedAllFonts=false -dNoOutputFonts -dFastWebView infile outfile 

, dass Dateien schön PDF erzeugt ohne Schriftarten, die wie gewünscht, ist die Annahme, dass das Zielsystem sollte dann verwenden, was sie zu ersetzen. Ja, das kann bedeuten, dass verschiedene Systeme leicht unterschiedliche Schriftarten verwenden und dadurch ein anderes Aussehen bekommen.

Meistens funktioniert, es gibt 7 verschiedene Schriftarten in den PDFs-Eigenschaften aufgeführt. Funktioniert gut unter Linux.

Windows (Acrobat Reader) beschwert sich über eine von ihnen fehlt, und dann keine dieser Zeichen rendern.

Ich weiß, ich kann gs Schriftarten einbetten, außer dass die PDF-Größe um 50% erhöht. Das möchte ich vermeiden (während es sich um etwa 6000 Bytes handelt, multipliziert es sich bei jedem Durchlauf um etwa 30000 Mal und zählt als solches).

Ich würde gerne eine Möglichkeit haben, im PDF eine Information zu "Für Font Helvetica-Narrow verwenden Sie einfach Arial Narrow" (oder ähnlich) einzubetten.

Gibt es das?

[Bearbeiten]

Sorry für die späte Antwort, beschäftigt. :(

Gut, ok. Ich war für Schriftauswahl aus einer Liste von möglichen Optionen zu denken. Auch aus diesem Weg kommt, kann die Frage der falsche Weg gegangen werden.

Die Optionen, btw, machen unterschiedliche Größe, obwohl es scheint, dass die -dEmbedAllFonts sein verantwortlich für Größen zu sein, -dNoOutPutFonts muß nicht tatsächlich irgendeine Wirkung zu haben scheinen.

ich gegen einen (sehr alt) Destillateur vergleichen haben, die wir versuchen, ersetzen und mit pdffonts, bekomme ich die folgenden Tabellen:

psp2d f:

name         type    encoding   emb sub uni object ID 
------------------------------------ ----------------- ---------------- --- --- --- --------- 
Helvetica-Narrow      Type 1   Custom   no no no  11 0 
Helvetica-Bold      Type 1   Custom   no no no  9 0 
Helvetica-Narrow-Bold    Type 1   WinAnsi   no no no  13 0 
Courier        Type 1   Custom   no no no  15 0 
Courier-Bold       Type 1   Standard   no no no  10 0 
Helvetica       Type 1   Custom   no no no  8 0 
Times-Italic       Type 1   Standard   no no no  21 0 

Destillateur:

name         type    encoding   emb sub uni object ID 
------------------------------------ ----------------- ---------------- --- --- --- --------- 
Helvetica       Type 1   Custom   no no no  4 0 
Helvetica-Bold      Type 1   Custom   no no no  5 0 
Courier        Type 1   Custom   no no no  6 0 
Courier-Bold       Type 1   Custom   no no no  7 0 
Helvetica-Narrow      Type 1   Custom   no no no  8 0 
Helvetica-Narrow-Bold    Type 1   Custom   no no no  9 0 
Times-Italic       Type 1   Custom   no no no  15 0 

Mit der ps2pdf erstellte PDF-Datei Acrobat Reader beschwert sich über "Font Helvetica-Narrow kann nicht gefunden werden". Der Brenner arbeitet. Ich verstehe es nicht. Es ist die gleiche Liste, zumindest für diese Schriftart.

Und offensichtlich sieht es dann scheiße aus.

Eine Lösung ist das Einbetten von Schriftarten. Dann verwandelt sich die Schriftenliste in

name         type    encoding   emb sub uni object ID 
------------------------------------ ----------------- ---------------- --- --- --- --------- 
XVQNWP+Helvetica-Narrow    Type 1C   Custom   yes yes no  11 0 
Helvetica-Bold      Type 1   Custom   no no no  9 0 
LBTZEH+Helvetica-Narrow-Bold   Type 1C   WinAnsi   yes yes no  13 0 
Courier        Type 1   Custom   no no no  15 0 
Courier-Bold       Type 1   Standard   no no no  10 0 
Helvetica       Type 1   Custom   no no no  8 0 
Times-Italic       Type 1   Standard   no no no  21 0 

und die Dateigröße geht eine Last hoch, die wir vermeiden wollen. Distiller zeigt seine mögliche, aber nicht wie.

Antwort

0

Nein, Sie können keine Ersatzschrift für eine fehlende Schriftart definieren, die vollständig im Ermessen des Betrachters liegt. Wie würde es trotzdem helfen?Wenn der von Ihnen definierte Ersatz dem Betrachter nicht zur Verfügung steht, müsste er auf seine eigene Substitution trotzdem zurückgreifen oder ganz ausfallen.

Einige Kommentare auf der Kommandozeile:

Wenn Sie -dNoOutputFonts dann Ihre PDF-Datei alle Fonts nicht enthalten verwenden sollten, oder Schriftreferenzen, überhaupt nicht. Es wäre auch (erheblich) größer als das Deaktivieren der Schriftarteneinbettung und möglicherweise größer als die gleiche PDF mit eingebetteten Teilsatzschriften, da der gesamte Text als Pfaddaten enthalten ist, wobei selbst bei mäßigen Textmengen die Wiederholung der Pfaddaten überschritten wird die Schriftgröße.

Es ist schwer zu sehen, wie Sie eine Datei erstellen, die auf Schriftarten verweist, aber die Schriftart nicht enthält.

Sie brauchen nicht -dPDFSETTINGS=/default angeben, denn das ist die Standardeinstellung ...

Wenn Sie eine kleinere Datei möchten, geben Sie nicht -dFastWebView, die eine linearisierte PDF-Datei erzeugt, die größer ist (wegen des Formats) als eine nicht linearisierte Datei. Sehr wenige Zuschauer ehren es, selbst diejenigen, die dies tun, können nur die erste Seitenansicht beschleunigen, und wenn die Datei sehr klein ist, ist es sinnlos, da die gesamte Datei so schnell wie der frühe Teil der linearisierten Datei ankommt.

Das Erzwingen der Version auf 1.3 wird wahrscheinlich auch die Dateigröße vergrößern, zumindest in der Zukunft.

Verwandte Themen