3

私のプロジェクトでは、Word ドキュメント (.doc、.docx) ファイルのページ数と Excel ドキュメント (.xls、.xlsx) のシート数を表示する必要があります。Docx4j を使用して .docx ファイルを読み込もうとしましたが、パフォーマンスが非常に悪く、単語数だけが必要で、Apache POI を使用してみました。次のようなエラーが表示されます。

"trouble writing output: Too many methods: 94086; max is 65536. By package:" 

Android で利用できる有料/オープン ソース ライブラリがあるかどうかを知りたいです。

4

1 に答える 1

2

ユーザーごとに異なるため、MSWordファイルの正確なページ数を表示する方法はありません。正確な数は、プリンタ設定、用紙設定、フォント、使用可能な画像などによって異なります。

それでも、バイナリファイルに対して次のことを行うことができます。

  • ファイルを開くには、POIFSFileSystemまたはNPOIFSFileSystemを使用します
  • コンストラクターHWPFDocumentCoreで行われるように、FileInformationBlockのみを抽出します
  • HWPFDocumentのコンストラクターで行われるように、FileInformationBlockからの情報を使用してDocumentPropertiesを作成します
  • DOPのプロパティcPgの値を取得します:DocumentProperties :: getCPg()

このフィールドの説明は次のとおりです。「fExactCWordsおよびfIncludeSubdocsInStatsの値に応じて、メインドキュメントの最後に計算または推定されたページ数を指定する符号付き整数値。」

DOCX / XLSXドキュメントの場合、同じ(私が推測する)プロパティにアクセスする必要がありますが、SAXまたはStAXメソッドを使用します。

于 2012-12-10T14:19:35.613 に答える