Невозможно распечатать локальный HTML-файл из веб-просмотра в Android, даже если я проверяю версию SDK

У меня есть 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. В котором я могу напечатать что-нибудь еще.

1 ответ

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

изменить на

 statshtml.loadData(str, "text/html", null);
Другие вопросы по тегам