Open top menu


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 = "

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");



Read more