0

我在 webview 中加载了一个 html 和一个用于开始打印的 ActionBar 菜单按钮。

我单击菜单按钮,我得到打印机对话框并打印。但是没有任何反应我正在使用以下内容打印 html 文档

public void ShowHtml(){
    // Enable Javascript

        WebSettings webSettings = statshtml.getSettings();
        webSettings.setJavaScriptEnabled(true);
        statshtml.getSettings().setLoadWithOverviewMode(true);
        statshtml.loadData(str, "text/html; charset=utf-8", "UTF-8");
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.action_print:

            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
            {
               createWebPrintJob(statshtml);
               return true;
            }


        default:
            return super.onOptionsItemSelected(item);
    }
}

@TargetApi(Build.VERSION_CODES.KITKAT)
private void createWebPrintJob(WebView webView) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
        return;

    // Get a PrintManager instance
    PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);

    // Get a print adapter instance
    PrintDocumentAdapter printAdapter = webView.createPrintDocumentAdapter();

    // Create a print job with name and adapter instance
    String jobName = getString(R.string.app_name) + " Document";
    printManager.print(jobName, printAdapter, new PrintAttributes.Builder().build());

}

我还需要什么来打印我的html?我正在使用真实设备 Galaxy Tab 3 和 Android 版本 4.4.2 测试该应用程序。我可以在其中打印任何其他内容。

4

1 回答 1

0
  statshtml.loadData(str, "text/html; charset=utf-8", "UTF-8");

改成

 statshtml.loadData(str, "text/html", null);
于 2016-09-28T09:29:14.480 回答