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.






