【android】PdfDocumentとPdfRenderer を利用しPDFの作成と表示 (java)

今更になってしまいますが、

android API レベル 19 からPDFの操作が可能になっていたようです。

インポートするのは 「android.graphics.pdf」になります。

この中にある、PdfDocument やPdfRenderer などのクラスを利用すれば、

生成や表示関連ができそうです。

iOSは大分前からあったので、よかったのですが、

今までandroidは別途ライブラリを利用して、表示したり、生成していました。

APIレベルが19以上なので、OS 4.4 以上となりますが、

2016年頃には4.4または、5.X以上が主流となっているはずなので、

覚えていた方が良いかと思います。

動作を確かめたわけではないですが、

妄想で作成するコード書いてみた。

PdfDocument document = new PdfDocument();
PageInfo pageInfo = new PageInfo.Builder(100, 100, 1).create();
Page page = document.startPage(pageInfo);
Canvas c = page.getCanvas();
// 好きな内容を書く
c.drawText("aaa", 0, 3, 0, 0, new Paint());
document.finishPage(page);
File file = new File("保存先");
OutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream(file));
document.writeTo(out);
document.close();

} catch (IOException e) {
e.printStackTrace();
}


こんな感じでいけるかな?
2024/06/10 追記
もう少し見やすいように書いてみた

public class PdfCreator {

    public static void createPdf(String filePath) {
        // PDFドキュメントの作成
        PdfDocument document = new PdfDocument();
        // ページ情報の設定 (幅: 100, 高さ: 100, ページ番号: 1)
        PageInfo pageInfo = new PageInfo.Builder(100, 100, 1).create();
        // ページの開始
        Page page = document.startPage(pageInfo);
        // キャンバスの取得
        Canvas canvas = page.getCanvas();
        // ペイントの設定
        Paint paint = new Paint();
        // テキストの描画 (x座標: 0, y座標: 3)
        canvas.drawText("aaa", 0, 3, paint);
        // ページの終了
        document.finishPage(page);

        // ファイルの保存
        File file = new File(filePath);
        try (OutputStream out = new BufferedOutputStream(new FileOutputStream(file))) {
            document.writeTo(out);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // ドキュメントのクローズ
            document.close();
        }
    }
}

コメント

このブログの人気の投稿

【iOS】Swiftでtransformから角度、ラジアン、ディグリー、スケールを求める

【iOS】UIViewControllerのライフサイクル (Swift)