Print/Save PDF from Webview is usable when you want to save print webview content. you can see it in this tutorial.
Steps to use Print/Save PDF from Webview in your project.
Steps to use Print/Save PDF from Webview in your project.
- Crate a project(Print/Save PDF from Webview) in android studio.
- Create a Activity MainActivity.Java and update it-
package com.pankaj.savepdffromwebview; import android.content.Context; import android.os.Bundle; import android.print.PrintAttributes; import android.print.PrintDocumentAdapter; import android.print.PrintManager; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; public class MainActivity extends AppCompatActivity { //create object of webView private WebView myWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //initialize webview myWebView = findViewById(R.id.myWebView); //add webview client to handle event of loading myWebView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } @Override public void onPageFinished(WebView view, String url) { //if page loaded successfully then show print button findViewById(R.id.fab).setVisibility(View.VISIBLE); } }); //prepare your html content which will be show in webview String htmlDocument = "<html><body>" + "<h1>Webview Print Test </h1>" + "<h2>I am Webview</h2>" + "<p> By PointOfAndroid</p>" + "<p> This is some sample content.</p>" + "<p> By PointOfAndroid</p>" + "<p> This is some sample content.</p>" + "<p> By PointOfAndroid</p>" + "<p> This is some sample content.</p>" + "" + "" + "" + "Put your content here" + "" + "" + "</body></html>"; //load your html to webview myWebView.loadData(htmlDocument, "text/HTML", "UTF-8"); } //create a function to create the print job private void createWebPrintJob(WebView webView) { //create object of print manager in your device PrintManager printManager = (PrintManager) this.getSystemService(Context.PRINT_SERVICE); //create object of print adapter PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter(); //provide name to your newly generated pdf file String jobName = getString(R.string.app_name) + " Print Test"; //open print dialog printManager.print(jobName, printAdapter, new PrintAttributes.Builder().build()); } //perform click pdf creation operation on click of print button click public void printPDF(View view) { createWebPrintJob(myWebView); } }
- Create a xml activity_main.xml and update it-
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.pankaj.savepdffromwebview.MainActivity"> <!--webview--> <WebView android:id="@+id/myWebView" android:layout_width="match_parent" android:layout_height="match_parent"></WebView> <!--floating action button to print the webview content--> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_gravity="bottom|end" android:layout_margin="20dp" android:onClick="printPDF" android:src="@drawable/print" android:visibility="gone" /> </RelativeLayout>
- All the application development process with Print/Save PDF from webview has completed, Now run the app and look the screen.
- Good bye, Thanks to read this blog.