Eingebettete Schriftarten (mangelnde .docx Komptabilität)

Antworten
goehte
Beiträge: 51
Registriert: 21.08.2016 21:23:43
Wohnort: Erlangen

Eingebettete Schriftarten (mangelnde .docx Komptabilität)

Beitrag von goehte »

Microsoft erlaubt in Word und Powerpoint die Schriftarten in die Dokumente einzubetten.
Ich habe nun gestern ausprobiert. TextMaker ist aktuell nicht in der Lage in Microsoft Office erstellte Dokumente mit eingebetteten Schriftarten korrekt zu lesen.
Das Einbetten ist im OOXML Standard beschreiben:
http://www.ecma-international.org/publi ... ma-376.htm
Wie in 17.8.1 Font Embedding beschreiben wird die Schriftart von Word in einer obfuskation Funktion verschleiert. Ansonsten werden diese einfach mit in der DOCX ZIP Datei gespeichert.
Zum Schreiben kann aber auch eine unverschleierte Speicherung gewählt werden, siehe 15.2.13.
Es wäre schön, wenn SoftMaker die Embedded-Font Lesen-/Schreiben-Option zeitnah entwickeln und in die Software einbauen würde (Bitte gleich für Presentations).
Dateianhänge
TestnoFont.docx.zip
DOCX ohne Embedded Font
(11.64 KiB) 181-mal heruntergeladen
TestFont.docx.zip
Gleiches DOCX mit Embedded Font
(1.99 MiB) 229-mal heruntergeladen
FFF
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 2327
Registriert: 11.06.2013 22:30:18

Re: Eingebettete Schriftarten (mangelnde .docx Komptabilität)

Beitrag von FFF »

goehte hat geschrieben: 09.01.2020 12:23:25 Microsoft erlaubt in Word und Powerpoint die Schriftarten in die Dokumente einzubetten.
Ich habe nun gestern ausprobiert. TextMaker ist aktuell nicht in der Lage in Microsoft Office erstellte Dokumente mit eingebetteten Schriftarten korrekt zu lesen.
Das Einbetten ist im OOXML Standard beschreiben:
http://www.ecma-international.org/publi ... ma-376.htm
Wie in 17.8.1 Font Embedding beschreiben wird die Schriftart von Word in einer obfuskation Funktion verschleiert. Ansonsten werden diese einfach mit in der DOCX ZIP Datei gespeichert.
Zum Schreiben kann aber auch eine unverschleierte Speicherung gewählt werden, siehe 15.2.13.
Es wäre schön, wenn SoftMaker die Embedded-Font Lesen-/Schreiben-Option zeitnah entwickeln und in die Software einbauen würde (Bitte gleich für Presentations).
Soll heißen, TM kann die "obfuskierten" Werte nicht lesen? Das ist vielleicht auch etwas schwierig, schließlich war ja das der Zweck der Übung :mrgreen:
Mit freundlichem Gruß
Karl
SM 2018 rev. 982/0109/64, klassisches Menu @ W8.1/64 /Deutsch/Deutsch // emC 7
SM 2024NX Nightly, klassisches Menu
16GB Ram; Core i5-3450 mit integriertem Intel HDGraphics 4000, Treiber 10.18.10.4276; Samsung SSD 840pro
2560x1440 Monitor 100% Darstellungsgröße /// LaserJet 1200 per USB via Fritzbox 6591.
Empfehlung für supereinfache Bildschirmvideos: https://www.screentogif.com/
martin-k
SoftMaker Team
SoftMaker Team
Beiträge: 6133
Registriert: 03.12.2003 14:32:06
Kontaktdaten:

Re: Eingebettete Schriftarten (mangelnde .docx Komptabilität)

Beitrag von martin-k »

Ich gebe das als Verbesserungsvorschlag an die Entwickler weiter.
Martin Kotulla
SoftMaker Software GmbH
goehte
Beiträge: 51
Registriert: 21.08.2016 21:23:43
Wohnort: Erlangen

Re: Eingebettete Schriftarten (mangelnde .docx Komptabilität)

Beitrag von goehte »

FFF hat geschrieben: 09.01.2020 17:19:30 Soll heißen, TM kann die "obfuskierten" Werte nicht lesen? Das ist vielleicht auch etwas schwierig, schließlich war ja das der Zweck der Übung :mrgreen:
Hallo Karl,
ich habe es mir noch mal mit einem HEX Editor angeschaut. Man kann die obfuskierte Schriftdatei mit der GUID aus der XML-Datei einfach mir dem gleichen Algorithmus (OOXML Standard 17.8.1 Font Embedding, s.o.) wieder in eine "normale" Schriftartdatei zurückschreiben. Man kann Microsoft hier nichts vorwerfen. Ist alles korrekt dokumentiert.
HEX Compare für Schriftart "Impact"
HEX Compare für Schriftart "Impact"
Hex_Compare_comment.png (425.67 KiB) 13507 mal betrachtet
Das Dateiformat ist für die Implementierung für das schreiben der Datei wohl das kleinste Problem. Man muss nur noch in den Schriftarteigenschaften prüfen ode der Author der Schriftart die Rechte zur Weitergabe erlaubt.
Schwieriger dürfte wohl die Anzeige in TM sein, da zu Laufzeit die entsprechende Schriftart nachgeladen werden muss. Da SoftMaker aber ja Eigentümer des gesamten Quellcode ist, sollte es nicht allzu schwierig werden auch diese Funktionalität zeitnah & erfolgreich in das Programm zu implementieren!?

