2009-07-22 2 views
1

Ich habe PDF-Datei mit nur 2 Arten von Schriftarten.Get font Name der ODTTF-Dateien von XPS-Dokument-Writer generiert

Aber wenn Sie das pdf in xps Format exportieren, gibt es so viele odttf Dateien wie Glyphenelemente im generierten xps Dokument.

Jetzt möchte ich alle Glyphen mit der gleichen Schriftart den gleichen FontUri-Wert haben. Aber wie erkennt man, ob 2 ODTTF-Dateien die gleiche Schriftart haben?

Antwort

2

Manchmal (aber nicht immer) ist es möglich, den Schriftnamen durch Blick auf den letzten Teil der ODTTF-Datei herauszufinden. Tatsächlich entziehe ich regelmäßig Schriftnamen aus odttf-Dateien (generiert vom XPS Document Writer) mit einem Python-Skript, indem ich schaue, was unmittelbar vor und folgt der Phrase "Dies ist eine eindeutige ID", die in der letzten gefunden werden kann 100 oder so Bytes jeder odttf-Datei, die ich bisher gesehen habe. Natürlich ist das ein schrecklicher Hack - aber es funktioniert (zumindest für mich).

Ob das wirklich funktioniert, hängt davon ab, welches Programm die PDF-Datei erzeugt hat und/oder welches Programm verwendet wird, um die PDF-Datei an den XPS Document Writer zu drucken und/oder welche speziellen Schriften das PDF-Dokument enthält.

Meine Erfahrung beschränkt sich hauptsächlich auf das Konvertieren von PDF-Dateien, die auf diese Weise von pdflatex erzeugt werden: Als Online-Mathe-Tutor muss ich Formeln, Texte und Zeichnungen von PDF nach XAML konvertieren, um sie in ein gemeinsames Whiteboard einfügen zu können basiert auf WPF. Also könnte dieser Hack für Sie funktionieren oder auch nicht. (Auch: Dieser Hack funktioniert möglicherweise nicht mehr ...)

Anstatt zu versuchen, den Namen der Schriftart herauszufinden, könnten Sie Ihre PDFs auch in XAML konvertieren, indem Sie die Fontverweise komplett entfernen: Sie können das PDF mit pdfcrop zuschneiden (von Heiko Oberdiek), bevor Sie es an den XPS Document Writer senden. Nach meiner Erfahrung erzwingt dies die Kombination von Adobe Reader und XPS Document Writer (aus mir unbekannten Gründen), um XAML-Code zu erzeugen, der keine Glyphen und somit keine Verweise auf Schriften (enthalten in verschleierten ODTTF-Dateien) enthält. Aber leider bekommst du viel mehr mehr XAML-Code, weil alle Glyphen durch Pfade repräsentiert werden müssen (was eine große Menge an Wiederholungen erfordert).

Grüße, Christian