package Ġcom . fl uper . printer demo Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . print . Print Attributes Ċ import Ġandroid . print . Print Document Adapter Ċ import Ġandroid . print . Print Job Ċ import Ġandroid . print . Print Manager Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView Client Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . print . Print Helper Ċ import Ġcom . s ams k iv ert . must ache . Must ache Ċ import Ġcom . s ams k iv ert . must ache . Template Ċ import Ġjava . io . FileNotFoundException Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* ĊĊ Ċ class ĠHome Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠIMAGE _ REQUEST _ ID Ġ= Ġ 1 3 3 7 ĊĠĠĠ Ġprivate Ġvar Ġpro se : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġw v : ĠWebView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmgr : ĠPrint Manager ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ home ) ĊĊĠĠĠĠĠĠĠ Ġpro se = findViewById ( R . id . pro se ); ĊĠĠĠĠĠĠĠ Ġmgr = getSystem Service ( PRINT _ SERVICE ) Ġas ĠPrint Manager ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . actions , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . onCreate Options Menu ( menu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . getItem Id ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . bitmap Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi Ġ= ĠIntent ( Intent . ACTION _ GET _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Category ( Intent . CATEGORY _ OP ENABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType (" image /* ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( i , ĠIMAGE _ REQUEST _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . web Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint Web Page () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . report Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint Report () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . pdf Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test ĠPDF ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPdf Document Adapter ( application Context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrint Attributes . Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠIMAGE _ REQUEST _ ID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& ĠresultCode Ġ== ĠRESULT _ OK ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhelp Ġ= ĠPrint Helper ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelp . scale Mode Ġ= ĠPrint Helper . SCALE _ MODE _ FIT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhelp . print Bitmap (" Photo !", Ġdata ?. data !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFileNotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Class . simple Name , Ġ" Exception Ġprinting Ġbitmap ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġprivate Ġfun Ġprint Web Page () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprint Ġ= Ġprep Print WebView (" Web ĠPage ") ĊĠĠĠĠĠĠĠ Ġprint ?. load Url (" https :// commons ware . com / Android ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprint Report () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtmpl : ĠTemplate Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMust ache . compiler (). compile (" Report ĠBody ") ĊĠĠĠĠĠĠĠ Ġval Ġprint Ġ= Ġprep Print WebView (" tps _ report ") ĊĠĠĠĠĠĠĠ Ġprint ?. load Data ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtmpl . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT ps Report Context ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpro se !!. text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" text / html ; Ġcharset = UTF - 8 ", Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprep Print WebView ( name : ĠString ): ĠWebView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġget WebView () ĊĠĠĠĠĠĠĠ Ġresult ?. web View Client Ġ= Ġobject Ġ: ĠWebView Client () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Page Finished ( view : ĠWebView , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , Ġview . create Print Document Adapter (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrint Attributes . Builder (). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget WebView (): ĠWebView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( wv Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw v Ġ= ĠWebView ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġw v ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprint ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , Ġadapter : ĠPrint Document Adapter , ĊĠĠĠĠĠĠĠ Ġattrs : ĠPrint Attributes ĊĠĠĠ Ġ): ĠPrint Job ? Ġ{ ĊĠĠĠĠĠĠĠ Ġstart Service ( Intent ( this , ĠPrint Job Monitor Service :: class . java )) ĊĠĠĠĠĠĠĠ Ġreturn Ġmgr !!. print ( name , Ġadapter , Ġattrs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠT ps Report Context Ġinternal Ġconstructor ( var Ġmsg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreport Date : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġfmt . format ( Date ()) ĊĠĠĠĠĠĠĠ Ġval Ġmessage : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġmsg ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġfmt : ĠSimpleDateFormat Ġ= ĠSimpleDateFormat (" yyyy - MM - dd ", ĠLocale . US ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