Liebe Grüße,
-g
goehte
Beiträge: 51
Registriert: 21.08.2016 21:23:43
Wohnort: Erlangen

Re: Eingebettete Schriftarten (mangelnde .docx Komptabilität)

Beitrag von goehte »

Hallo Softmaker Team,
gibt es was neues zu dem Thema eingebettete Schriftarten?
Wäre super wenn die Funktion Bestandteil der nächsten großen Revision werden könnte.
Liebe Grüße,
goehte
SuperTech
SoftMaker Team
SoftMaker Team
Beiträge: 3331
Registriert: 11.03.2020 17:30:08

Re: Eingebettete Schriftarten (mangelnde .docx Komptabilität)

Beitrag von SuperTech »

Vielen Dank für Ihre Vorschläge. Unser Entwicklungsteam arbeitet bereits daran, aber wir können kein Datum und keine Version der Implementierung versprechen.
goehte
Beiträge: 51
Registriert: 21.08.2016 21:23:43
Wohnort: Erlangen

Re: Eingebettete Schriftarten (mangelnde .docx Komptabilität)

Beitrag von goehte »

Da sich seitens SoftMaker leider keine Lösung mit dem eingebetteten Schriftarten abzeichnet, habe ich zur Selbsthilfe gegriffen.

Ich veröffentlich daher mit dem Link unten ein kleines Tool, welches ermöglich, aus Worddokumenten mit eingebetteter Schriftart diese in ein installierbares Format zurück zu konvertieren.

Jeder der das Tool nutzen möchte, hie nach mal das notwendige Hintergrundwissen:

1.) Grundsätzlich ist jede *.docx Datei eigentlich eine ZIP wenn sie eine solche Datei in einem Zip-Viewer öffnen. bzw. die Endung in *.zip umbenennen können sie die Word Datei analysieren.

2.) Ob die *.docx Datei embedded Schriften enthält sehen sie den wenn der Ordner „word“ den Unterordner „fonts“ gibt.

3.) Word schreibt die Schriften „obfuskiert“ d.h. es verschleiert die ersten 32 Byte in der Datei. Ein *.ttf Datei hat die Endung *odttf (Sie können sich die Datei „TestFont.docx.zip“ aus dem ersten Forumsbeitrag anschauen)

4.) Zum „entschlüsseln“ braucht es noch die jeweilig GUID welche in der Datei „fontTable.xml“ hinterlegt ist. (einfach XML Datei im Browser öffnen) Die GUID ist das Attribut „w:fontKey“ im Markup „<w:embedRegular“.

5.) Um die die Schrift zu entschlüsseln müssen sie die entsprechende Datei aus der ZIP Datei extrahieren und das Hilfsprogramm mit folgenden Befehl aufrufen:

Code: Alles auswählen

   Linux: $ docx_getembfnt <inputfile> <outputfile> <GUID>
   Windows $ docx_getembfnt32.exe <inputfile> <outputfile> <GUID>
6.) Die entpackte Schriftart können Sie dann ganz normal im Betriebssystem installieren. Tipp: Als Alternative zu Installation: in TextMaker können unter „Einstellungen-> System“ zusätzliche Schriftenpfade definiert werden.

7.) Bei mir wird nach einem Neustart von TextMaker die Schriftart nach öffnen des entsprechenden Word Dokuments korrekt angezeigt.

Das Ganze ist eine Notlösung und nichts für den täglichen Gebrauch.
Man könnte natürlich das Hilfstool auch weiter automatisieren.
Für jeden der Lust hat das Tool zu optimieren - nur zu. Der C-Code ist mitgeliefert, siehe „main.c“.

Meine Hoffnung bleibt aber weiterhin das SoftMaker den überschaubaren Aufwand einer „lesenden“ Implementierung erkennt und bald direkt ins Programm umsetzt.

-goehte
Dateianhänge
Convert-Word-Embedded-Font_v01.zip
Revision: V0.1 April-2021
(880.78 KiB) 146-mal heruntergeladen
FFF
SoftMaker Volunteers
SoftMaker Volunteers
Beiträge: 2327
Registriert: 11.06.2013 22:30:18

Re: Eingebettete Schriftarten (mangelnde .docx Komptabilität)

Beitrag von FFF »

Sehr cool! Danke.
NB, der Tipp mit dem Zip-Viewer hat noch eine Weiterung: zumindest 7-zip kann auch "normale" .doc Dateien inspizieren/öffnen. Wer sich fragt warum das hilfreich sein kann: wie ich diese Woche gelernt habe, bringt MS es fertig, unter unklaren Umständen docx Dateien als .doc zu speichern, dabei aber den internen Aufbau zu belassen. Sieht man sich den Inhalt beider Varianten in 7zip an, erkennt man den Unterschied und versteht, warum alles mögliche schief geht ;)
Mit freundlichem Gruß
Karl
SM 2018 rev. 982/0109/64, klassisches Menu @ W8.1/64 /Deutsch/Deutsch // emC 7
SM 2024NX Nightly, klassisches Menu
16GB Ram; Core i5-3450 mit integriertem Intel HDGraphics 4000, Treiber 10.18.10.4276; Samsung SSD 840pro
2560x1440 Monitor 100% Darstellungsgröße /// LaserJet 1200 per USB via Fritzbox 6591.
Empfehlung für supereinfache Bildschirmvideos: https://www.screentogif.com/
Antworten

Zurück zu „TextMaker 2018 für Windows“