Warum wird MSOffice nicht mehr für die Documentviewer-Vorschau verwendet?

Warum wird MSOffice nicht mehr für die Documentviewer-Vorschau verwendet?

Das ist ein häufiges Problem: MSOffice wurde für den Documentviewer eingerichtet, funktioniert aber irgendwann nicht mehr.

Hauptgrund ist, dass MSOffice keinen Unterschied macht zwischen Anwender und Dienst und alle Meldungen einfach ausgibt. D.h. es ist egal ob ein Benutzer MSOffice startet oder ein Documentviewer-Dienst.
Sobald es eine Information haben will, z. Bsp. wegen Update oder Fehlern oder warum auch immer, wird diese immer als Meldung ausgegeben beim Start der Komponente (z. Bsp. Word oder Excel). Wichtig ist zu wissen, dass man viele Meldungen nicht abstellen kann. Wenn MSOffice etwas installieren will, dann hilft nur installieren. 
Die Einstellung kann zudem für einen Benutzer, ein bestimmtes Office-Format, Sprache und Absatz gelten. Das bedeutet, wenn MSOffice meint, in einem Dokument kyrillische Silbentrennung zu benötigen, dann muss das installiert werden. 

  • Der Dienstbenutzer ist gesperrt oder hat eingeschränkte Rechte bekommen (ist z. Bsp. nicht mehr lokaler Admin) 

  • Das System ist zu langsam und/oder die Konvertierung läuft in einen Timeout (Standardwert 5 Min.). 

  • Das Dokument ist zu groß und braucht länger als 5 Min. zum Rendern/Konvertieren in PDF. 

  • MSOffice hat ein Update erfahren und möchte Meldungen bestätigt haben 

  • MSOffice-Lizenz ist abgelaufen

  • Eine Konvertierung ist abgestürzt und MSOffice möchte wissen, wie man damit umgehen will, z. Bsp. Wiederherstellungsoptionen …

  • GPOs wurden ausgerollt, die Meldungen bringen oder den Start von MSOffice sogar verhindern

  • Die Desktop-Ordner sind nicht mehr vorhanden. 

  • Drucker wurden entfernt oder der Dienst Druckerwarteschlangen wurde beendet. 

  • Virenscanner verhindern den Zugriff auf Office-Dokumente

  • ...

 

Schritt-für-Schritt-Anleitung

Die Documentviewer-Protokolle prüfen (osrenditionplus.log und osrenditioncache.log) und nach typischen Office-Dokumenten suchen (z. Bsp. ".docx") oder noch besser: ein konkretes Beispiel anhand einer Object-ID. 

Oft geben die Protokoll bereits Infos aus. Beispiel:

  • Drucker nicht vorhanden oder Dienst Druckerwarteschlange deaktiviert: 

  • kein MSOffice verfügbar:
    933px

