Seite 1 von 1

LibreOffice und Python

Verfasst: Sonntag 29. März 2026, 08:50
von infoallskills
Hallo zusammen,

hat jemand Erfahrungen in der Programmierung von LibreOffice mit Python bzw. interessante Links wo man Beispiele findet?

Ich hab vor ein Script zum automatisierten Drucken (bzw. Umwandeln in PDF) von Schulungsunterlagen zu erstellen.

Re: LibreOffice und Python

Verfasst: Sonntag 29. März 2026, 16:53
von Pedroski55
Nie mit Python gemacht, aber in bash

Gucke nach: libreoffice --headless --convert-to pdf

Vielleicht kann libreoffice heutzutage gleich .odt Dateien jetzt in PDF umwandeln

Code: Alles auswählen

libreoffice --headless --convert-to pdf <file_name>.docx --outdir <output_directory>
Wenn die Dateien in PDF verwandelt worden sind, folgendes bash script funktionierte für mich:
PDFfiles="/home/pedro/winter2021/$1/individual_stats/*.pdf" # local machine
#batch print PDF files

for X in $PDFfiles;
do
echo "Datei ist:"
printf $X;
echo "\n";
echo "Ab zum Drucker ... \n "
lp -d "EPSON-L380-Series" $X;
done
Man muss wissen wie der Drucker heißt. Das kreigt man heraus mit:
lpstat -p
(auch lpstat -t oder -e oder -l

in bash. Damals hatte ich

"EPSON-L380-Series"

Ist ne Weile her das ich dies getan, kann sein das sich etwas geändert hat!

Man kann irgendwie via Python subprocess dasselbe erreichen, aber warum sich die Mühe machen, wenn es in bash doch geht??

Re: LibreOffice und Python

Verfasst: Sonntag 29. März 2026, 17:36
von noisefloor
bzw. interessante Links wo man Beispiele findet?
Na ja, wenn man in der Suchmaschine seines Vertrauens die "libre office python" eingibt, sollte der 1. Suchttreffer die Doku von Libre Office zum Erstellen von Python Skripten und Macros sein.

Wenn du Dokus erstellen willst, dann würde ich aber eher kein Nischenprodukt wie LO verwenden, sondern ein universelleres Format wie Markdown, mit dem sich dann viel leichter auch online Dokus erstellen lassen (bzw. allgemeiner: HTML als Zielformat).

Gruß, noisefloor

Re: LibreOffice und Python

Verfasst: Montag 30. März 2026, 01:10
von __blackjack__
@Pedroski55: Die ganzen Semikolons in dem Shell-Skript sind sinnfrei.

Um das $X gehören doppelte Anführungszeichen, damit Leer- oder andere ”Sonderzeichen” in der Shell keine Probleme machen.

Das erste Argument von ``printf`` ist die Vorlage mit Platzhaltern. Wenn man da gleich den Dateinamen übergibt, können komische Sachen passieren wenn der Dateiname Dinge enthält, die von ``printf`` in der Vorlage besonders behandelt werden.

Code: Alles auswählen

#!/bin/sh
#
# XXX Hier möchte man vielleicht vorher prüfen ob $1 einen sinnvollen Wert hat.
#
PDFfiles="/home/pedro/winter2021/$1/individual_stats/*.pdf"

for X in $PDFfiles
do
    echo "Datei ist: $X"
    echo 'Ab zum Drucker ...'
    lp -d EPSON-L380-Series -- "$X"
done
In der Bash gibt ``echo "\n"`` die Zeichen ``\`` und ``n`` aus, und kein Zeilenendezeichen.