【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 追記
もう少し見やすいように書いてみた
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(); } } }
コメント
コメントを投稿