【问题标题】:Android Printing API on Galaxy TabGalaxy Tab 上的 Android 打印 API
【发布时间】:2011-06-02 13:54:17
【问题描述】:

我想在我的 android 2.2 应用程序中添加无线打印功能,该应用程序针对 Galaxy 平板电脑。我看到互联网浏览器有一个打印选项,所以我假设必须存在一个活动挂钩,我希望有人已经弄清楚了这一点。我发现可以使用 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 类型: “申请/pdf” “文本/html” “文本/纯文本” “图像/PNG” “图像/JPEG”

【问题讨论】:

    标签: android printing tablet galaxy


    【解决方案1】:

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

    这里描述了意图:

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

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

    【讨论】:

    • KitKat 4.4 终于有了一个 API :) developer.android.com/about/versions/android-4.4.html#Printing
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多