Print HTML document and webpage.
Print HTML document and webpage in android application.
Printing an html doc with webview involves loading an
html res or building an html doc as a string.
Creating custom print view step by step
1. Creat
a webviewclient that starts a print job after the html res is loaded.
2. Load
the html res into the webview object.
private WebView testWebView;
private void TestWebViewPrint() {
// Create a WebView object specifically for printing
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) {
Log.i("TAG", "page finished loading " + url);
createTestWebPrintJob(view);
testWebView = null;
}
});
// Generate an HTML document on the fly:
String htmlDocument = "
"Hello, Hello...
private void TestWebViewPrint() {
// Create a WebView object specifically for printing
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) {
Log.i("TAG", "page finished loading " + url);
createTestWebPrintJob(view);
testWebView = null;
}
});
// Generate an HTML document on the fly:
String htmlDocument = "
Test Content
Androidbeginner tutorial point, " +"Hello, Hello...
webView.loadDataWithBaseURL(null, htmlDocument, "text/HTML", "UTF-8", null);
// Keep a reference to WebView object until you pass the PrintDocumentAdapter
// to the PrintManager
testWebView = webView;
}
private void createTestWebPrintJob(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());
}
}
you can load a webpage for printing by replacing the
method loadUrl().
webView.loadUrl("https://developer.android.com/distribute/index.html");