API печати Android на Galaxy Tab - PullRequest
       29

API печати Android на Galaxy Tab

7 голосов
/ 02 января 2011

Я хотел бы добавить беспроводную печать в мое приложение для Android 2.2, предназначенное для планшета Galaxy. Я вижу, что в интернет-браузере есть опция печати, поэтому я предполагаю, что хук активности должен существовать, и я надеялся, что кто-то понял это. Я нашел возможность использовать приложение PrinterShare от Mobile Dynamix, но я бы предпочел не требовать участия третьей стороны.

Вот пример кода, который они предоставляют, просто для справки.

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: // что-то»

data_type - тип MIME. Поддерживаются следующие типы пантомимы: "Применение / PDF" "Текст / html" «Текст / обычный» "Изображение / PNG" "Изображение / JPEG"

Ответы [ 2 ]

8 голосов
/ 02 января 2011

Печать еще не поддерживается на Android. Вы должны использовать стороннее решение, такое как Mobile Dynamix, HP iPrint для Android или Send2Printer .

Содержание описано здесь:

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

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

0 голосов
/ 07 марта 2018

Использовать встроенный Сервис PrintManager

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";
...