Ich verwende unoconv
um OpenOffice/LibreOffice Dokumente in PDF umzuwandeln.
Zuerst musste ich jedoch ein Eingabedokument mit einer Formel erstellen. Leider ist es nicht möglich nur den Formel-Editor zu verwenden um eine ODF-Datei zu erstellen, da die AusgabepDF-Datei seltsame Kopf- und Fußzeilen enthalten würde.
Daher habe ich ein einfaches Textdokument (in Writer) erstellt und die Formel als ein einzelnes Objekt eingebettet (ausgerichtet als Zeichen). Ich habe die ODT-Datei gespeichert, entzippt (da ODT nur ein ZIP ist) und den Inhalt bearbeitet. Anschließend identifizierte ich, welche Dateien gelöscht werden können und formatierte die verbleibenden Dateien, um ein minimales Beispiel zu erhalten.
In meinem Beispiel befindet sich die Formel selbst in Formula/content.xml
. Es sollte einfach sein, nur den Code innerhalb der ...
Tags automatisiert zu ändern.
Zuletzt habe ich das Verzeichnis gezippt und eine neue ODT-Datei erstellt. Dann, unter Verwendung von unoconv
und pdfcrop
, habe ich eine schöne Formel als PDF erstellt.
# Dieser Trick verhindert, dass zip ein zusätzliches Verzeichnis erstellt
cd formula.odt.unzipped
zip -r ../formula.odt .
cd ..
unoconv -f pdf formula.odt # ODT zu PDF
pdfcrop formula.pdf # Nur die Formel behalten
# Sie können das PDF in ein Bitmap umwandeln wie folgt
convert -density 300x300 formula-crop.pdf formula.png
Der Inhalt des entzippten ODT-Verzeichnisses lautet:
Hier ist der minimale Inhalt einer ODT-Datei formula.odt
.
formula.odt.unzipped/Formula/content.xml
formula.odt.unzipped/META-INF/manifest.xml
formula.odt.unzipped/content.xml
Die Datei formula.odt.unzipped/Formula/content.xml
enthält:
f ( x ) = sum from { { i = 0 } } to { infinity } { {f^{(i)}(0)} over {i!} x^i}
Die Datei formula.odt.unzipped/content.xml
enthält:
Die Datei formula.odt.unzipped/META-INF/manifest.xml
enthält: