Android 4.4 onwards WebView now has the ability to print HTML documents. Please follow this -
public class MainActivity extends AppCompatActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView webView = new WebView(this);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyJavascriptInterface(this, webView), "Android");
webView.loadUrl("Odoo receipt url");
setContentView(webView);
// Keep a reference to WebView object until you pass the PrintDocumentAdapter
// to the PrintManager
mWebView = webView;
}
public class MyJavascriptInterface {
Context context;
WebView view;
public MyJavascriptInterface(Context context, WebView view) {
this.context = context;
this.view = view;
}
@android.webkit.JavascriptInterface
public void doPrint() {
createWebPrintJob(view);
}
private void createWebPrintJob(WebView webView) {
// Get a PrintManager instance
PrintManager printManager = (PrintManager) getActivity()
.getSystemService(Context.PRINT_SERVICE);
String jobName = getString(R.string.app_name) + " Document";
// Get a print adapter instance
PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter(jobName);
// Create a print job with name and adapter instance
PrintJob printJob = printManager.print(jobName, printAdapter,
new PrintAttributes.Builder().build());
// Save the job object for later status checking
mPrintJobs.add(printJob);
}
}
}
and then call from the HTML inside the WebView as
<input type="button" onClick="doWebViewPrint()" />
<script type="text/javascript">
function doWebViewPrint() {
Android.doPrint();
}
</script>
For more info, please refer to https://developer.android.com/training/printing/html-docs