2016年12月28日水曜日

[Android]How to make a PDF from an image

さて、今回はAndroidで画像からPDFを作成する方法についてご説明します。
I explain how to make a PDF from an image on Android this time.

環境(Environment): Android Studio 2.2.1, API 21

今回もまずはサンプルコードから。
At first, look sample code below.


private void savePDFTmp(Bitmap bmpPrint){
    File cachedir = getExternalCacheDir();
    String path = cachedir.getPath() + "/sample.pdf";
    File saveFile = new File(path);

    PdfDocument document = new PdfDocument();

    PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(bmpPrint.getWidth(), bmpPrint.getHeight(), 1).create();

    PdfDocument.Page page = document.startPage(pageInfo);
    Canvas canvas = page.getCanvas();
    canvas.drawBitmap(bmpPrint, 0, 0, null);

    document.finishPage(page);

    try{
        FileOutputStream out = new FileOutputStream(path);
        document.writeTo(out);
        rtnValue = path;
    }catch(Exception e){
        String err = e.toString();
    }
}

AndroidでPDFを作成するにはPdfDocument(android.graphics.pdf.PdfDocument)を使用します。
まず最初にPdfDocument.PageInfoでPDFのページの大きさを定義し、PdfDocumentのstartPageメソッドの引数として設定し、PdfDocument.Pageを取得します。
その後、PdfDocument.Pageに書き込む為のCanvasを取得し、そのCanvasにBitmapを書き込みます。
最後にPdfDocumentのfinishPageメソッドを実行してPDFの書き込みを終了し、FileOutputStreamでファイルとして出力すれば完成です。
Use PdfDocument(android.graphics.pdf.PdfDocument) for making a PDF on Android.
At first, use PdfDocument.PageInfo and specify the scale of a PDF page, and set it to PdfDocument's startPage method as argument, and get PdfDocument.Page.
And get Canvas for writing PdfDocument.Page and draw Bitmap to this Canvas.
At last, declare PdfDocument's finishPage method in order to finish to write a PDF, and use FileOutputStream and write a PDF data to a file.

[関連記事(Articles)]
[iOS]How to make a PDF from an image


にほんブログ村 ライフスタイルブログ クリエイティブライフへ
にほんブログ村

クリエイティブライフ ブログランキングへ

0 件のコメント:

コメントを投稿