46

私は自分のアプリでPDFを読むことができるはずのものに取り組んでおり、カスタム レイアウトに PDF ビューを配置したいと考えています。Android PDF Viewerを優先しましたが、 zoomInzoomOutを実行すると時間がかかりすぎます

したがって、現在、MuPDFオープン ソース プロジェクトを使用してプロジェクトに統合することになっています。これはJNIに基づいており、慣れていません。

Cygwinを使用して、ネイティブ コードのライブラリを構築しています。したがって、私はいくつかのことで不明確です:

  1. 私のプロジェクトにMuPDFを統合する方法(私の質問のタイトルに従って)?

  2. 統合に成功したら、PDFリーダーをカスタムビュー(XMLまたはプログラムで)に配置するにはどうすればよいですか?

4

6 に答える 6

49

開発にUbuntuを使用しているため、cygwinを使用してWindowsでこれを行う方法がわかりません。しかし、手順は同じであるべきだと思います。

  1. ここからファイル mupdf-0.9-source.tar.gz をダウンロードします: http://code.google.com/p/mupdf/downloads/list?q=source
  2. ファイル mupdf-thirdparty.zip をダウンロードします。
  3. ソースを抽出します。デフォルトでは、フォルダーに抽出されます: mupdf-0.9/
  4. ファイル mupdf-thirdparty.zip をフォルダー mupdf-0.9/ に抽出します。
  5. プロジェクト mupdf-0.9 をビルドします (Windows の場合は、readme ファイルで宣言されているように VS を使用する必要があります)。
  6. 次に、フォルダー mupdf-0.9/android/ に移動します。
  7. ndk-build を実行します
  8. 次のエラーが発生する可能性があります。

Compile thumb : mupdfthirdparty <= jbig2.c In file included from /home/yury/programming/android/workspace/mupdf-0.9/android/jni/../../thirdparty/jbig2dec/os_types.h:53, from /home/yury/programming/android/workspace/mupdf-0.9/android/jni/../../thirdparty/jbig2dec/jbig2.c:22: /home/yury/software/android-ndk-r6b/platforms/android-8/arch-arm/usr/include/stdint.h:48: error: redefinition of typedef 'int8_t' /home/yury/programming/android/workspace/mupdf-0.9/android/jni/../../thirdparty/jbig2dec/os_types.h:47: note: previous declaration of 'int8_t' was here

解決策はここで説明されています: mupdf for android: ndk-build problem (error: redefinition of typedef ....) ただし、ファイル / thirdparty/jbig2dec/os_types.h の型の定義の行にコメントを付けるだけです。

その後、2 つのライブラリを受け取ります。1 つは静的で、もう 1 つは Android アプリケーション用の共有です。

StaticLibrary  : libmupdfthirdparty.a
SharedLibrary  : libmupdf.so

これが最初の質問に対する答えでした。また、android/Readme.txt ファイルに優れたステップバイステップ ガイドがあります。

次に、2 番目の質問に対する回答です。Android 用のアプリケーションでは、テスト プロジェクトを見つけることができます。次の 3 つのファイルがあります。

  • MuPDFActivity.java
  • MuPDFCore.java
  • PixmapView.java

プロジェクトの最後の 2 つのファイルをコピーするだけです。MuPDFActivity.java の例を参照して、mupdf レイアウトをアクティビティに埋め込む方法を確認してください。このファイルでは、次のように行われます。

    PixmapView pixmapView;
//...   
layout = new RelativeLayout(this);
//...
    RelativeLayout.LayoutParams pixmapParams =
                      new RelativeLayout.LayoutParams(
                                RelativeLayout.LayoutParams.FILL_PARENT,
                                RelativeLayout.LayoutParams.FILL_PARENT);
    pixmapParams.addRule(RelativeLayout.ABOVE,100);
    layout.addView(pixmapView, pixmapParams);

    setContentView(layout);
于 2011-12-21T09:24:29.127 に答える
15

Android アプリケーションの PDF ビューアのソース コード ファイルの一部。リンクを確認して試してください:

http://code.google.com/p/apv/source/browse/

http://code.google.com/p/android-pdf/

http://code.google.com/p/droidreader/

http://andpdf.sourceforge.net/

http://soft.udm4.com/downloading/pdf_viewer_open_source_code_in_android/ (リンク切れ)

http://open-app.org/2011/02/pdf-viewer-a-simple-open-source-pdf-viewer-for-android/ (リンク切れ)

http://androidunderground.blogspot.com/2011/08/pdf-viewer-has-colors-and-speed-but.html (リンク切れ)

于 2011-12-22T08:40:22.960 に答える
5

このプロジェクトをチェック

EBookDroid は、VuDroid コード ベースに基づいた Android 用のオープン ソース (GPL) ドキュメント ビューアーです。

次の形式のファイルをサポートしています。

PDF
DjVu
XPS (OpenXPS)
comics books (cbz,cbr)
于 2011-12-14T08:34:07.263 に答える
0

によって与えられた答えはstar18bitほとんどそれを要約していますが、私が多くの問題に直面したことに続いても.

makeコマンドが機能しなかったため、Visual Studio を使用してビルドする必要がありました。そこで、すべての前提ソフトウェアをリストしました。ANTのように。また、sdk フォルダーtoolsplatform-toolsフォルダーを PATH に追加する必要があります。

Core2.mkまた、ファイルに変更を加える必要がありましたCore.mk。ここですべての情報を提供することはできません。多くの情報があるため、完全な情報についてはこのリンクを参照してください。

http://howtojava.net/tutorials/android/integrate-mupdf-with-android-in-windows-7

于 2015-01-09T11:18:19.283 に答える