Невозможно распечатать локальный 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);