Download von der Offiziellen Webseite (https://www.libreoffice.org/download/download/) und Installieren. Unter Windows ist ein neustart des gesamten Servers nötig!
Der Pfad zu LibreOffice muss in der PHPDocx-Konfiguration hinterlegt sein — BISO liest ihn von dort
(BriefDocument::getPDF()). Fehlt er, schlägt die Brief-Erstellung mit einer entsprechenden Fehlermeldung fehl.
Die Konfiguration gehört in die config.php, nicht in die phpdocxconfig.ini: die .ini liegt im
phpdocx-Paket und wird bei jedem Update der Library überschrieben, die config.php bleibt bestehen. Offizielle
Methode von PHPDocx, siehe https://www.phpdocx.com/documentation/cookbook/setting-phpdocx-ini-php-code.
Dabei die vollständige Config setzen, nicht nur einzelne Werte: Sobald $_phpdocxConfig gesetzt ist, liest
PHPDocx die .ini gar nicht mehr. Fehlt dann z. B. paper_size, bricht schon new CreateDocx() mit
You have used an invalid paper size ab.
// vor dem ersten Gebrauch von PHPDocx-Klassen:
require_once __DIR__ . '/components/phpdocx/classes/CreateDocx.php';
PhpdocxUtilities::$_phpdocxConfig = [
'settings' => [
// absoluter Pfad zum Temp-Dir; leer = System-Temp-Dir
'temp_path' => 'D:/webroot/data/tmp/libreoffice',
// 'true': nicht-UTF-8-Inhalte werden nach UTF-8 konvertiert
'encode_to_UTF8' => 'false',
'language' => 'de-CH',
'paper_size' => 'A4',
],
'license' => [
'code' => '',
'value' => '',
],
'transform' => [
'method' => 'libreoffice',
// LibreOffice-Pfad inkl. UserInstallation-Verzeichnis
'path' => 'D:/LibreOffice/program/soffice.exe -env:UserInstallation=file:///D:/webroot/data/tmp/libreoffice/',
],
];
Zum Testen php webroot/tests/word-to-pdf-test.php verwenden.
Nur wenn sichergestellt ist, dass die Datei bei Library-Updates nicht überschrieben wird:
[settings]
; absolute path to the temp dir. If empty the default system tmp directory will be used
temp_path = "D:/webroot/data/tmp/libreoffice"
language = "de-CH"
paper_size = "A4"
[transform]
method = "libreoffice"
; libreoffice installation path, absolute path
path = "D:/LibreOffice/program/soffice.exe -env:UserInstallation=file:///D:/webroot/data/tmp/libreoffice/"
Der IIS User (IIS AppPool\DefaultAppPool) muss Read & Write Berechtigungen auf dem temp_path / UserInstallation Ordner haben.