Aspose.Words for Java rtf形式のファイルから正しいページ数が取得できない


#1

Aspose.Words for Java rtf形式のファイルから正しいページ数が取得できない

私は下記のコードでrtfからページ数のプロパティを抽出しています。

 try (InputStream input = dataSource.newInputStream()) {
     Document doc = new Document(input);
     BuiltInDocumentProperties meta = doc.getBuiltInDocumentProperties();
     System.out.println(meta.getPages());
 }

しかし、私は下記の3つのサンプルデータからは正しいページ数が抽出できません。
(私がWordでファイルを開いて確認したページ数とASPOSEでの抽出結果が異なる)

この問題を解決する方法はありますでしょうか。

使用バージョン:Aspose.Words for Java 18.11
サンプルデータ:
http://www.healthyschools.org/downloads/H&HPSchool-2PartRprt.rtf
http://www.lexisnexis.com/documents/pdf/20080507050212_large.rtf
http://bsphn.org.au/wp-content/uploads/2018/06/ClozapineShared-Care-Review_MD_062018.rtf

以上、お手数おかけしますが、ご確認の程よろしくお願いいたします。


#2

@yudai_yamaguchi,

正確なページ数を取得するには、次のコードを使用する必要があります。

Document doc = new Document("E:\\temp\\20080507050212_large.rtf");
System.out.println("Page count " + doc.getPageCount()); 

しかし、Aspose.Words for Javaの最新バージョンは、正しい数のページを返していません。

私たちは、問題追跡システムに以下の問題を記録しました。

  • WORDSNET-17860: 関連する 20080507050212_large.rtf

この問題の詳細をさらに詳しく調べ、修正のステータスを更新します。 ご迷惑をおかけして申し訳ありません。


#3

@yudai_yamaguchi,

WORDSNET-17860に関しては、コードでハイフネーションが使用されていないために問題が発生します。 MS Word文書はハイフネーションされます。 Aspose.Wordsからハイフネーションされた出力を得るには、ハイフネーション辞書を登録する必要があります:

Document doc = new Document("E:\\temp\\20080507050212_large.rtf");
Hyphenation.registerDictionary("en-US", "E:\\temp\\hyph_en_US.dic");
System.out.println("Page count " + doc.getPageCount());

したがって、上記のコードを使用して正しいページ数を取得してください。

アタッチメント: hyph_en_US.zip (38.5 KB)