質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

1155閲覧

Android android.graphics.pdf.PdfRenderer 画像変換 文字が消える。

takuyaaa

総合スコア5

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2020/07/12 05:43

【質問】
解決策を教えて下さい。
(ネットの記事など色々調べましたが探せませんでした)

【やりたいこと】
PDFを画像化して、Androidに表示をしようとしています。
件名にある「android.graphics.pdf.PdfRenderer」を使ってPDFを
画像化しています。表示コンポーネントは、ImageViewを使っています。

【悩んでいること】
実装自体はできたのですが、端末によって画像の内容が変わってしまい、
PDFの文字がすべて消えてしまいます。

端末は
1.Android 8の10インチ(タブレット)
2.Android 7の7インチ(タブレット)
3.Android 9の6インチ(タブレット)

PDFの画像はすみません。乗せることができません。
フォントはFA-Gothic
種類:TrueType(CID)
エンコーディング:Idntity-H
PDFバージョン:1.5
となっております。

文字が消えるのが、1の場合のみです。
なんとなく、フォントが無いから変換できなくて
文字が消えてしまったのかと思っております。
その場合、どうすればよいか教えていただけないでしょうか。

以下がソースになります。

fun getImage(f :File) :Bitmap? { var renderer: PdfRenderer? = null var page: PdfRenderer.Page? = null var df: ParcelFileDescriptor? = null var input: FileInputStream? = null try { var w = imageView.width var h = imageView.height df = ParcelFileDescriptor.open(f,ParcelFileDescriptor.MODE_READ_ONLY) renderer = PdfRenderer(df) if (renderer.pageCount > 0) { page = renderer.openPage(0) var pw = page.width var ph = page.height var bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888) page.render( bitmap, Rect(0, 0, w, h), null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY ) return bitmap }else{ return null } } catch (ex: Exception) { ex.printStackTrace() } finally { if (page != null) { page.close() } if (renderer != null) { renderer.close() } if (df != null) { df.close() } if(input != null){ input.close() } } }

ご教授よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決(具体的な解決にはなっていません)

Androidのandroid.graphics.pdf.PdfRendererは使えなかった為、
別のライブラリを使用して解決しました。
ちなみに、ライブラリは「PdfiumAndroid]です。
以下リンク
github/PdfiumAndroid

PDFBoxも検討しましたが、次は文字化けし、即戦力にならなかった為。

同じ現状に合われている方、参考になれば・・・。
以上です。

投稿2020/08/19 04:44

takuyaaa

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問