Bitte prüfen, ob die Grundvoraussetzungen noch gegeben sind, also Dienstbenutzer noch verfügbar, alternative LoginPipe noch verfügbar ...
siehe Welche Grundvoraussetzungen müssen gegeben sein, damit ein Documentviewer korrekt arbeiten kann?

  • Dazu am besten auf den Documentviewer-Server einwählen und den Taskmanager starten. 
    Hängen dort Office-Anwendungen (Excel, WORD ...)? 
    Gibt es bei diesen Aktivitäten? 

  • CMD als Dienstbenutzer starten, wichtig: explizit “als Administrator ausführen”.
    Dazu CMD als Admin starten und dann dort mit gedrückter STRG+SHIFT die rechte Maustaste in der Taskleiste anklicken. Dann kann man die Funktion wählen "als anderer Benutzer ausführen":

     

    Kontrolle ist immer gut (Dienstbenutzer = Benutzer im Commandline): 

  • nun über den Windows-Explorer den Pfad zum MSOffice ermitteln und dorthin wechseln: 

    CD <msoffice-Pfad>
  • Start der Office-Anwendungen der Reihe nach: Winword.exe, excel.exe ... 
    Kommen Meldungen?
    Alle Meldungen, die auftauchen, bestätigen bzw. so konfigurieren, dass sie nicht mehr erscheinen, wenn man die Komponenten erneut startet, ein paar Hinweise siehe Welche Grundvoraussetzungen müssen gegeben sein, damit ein Documentviewer korrekt arbeiten kann?

  • Ein Office-Dokument aus dem Documentviewer-Temp-Verzeichnis öffnen (am besten von jedem Typ eines, also 1x doc, 1x dox, 1x xls, 1x xlsx ...) und je “Speichern unter PDF” ausführen. Das Zielverzeichnis ist beliebig, Empfehlung: Downloads. 
    Funktioniert das oder kommen Meldungen?

  • Falls Anwendungen im Taskmanager hängen geblieben sind, sollten diese beendet werden. Empfehlung: Documentviewer vorher beenden.
    Danach unbedingt Punkt 2 wiederholen, genau genommen alle Office-Anwendungen als Dienstbenutzer starten und Meldungen bestätigen, wenn welche erscheinen. 

  • Sollte dies nicht helfen, dann hilft nur, den Converter heraussuchen und prüfen, welche Meldungen kommen. Dazu am besten das RenditionPlus-Log öffnen und nach einem Office-Dokumenttyp suchen, z. Bsp. ".xlsx"
    Je nach Converter kann hier ein einfacher Pfad stehen mit convert.bat oder secure-convert.bat oder mit Java, wie bei MSOffice: 

     

    Diese Zeile kopieren und anpassen, also unnötigen Protokoll-Text entfernen damit etwas Ausführbares entsteht. Danach in ein Commandline-Fenster einfügen (cmd am besten “als Administrator ausführen” starten und zwar als Dienstbenutzer, siehe Punkt 3). Den Timeout des Kommandos entfernen (oder erhöhen - das hängt vom Aufruf ab) und prüfen, was passiert.

    Beispiel: 
    kopierte Zeile: 
    2022-07-04 09:46:44,218 converteroutput                    ( 114) [                Thread-47] DEBUG - 20220704.094641.617-1-toPdf          >> OUTPUT: timeout: 300000 workdir: C:\enaio\services\documentviewer\renditionplus\bin\apps\java ["scriptexecutor-app.bat" "C:/enaio/services/documentviewer/renditionplus/bin/converter/msoffice2pdf.js" "C:/enaio/services/documentviewer/renditionplus/bin" "300000" "false" "false" "false" "C:\enaio\services\documentviewer\webapps\renditionplus\WEB-INF\classes\config/office.properties" "C:\enaiodata\dv\data\temp\os_1140333159579742923.xlsx" "C:\enaiodata\dv\data\temp\20220704.094641.617-1-toPdf\f727d0c7-d7e8-4146-948c-3292885deae5/result.pdf"]


    angepasste Zeile: 

    cd C:\enaio\services\documentviewer\renditionplus\bin\apps\java\ scriptexecutor-app.bat "C:/enaio/services/documentviewer/renditionplus/bin/converter/msoffice2pdf.js" "C:/enaio/services/documentviewer/renditionplus/bin" "3000000" "false" "false" "false" "C:\enaio\services\documentviewer\webapps\renditionplus\WEB-INF\classes\config/office.properties" "C:\enaiodata\dv\data\temp\os_1140333159579742923.xlsx" "C:\enaiodata\dv\data\temp\20220704.094641.617-1-toPdf\f727d0c7-d7e8-4146-948c-3292885deae5/result.pdf"

Bei Java speziell kann es notwendig sein, dass der Pfad zur Java.exe (Documentviewer\jdk\bin) vor dem Test zur Systemvariable hinzugefügt werden muss. Nach den Tests unbedingt wieder entfernen. 


Sollte es schlicht der Timeout sein, dann gibt es 2 Optionen:

  1. entweder prüfen, warum es so lange dauert

  2. oder den Timeout höher stellen. Dazu in der config.properties (RenditionCache) den Parameter "rendition.timeout" suchen.
    Bitte beachten: In älteren Versionen war der Parameter in einer anderen config-Datei. 

 

Wichtig: Solange MSOffice Meldungen beim Start oder beim Speichern als PDF bringt, kann der Documentviewer MSOffice nicht verwenden. 
Bitte auch beachten: MSOffice (speziell EXCEL) benötigt einen aktivierten Druckerwarteschlagendienst und 1 Standard-Drucker. Das kann auch ein PDF-Drucker sein. Ansonsten kann MSOffice das Layout nicht bilden und damit kein PDF erstellen. 

Verwandte Artikel