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は作成できます!おためしあれ