2009-04-28 8 views
2

ワード文書からページ数を取得する必要があります。私は多くのライブラリとスクリプト(Apache poi、perlスクリプト、Linux用アプリケーションなど)をテストしましたが、唯一の解決策はMicrosoft OfficeをWineとともにインストールし、OLEにperlでアクセスすることでした。私はそれをすることができましたが、それはライセンスの問題のためにサーバー上で使用することはできないようです...プログラムで、Linux上のMicrosoft Word文書のページ数を取得する

word文書情報へのアクセスを提供するapachepoiおよびその他のソリューションの問題は、いくつかのドキュメントの不完全性に関連しています。ドキュメントサマリーのpageCountプロパティが見つからないことがあります(ドキュメントや古いドキュメントとして保存されたodtドキュメントの場合が多い)。

サーバーにMicrosoft Officeをインストールせずに実際にページを集計する方法はありますか(サマリーから情報を取得するだけでなく)

答えて

2

私はwvSummaryと言うつもりでしたが、これはあなたが参照しているメタデータを使用していると思います。実際に文書をレイアウトせずにページ数を取得する方法があるかどうかはわかりません。だから、OpenOfficeやAbiWordのような実際のOffice互換アプリケーションを動かすためにAPIを使う必要があるかもしれません。

+0

私はvwSummaryを試しました。はい、ドキュメントサマリを使用しています。私はOpenOfficeに言及するのを忘れてしまった。そこにはPythonとJava APIがあり、実際のページ数を得るのはかなり簡単だ。このアプローチの唯一の問題は、OpenOfficeでdocファイルを開くことです。これは、MS Officeで開かれた同じファイルとは異なる場合があります。 –

+0

はい、OpenOfficeが異なる場合があります。 .docの標準はないことを忘れないでください。本当に答えは、答えがないということです。ドキュメントファイルをレンダリングする標準的な方法はないので、ページを数える標準的な方法はありません。 Wordと同じ数のページを取得する必要がある場合は、明らかにWordを使用する必要があります。 –

1

wvSummaryを使用するのではなく、ドキュメントの概要を信頼する場合は、ファイルを開いて、 "nofpages(\ d +)"の正規表現検索を行うだけです。グループ[1]にはページ数が含まれます。

Wordは保存時に要約を常に保存するので、文書がWordで最後に保存されたことを知っていれば、これはかなり安全だと思います。これは私の経験では99%です。

+0

バグの多いバージョンを除く。 http://stackoverflow.com/a/28596596/3588161を参照してください。 – Fizz

関連する問題