Androidでpdfを表示させたい

10,522 views
Skip to first unread message

adachi

unread,
May 9, 2011, 6:34:33 AM5/9/11
to 日本Androidの会
日本Androidの会の皆様


adachiと申します。
いつもここで、勉強させていただいております。
現在、Androidで、pdfを表示させたいと考えているのですが、情報が出て来ず八方塞がりの状態で、
途方にくれています。
Androidで、pdfを表示させる方法を存知の方がいらっしゃいましたら、是非ともご教授をお願いいたします。
何かとっかかりになりそうなことでもかまいません。
よろしくお願いいたします。


私が実現したいことは、pdfを表示させるアプリの作成です。
WebViewClientを使って、webブラウザで表示させることを考えましたが、
今回は、クライアントのみでの表示を行いたいと考えております。

マーケット上には、Android用のPDFビューアーがいくつか存在する為、
実現する方法は有るのかもしれませんが、恥ずかしながら何の手掛かりも掴めていません。

何かご存知でしたらよろしくお願いいたします。

Hiroki MATSUMORI

unread,
May 9, 2011, 11:56:05 PM5/9/11
to 日本Androidの会
adachiさん

松森と申します。

PDFを表示するライブラリはPdf-renderer(http://java.net/projects/pdf-renderer/)がありま
す。

上記のライブラリを使用したアプリケーションはAndroid PDF Viewer(http://sourceforge.net/
projects/andpdf/)
があります。

--
MATSUMORI Hiroki
S.N.R.I. - Software Network Research Institution
http://www.snri.co.jp/

K.Haruhara

unread,
May 9, 2011, 9:46:00 PM5/9/11
to 日本Androidの会
春原と申します。
 adachi様
 こちらに同じ問い合わせがあり、Googleコードを紹介しています。
 こちら参考になるのではないでしょうか。
 http://stackoverflow.com/questions/4646486/reading-pdf-from-within-an-android-application

 記載内容で不明な点あれば又お問い合わせください。

On 5月9日, 午後7:34, adachi <ak...@profire.co.jp> wrote:

adachi

unread,
May 10, 2011, 2:48:17 AM5/10/11
to 日本Androidの会
松森様


adachiです。

返信ありがとうございます。


私は、apdfviewerというアプリを見つけることができ、
このアプリケーションは、ソースが公開されていた為、
現在、ソースの解析作業を行っております。
しかし、表示まではまだ行うことが出来ていません。

apdfviewer
http://www.moongift.jp/r/2009/12/apdfviewer/


Pdf-rendererの情報は参考にさせていただきたいと思います。
ありがとうございます。
> > 何かご存知でしたらよろしくお願いいたします。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

adachi

unread,
May 10, 2011, 3:35:11 AM5/10/11
to 日本Androidの会
春原様


adachiです。
貴重な情報を頂きありがとうございます。


教えていただいたサイトのAPDFViewerについては、
私も発見することが出来た為、アプリケーションのソースのを元に実現していこうと考えております。
しかし、まだ、pdfファイルの表示にすらこぎつけていません。

現在、APDFViewerのソースの一部で、pdfファイルを渡す手順で、
止まってしまっております。


プロジェクト環境
・res/raw/test.pdfを用意
・assets/test2.pdfを用意
・sampleAppは、APDFViewer起動の為に、付け加えたActivity
Activity。ライブラリメインActivityである、PDFViewerActivityを呼び出す。
・PDFView クラス View を継承
・AssetFileDescriptor m_descriptor;


PDFView.javaソース内

public void openUri(Uri uri) {
// reset
if (m_doc != null) {
// TODO: clean up?
m_doc = null;
}
m_current_page = 1;

// open uri
try {
// ※
//AssetManager as = getResources().getAssets();
//m_descriptor = as.openFd("test2.pdf");

m_descriptor =
getContext().getContentResolver().openAssetFileDescriptor(uri, "r");
if (m_descriptor == null) {
Log.e(TAG, "File desciptor is null.");
}
} catch (FileNotFoundException e) {
Log.e(TAG, "Open file failed.");
return;
} catch (IOException e) {
Log.e(TAG, "Open file failed.");
}

// open document
m_doc = new PDFDocument(m_descriptor.getFileDescriptor(), "", "");
if (!m_doc.isOk()) {
// TODO: report error.
return;
}

pageChanged();
}


このメソッドに渡す、Uriにどういったものを入るのかが分からず、困っております。
試行錯誤して、uriの情報を変えていますが、FileNotFoundExceptionが発生し、
pdfファイルの表示を行うことができていません。

rawにあるリソースを開こうとしたところ以下の例外が発生しています。
Uri uri = Uri.parse("android.resource://com.sample.sampleApp/" +
R.raw.test);
-> java.io.FileNotFoundException: No package found for authority:
android.resource://jp.gendosu.HealingNoise/2130968576

その為、assetにpdfファイルを置き、直接開こうと考え(※コメントアウトしたソース)、
試したところ、以下の例外が発生してしまっています。
-> java.io.FileNotFoundException: This file can not be opened as a
file descriptor; it is probably compressed

私が、AssetFileDescriptor や AssetManager についてしっかり理解できていないということもあり、
もし訳ありません。


春原様

AssetFileDescriptor や AssetManager の使い方について、何かご存知のことがありましたら、
是非一度、返信を頂けないでしょうか。
乱文で申し訳ありません。




On 5月10日, 午前10:46, "K.Haruhara" <k-h...@amigo2.ne.jp> wrote:
> 春原と申します。
>  adachi様
>  こちらに同じ問い合わせがあり、Googleコードを紹介しています。
>  こちら参考になるのではないでしょうか。
>  http://stackoverflow.com/questions/4646486/reading-pdf-from-within-an...
>
>  記載内容で不明な点あれば又お問い合わせください。
>
> On 5月9日, 午後7:34, adachi <ak...@profire.co.jp> wrote:
>
>
>
> > 日本Androidの会の皆様
>
> > adachiと申します。
> > いつもここで、勉強させていただいております。
> > 現在、Androidで、pdfを表示させたいと考えているのですが、情報が出て来ず八方塞がりの状態で、
> > 途方にくれています。
> > Androidで、pdfを表示させる方法を存知の方がいらっしゃいましたら、是非ともご教授をお願いいたします。
> > 何かとっかかりになりそうなことでもかまいません。
> > よろしくお願いいたします。
>
> > 私が実現したいことは、pdfを表示させるアプリの作成です。
> > WebViewClientを使って、webブラウザで表示させることを考えましたが、
> > 今回は、クライアントのみでの表示を行いたいと考えております。
>
> > マーケット上には、Android用のPDFビューアーがいくつか存在する為、
> > 実現する方法は有るのかもしれませんが、恥ずかしながら何の手掛かりも掴めていません。
>

Shin MIYAZAKI

unread,
May 10, 2011, 4:03:17 AM5/10/11
to android-g...@googlegroups.com
みやざきです。

下記サイトであげられているアプリについて、APDFViewer 以外はすべてライセンスがGPLと
なっています。またAPDFViewerについてもApache Licenseで配布されてはいるものの、
内部で使用しているpopplerがGPLであり、ちょっとライセンシングが変ではないかと思います。

作成されているアプリをGPLで公開するというのであれば何も問題は無いのですが、
そうでない場合にはこれらのアプリを流用するのはまずいです。

私もPDFに関して調査したことはありますが、GPL以外のオープンソースライセンスで
利用できるPDFライブラリには出会えませんでした。

2011/5/10 K.Haruhara <k-h...@amigo2.ne.jp>
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。


adachi

unread,
May 10, 2011, 9:31:34 AM5/10/11
to 日本Androidの会
みやざき様


adachiです。

参考や理解を目的に、ソースを読み進めて行こうと思います。
流用はしていきません。
pdfに関して、情報が中々出て来ず、本当に困っていたので、オープンソースライセンスでも、
参考にすることができる資料があったことが助かりました。




On 5月10日, 午後5:03, Shin MIYAZAKI <shinm2...@gmail.com> wrote:
> みやざきです。
>
> 下記サイトであげられているアプリについて、APDFViewer 以外はすべてライセンスがGPLと
> なっています。またAPDFViewerについてもApache Licenseで配布されてはいるものの、
> 内部で使用しているpopplerがGPLであり、ちょっとライセンシングが変ではないかと思います。
>
> 作成されているアプリをGPLで公開するというのであれば何も問題は無いのですが、
> そうでない場合にはこれらのアプリを流用するのはまずいです。
>
> 私もPDFに関して調査したことはありますが、GPL以外のオープンソースライセンスで
> 利用できるPDFライブラリには出会えませんでした。
>
> 2011/5/10 K.Haruhara <k-h...@amigo2.ne.jp>
>
>
>
> > 春原と申します。
> > adachi様
> > こちらに同じ問い合わせがあり、Googleコードを紹介しています。
> > こちら参考になるのではないでしょうか。
>
> >http://stackoverflow.com/questions/4646486/reading-pdf-from-within-an...
>
> > 記載内容で不明な点あれば又お問い合わせください。
>
> > On 5月9日, 午後7:34, adachi <ak...@profire.co.jp> wrote:
> > > 日本Androidの会の皆様
>
> > > adachiと申します。
> > > いつもここで、勉強させていただいております。
> > > 現在、Androidで、pdfを表示させたいと考えているのですが、情報が出て来ず八方塞がりの状態で、
> > > 途方にくれています。
> > > Androidで、pdfを表示させる方法を存知の方がいらっしゃいましたら、是非ともご教授をお願いいたします。
> > > 何かとっかかりになりそうなことでもかまいません。
> > > よろしくお願いいたします。
>
> > > 私が実現したいことは、pdfを表示させるアプリの作成です。
> > > WebViewClientを使って、webブラウザで表示させることを考えましたが、
> > > 今回は、クライアントのみでの表示を行いたいと考えております。
>
> > > マーケット上には、Android用のPDFビューアーがいくつか存在する為、
> > > 実現する方法は有るのかもしれませんが、恥ずかしながら何の手掛かりも掴めていません。
>
> > > 何かご存知でしたらよろしくお願いいたします。
>
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> > このグループから退会するには、android-group-j...@googlegroups.comにメールを送信してくださ-い。
> > 詳細については、http://groups.google.com/group/android-group-japan?hl=jaからこのグループにアクセスしてください。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

adachi

unread,
May 24, 2011, 10:37:53 AM5/24/11
to 日本Androidの会
adachiです。


遅くなってしまいましたが、
このディスカッションをクローズ宣言させていただきます。
曖昧な終わり方にしていて、申し訳ありません。

最終的に、今回は、pdfを見送るり、改めて時間を取って、
pdfの解析から取り組んでみようと思います。

皆様、貴重なアドバイスをしていただきありがとうございました。




On 5月9日, 午後7:34, adachi <ak...@profire.co.jp> wrote:
Reply all
Reply to author
Forward
0 new messages