DINESHKUMAR DEVARASU
- Forum posts: 2
Jul 30, 2017, 1:58:35 PM via Website
Jul 30, 2017 1:58:35 PM via Website
In my android application, I have an option to print the invoices for the delivery order. I am generating the Invoice content as html and sending it to android print manager as a string to print it. It is getting opened in print dialog and I am able to select a printer for printing. But after the print, my application is getting closed. But I want to redirect to the same page after the print.
Also I want to set the number of copies to 2 while printing programmatically from the android print manager. this is my source code.
public void printContent(View view) {
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) {
createWebPrintJob(view);
mWebView = null;
}
});
webView.loadDataWithBaseURL(null, html,
"text/HTML", "UTF-8", null);
mWebView = webView;
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public void createWebPrintJob(WebView webView) {
PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter();
String jobName = getString(R.string.app_name) + " Document";
PrintAttributes.Builder builder = new PrintAttributes.Builder();
builder.setMediaSize(PrintAttributes.MediaSize.ISO_A5);
android.print.PrintJob printJob = printManager.print(jobName, printAdapter,
new PrintAttributes.Builder().build());
if(printJob.isCompleted()){
startActivity(new Intent(Delivery_Order_Print.this, Delivery_Order_Activity.class));
}
else if(printJob.isFailed()){
Toast.makeText(getApplicationContext(),"Print Failed", Toast.LENGTH_LONG).show();
}
}
Recommended editorial content
With your consent, external content is loaded here.
By clicking on the button above, you agree that external content may be displayed to you. Personal data may be transmitted to third-party providers in the process. You can find more information about this in our Privacy Policy.