モケラ

Tech Sheets

mokelab

AndroidでPDFを作る

最終更新日:2018-04-21

AndroidでPDFを作るには、`PdfDocument`を使います。

val doc = PdfDocument()

PdfDocument`を作ったら、`startPage()`でページを追加します。どのようなページを追加するかは、`PageInfo`で指定します。

val page = doc.startPage(PdfDocument.PageInfo.Builder(595, 842, 0).create())
val canvas = page.canvas

大きさはピクセル指定です。PDFでは72dpiで扱われるので、A4のページの場合は595 x 842で作成します。

ページを追加したら、`getCanvas()`で`Canvas`を取得します。あとはViewへの描画と同様に`Canvas`のメソッドを呼んでいきます。

// bmpはBitmap
canvas.drawText("こんにちは!!", 10f, 10f, textPaint)
val srcRect = Rect(0, 0, bmp.width, bmp.height)
val destRect = Rect(10, 80, 200, 200)
canvas.drawBitmap(bmp, srcRect, destRect, p)

描画が終わったら、`finishPage()`を呼びます。呼び忘れると書き出し時に例外が発生します。

doc.finishPage(page)

最終的にPDFにするには、`writeTo()`を呼びます。ここではアプリ内のfile領域に作成してみます。

val out = context.openFileOutput("demo.pdf", Context.MODE_PRIVATE)
doc.writeTo(out)

意外とシンプルな方法でPDFは作成できます!おためしあれ

一覧に戻る