package Ġuz . qu antic . pdf render . activities Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . it ext pdf . text . Document Ċ import Ġcom . it ext pdf . text . Paragraph Ċ import Ġcom . it ext pdf . text . pdf . Pdf Writer Ċ import Ġuz . qu antic . pdf render . R Ċ import Ġjava . io . File Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠWrite Pdf Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Text Et : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Save Btn : ĠButton ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . KIT K AT ) ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ write _ pdf ) ĊĠĠĠĠĠĠĠ Ġon Back () ĊĊĠĠĠĠĠĠĠ Ġm Text Et Ġ= ĠfindViewById ( R . id . text Et ) ĊĠĠĠĠĠĠĠ Ġm Save Btn Ġ= ĠfindViewById ( R . id . save Btn ) ĊĊĊĠĠĠĠĠĠĠ Ġm Save Btn . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// we Ġneed Ġto Ġhandle Ġruntime Ġpermission Ġfor Ġdevices Ġwith Ġmar shm allow Ġand Ġabove ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ> ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// system ĠOS Ġ>= ĠMar shm allow ( 6 . 0 ), Ġcheck Ġif Ġpermission Ġis Ġenabled Ġor Ġnot ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check Self Permission ( Manifest . permission . WRITE _ EXTERNAL _ STORAGE ) Ġ== ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . PERMISSION _ DEN IED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// permission Ġwas Ġnot Ġgranted , Ġrequest Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpermissions Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Manifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Permissions ( permissions , Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// permission Ġalready Ġgranted , Ġcall Ġsave Ġpdf Ġmethod ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Pdf () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// system ĠOS Ġ< ĠMar shm allow , Ġcall Ġsave Ġpdf Ġmethod ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Pdf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . KIT K AT ) ĊĠĠĠ Ġprivate Ġfun Ġsave Pdf () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// create Ġobject Ġof ĠDocument Ġclass ĊĠĠĠĠĠĠĠ Ġval Ġm Doc Ġ= ĠDocument () ĊĠĠĠĠĠĠĠ Ġ// pdf Ġfile Ġname ĊĠĠĠĠĠĠĠ Ġval Ġm FileName : ĠString Ġ= ĠSimpleDateFormat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" yyyy MM dd _ HH mm ss ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLocale . getDefault () ĊĠĠĠĠĠĠĠ Ġ). format ( System . currentTimeMillis ()) ĊĠĠĠĠĠĠĠ Ġ// pdf Ġfile Ġpath ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( this . get External Files Dir ( null ), Ġ" Pdf ĠApp ") ĊĠĠĠĠĠĠĠ ĠLog . d (" dd ddd ", file . absolute Path ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! file . exists ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . mkdir s () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġm FilePath : ĠString Ġ= Ġfile . path + Ġ"/ "+ m FileName +". pdf " ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// create Ġinstance Ġof ĠPdf Writer Ġclass ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPdf Writer . getInstance ( m Doc , ĠFileOutputStream ( m FilePath )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// open Ġthe Ġdocument Ġfor Ġwriting ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Doc . open () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// get Ġtext Ġfrom ĠEditText Ġi . e . Ġm Text Et ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Text Ġ: ĠString Ġ= Ġm Text Et . text . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// add Ġauthor Ġof Ġthe Ġdocument Ġ( optional ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Doc . add Author (" At if ĠPer va iz ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// add Ġparagraph Ġto Ġthe Ġdocument ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Doc . add ( Paragraph ( m Text )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// close Ġthe Ġdocument ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Doc . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// show Ġmessage Ġthat Ġfile Ġis Ġsaved , Ġit Ġwill Ġshow Ġfile Ġname Ġand Ġfile Ġpath Ġtoo ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ"$ m FileName . pdf \ nis Ġsaved Ġto \ n $ m FilePath ", ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// if Ġany Ġthing Ġgoes Ġwrong Ġcausing Ġexception , Ġget Ġand Ġshow Ġexception Ġmessage ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġe . message , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġback Ġnav ĊĠĠĠ Ġprivate Ġfun Ġon Back () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Home As Up Indicator ( R . drawable . left ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Show Home Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Home Button Enabled ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġitem Ġselected ĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item . itemId Ġ== Ġandroid . R . id . home ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} Ċ Ċ } ĊĊĊ