我在 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 测试该应用程序。我可以在其中打印任何其他内容。