首页 > 解决方案 > How do you set Android PrintManager to automatically print 2 copies?

问题描述

I created a function that prints documents but the printer screen on the Android device is always set to just 1 copy and I would like to set it to print 2 copies.

mainWebView.addJavascriptInterface(new javaScriptInterface(this), "AndroidApp");


public class javaScriptInterface {
        public javaScriptInterface(Context context) {
        }
        @JavascriptInterface
        public void print(final String data) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    printTheView(data);
                }
            });
        }
    }

    private void printTheView(String printData) {
        printWebView = new WebView(this);
        printWebView.setWebViewClient(new WebViewClient() {
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }
            @Override
            public void onPageFinished(WebView view, String url) {
                createWebPagePrint(view);
                super.onPageFinished(view, url);
            }
        });
        printWebView.loadDataWithBaseURL(null, printData, "text/plain", "UTF-8", null);
    }
    public void createWebPagePrint(WebView webView) {
        PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
        PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter("Proof Of Delivery");
        String jobName = "Proof Of Delivery";
        PrintAttributes.Builder builder = new PrintAttributes.Builder();
        builder.setMediaSize(PrintAttributes.MediaSize.NA_LETTER);
        PrintJob printJob = printManager.print(jobName, printAdapter, builder.build());
    }

标签: javascriptjavaandroid

解决方案


推荐阅读