7

我想将无线打印添加到我的面向 Galaxy 平板电脑的 android 2.2 应用程序中。我看到互联网浏览器有一个打印选项,所以我假设必须存在一个活动挂钩,我希望有人已经弄清楚了这一点。我发现了使用 Mobile Dynamix 的 PrinterShare 应用程序的可能性,但我的偏好是不需要第 3 方。

这是他们提供的代码示例,仅供参考。

Intent i = new Intent(Intent.ACTION_VIEW);
i.setPackage("com.dynamixsoftware.printershare");
i.setDataAndType(data_uri, data_type);
startActivity(i);

在哪里:

data_uri - 要打印的对象的 Uri,例如“file:///sdcard/something.pdf”或“content://something”

data_type - Mime 类型。支持以下 mime 类型:“application/pdf”“text/html”“text/plain”“image/png”“image/jpeg”

4

2 回答 2

8

Android 尚不支持打印。您必须使用第 3 方解决方案,例如 Mobile Dynamix、HP iPrint for AndroidSend2Printer

此处描述了意图:

http://www.openintents.org/en/node/735

http://www.openintents.org/en/node/278

于 2011-01-02T20:13:51.563 回答
0

在PrintManager 服务中使用 build

private void doWebViewPrint() {
        mWebView = new WebView(PrintActivity.this);
        WebSettings settings = mWebView.getSettings();
        settings.setJavaScriptEnabled(true);
        mWebView.setWebViewClient(new WebViewClient() {

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                return false;
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                mProgressBar.setVisibility(View.GONE);
                createWebPrintJob(view);
                mWebView = null;
            }
        });
        mWebView.loadUrl(urlToPrint);
    }

    protected void createWebPrintJob(WebView webView) {
        PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
        @SuppressWarnings("deprecation")
        PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter();
        mPrintJob = printManager.print(docName, printAdapter,
                new PrintAttributes.Builder().build());
    }

你需要设置

urlToPrint = "whatUrlToPrint"
docName = "anyDocumentName";
于 2018-03-07T06:40:01.910 回答