【必見】Androidアプリからプリンターへ印刷をするには
どうも、のえるです。
iOS版に引き続き、Android版もお届けしようという内容です。
まだiOS版をご覧になっていない方は、おすすめ記事から飛べますので、そちらをご確認ください。
さて、今回の環境はこんな感じです。
Android OS: 7.0
Device: Galaxy S6
Android Studio: 2.3.3
Language: Java
Printer: Canon MG3500 シリーズ
前提条件
アプリから印刷をする場合、Androidはドライバが必要となります。
ドライバは各プリンターを製造している会社が、AndroidアプリとしてGooglePlayStoreなどに出しています。
また、ドライバアプリからプリンターをAndroidに追加しないと、プリンターとして選択できませんので、事前に追加をしておきましょう。
Canonのドライバーはこちらです。
Canon Print Service
画面設定
今回もシンプルに、画面に表示している画像をそのまま印刷してみます。
なので、画面レイアウトはこんな感じです。
Printボタンが押されたら、印刷の画面へ流れる動きを想定しています。
印刷処理
本題の印刷処理はこんな感じのソースになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v4.print.PrintHelper; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { private Button printButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.printButton = (Button)findViewById(R.id.printButton); this.printButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 印刷処理 doPhotoPrint(); } }); } /** * 印刷ボタン押下時 */ public void doPhotoPrint() { // プリンターヘルパーを生成し、設定を行う PrintHelper printHelper = new PrintHelper(MainActivity.this); printHelper.setScaleMode(PrintHelper.SCALE_MODE_FIT); // 印刷情報を設定 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.flower); String jobName = "test print"; // 印刷 printHelper.printBitmap(jobName, bitmap); } } |
これで印刷が出来ます。
Printボタンを押すとこんな画面が表示されて
印刷ができます。
iOSと異なり、部数やサイズ、カラー設定など、直感的に操作出来る画面となっています。
また、これはオマケですが、プリンターを変更すると実はPDFへの出力も出来ます。
まとめ
簡単な設定なのはiOSと同じですが、詳細をユーザが自由に選べるため、操作がし易いですね。
半面、ドライバアプリが必要になってしまいますが、トレードオフな気がします。
今回はここまで、ではでは?♪
- おすすめ記事
-
-
のえる2017.08.21
-
Androidで別画面のイベントを取得する方法
のえる2017.04.13
-
POPULAR
のえる
Full-stack Developer