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.
Thanks a lot!
ReplyDeletehow to show image also in webview and pdf as well..
ReplyDeletein my project i want to print the system genrated bills Can u please telll how to print that bills
ReplyDeleteThank you very much
ReplyDeletethank u so much pankaj gurjar
ReplyDeletethank you so much.
ReplyDeleteThank for this tutorial
ReplyDeleteIf any user want learn more Microsoft Excel Hindi Guide click here
sd
Deletethanks bro
ReplyDeleteHi, It is saving file as default.pdf ... how can we change the name ... pls suggest
ReplyDeleteGracias Hermano...Buen aporte
ReplyDelete