printing - How to take printout from android app? -
hi in application want take printout webview page i.e html page.can tell me did mistake.my problem code running in emultor not in other devices.
mainactivity.java:
package com.example.print1; import android.os.build; import android.os.bundle; import android.annotation.suppresslint; import android.annotation.targetapi; import android.app.activity; import android.webkit.webview; import android.webkit.webviewclient; import android.print.printattributes; import android.print.printdocumentadapter; import android.print.printmanager; import android.content.context; @suppresslint("newapi") public class mainactivity extends activity { private webview mywebview; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.web_print); webview webview = new webview(this); webview.setwebviewclient(new webviewclient() { public boolean shouldoverrideurlloading(webview view, string url) { return false; } @override public void onpagefinished(webview view, string url) { createwebprintjob(view); mywebview = null; } }); string htmldocument = "<html><body><h1>android print test</h1><p>" + "this sample content.</p></body></html>"; webview.loaddatawithbaseurl(null, htmldocument, "text/html", "utf-8", null); mywebview = webview; } @targetapi(19) @suppresslint("newapi") private void createwebprintjob(webview webview) { printmanager printmanager = (printmanager) this.getsystemservice(context.print_service); printdocumentadapter printadapter = webview.createprintdocumentadapter(); string jobname = getstring(r.string.app_name) + " print test"; printmanager.print(jobname, printadapter,new printattributes.builder().build()); } }
webprintactivity.java
package com.example.print1; import android.os.bundle; import android.print.printattributes; import android.print.printdocumentadapter; import android.print.printmanager; import android.app.activity; import android.content.context; import android.view.menu; import android.view.menuitem; import android.webkit.webview; public class webprintactivity extends activity { private webview mywebview; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); mywebview = (webview) findviewbyid(r.id.webview1); mywebview.loadurl("http://developer.android.com/google/index.html"); } @override public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case r.id.action_print: createwebprintjob(mywebview); return true; default: return super.onoptionsitemselected(item); } } private void createwebprintjob(webview webview) { printmanager printmanager = (printmanager) .getsystemservice(context.print_service); printdocumentadapter printadapter = webview.createprintdocumentadapter(); string jobname = getstring(r.string.app_name) + " print test"; printmanager.print(jobname, printadapter, new printattributes.builder().build()); } }
the above code running in emulator there no wifi in emultor ,if same code runs in android device means shows error , doesnt show proper output want take printout android. thanks.
printing framework works api level 19 , above (android kitkat).
private void createwebprintjob(webview webview) { if(build.version.sdk_int >= build.version_codes.kitkat) { printmanager printmanager = (printmanager) this.getsystemservice(context.print_service); printdocumentadapter printadapter = webview.createprintdocumentadapter(); string jobname = getstring(r.string.app_name) + " print test"; printmanager.print(jobname, printadapter,new printattributes.builder().build()); } }
Comments
Post a Comment