2009-04-28 7 views
2

Ich brauche Seiten zählen aus Word-Dokumenten. Ich habe viele Bibliotheken und Skripte (Apache Poi, Perl-Skripte, einige Anwendungen für Linux und einige mehr) getestet und die einzige funktionierende Lösung war, Microsoft Office mit Wine zu installieren und mit Perl auf OLE zuzugreifen. Ich habe es geschafft, aber es scheint, ich kann es nicht auf dem Server aufgrund von Lizenzproblemen verwenden ...Programmatisch erhalten Seiten zählen in Microsoft Word-Dokumente unter Linux

Das Problem mit ApachePoi und anderen Lösungen, die Zugriff auf Word-Dokumente Info ist mit Unvollständigkeit einiger Dokumente verbunden. Die pageCount -Eigenschaft in der Dokumentzusammenfassung fehlt manchmal (dies ist häufig der Fall, wenn OdT-Dokumente als Dokument und ältere Dokumente gespeichert werden).

Gibt es eine Möglichkeit, Seiten zu zählen (nicht nur Informationen aus der Zusammenfassung), ohne Microsoft Office auf dem Server zu installieren?

Antwort

2

Ich wollte sagen wvSummary, aber ich denke, das verwendet die Metadaten, auf die Sie sich beziehen. Ich bin mir nicht sicher, ob es eine Möglichkeit gibt, die Anzahl der Seiten zu ermitteln, ohne das Dokument tatsächlich auszulegen. Sie müssen also möglicherweise auf APIs zurückgreifen, um eine echte Office-kompatible Anwendung wie OpenOffice oder AbiWord zu steuern.

+0

Ich habe vwSummary versucht und ja, es verwendet Dokument Zusammenfassung. Ich habe vergessen, OpenOffice zu erwähnen, es gibt Python und Java API und es ist ziemlich einfach, die tatsächlichen Seitenzahlen zu erhalten. Das einzige Problem bei diesem Ansatz ist das Öffnen von Doc-Dateien in OpenOffice - manchmal kann es sich unterscheiden, dass die gleiche Datei mit MS Office geöffnet wurde. –

+0

Ja, OpenOffice unterscheidet sich manchmal. Denken Sie daran, dass es keinen Standard für .doc gibt. Also wirklich die Antwort ist, es gibt keine Antwort. Es gibt keine Standardmethode zum Zählen von Seiten, da es keine Standardmethode zum Rendern einer Dokumentdatei gibt. Wenn Sie die gleiche Anzahl von Seiten Word benötigen, müssen Sie natürlich Word verwenden. –

1

Wenn Sie der Dokumentzusammenfassung vertrauen, anstatt wvSummary zu verwenden, können Sie einfach die Datei öffnen und eine Regex-Suche nach "nofpages (\ d +)" durchführen. Gruppen [1] enthalten die Anzahl der Seiten.

Da Word die Zusammenfassung immer speichert, wenn es speichert, denke ich, dass das ziemlich sicher ist, wenn Sie wissen, dass das Dokument zuletzt mit Word gespeichert wurde, was nach meiner Erfahrung 99% der Zeit ist.

+0

Außer für fehlerhafte Versionen von Word; siehe http://stackoverflow.com/a/28596596/3588161 – Fizz