【问题标题】:Android: Unable to Print/PDF html document from WebView (version: 86.0.4240.75)Android:无法从 WebView 打印/PDF html 文档(版本:86.0.4240.75)
【发布时间】:2021-01-25 22:22:19
【问题描述】:
// 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";
PrintAttributes.Builder builder = new PrintAttributes.Builder();
builder.setMediaSize(PrintAttributes.MediaSize.ISO_A4);
PrintJob printJob = printManager.print(jobName, printAdapter, builder.build());

错误消息:“抱歉,这不起作用。再试一次。”

随着Android System WebView(版本:86.0.4240.75)的最新更新,无法从我的html文档webview中使用createPrintDocumentAdapter生成pdf或打印。使用旧版本的Android System Webview,效果很好。

如果有人对此有解决方案,请告诉我们?

【问题讨论】:

  • 我们在我们的应用程序中也看到了同样的失败。但是,在我们的应用程序中,我们提供了一种通过应用程序打印的解决方法,其中我们将创建的 HTML 传递给 Google Chrome 进行打印并通过 Javascript 打开打印窗口。即使使用更新的 webview,谷歌浏览器也能够打印。想知道 Chrome 是如何做到的,因为打印控件看起来很相似。

标签: android pdf printing webview


【解决方案1】:

此问题已在最新版本的 Chrome/Android System WebView 应用中得到修复。 Google 已经在 Playstore 上发布了更新,我们确认此问题已得到解决。

跟踪问题here

【讨论】:

    【解决方案2】:

    我不确定它是否适用于所有人,我在移动应用上也遇到过这个问题,我所做的是:

    1. 转到设置并选择应用程序
    2. 选择应用程序并从更多选项中选择显示系统进程
    3. 搜索Android系统WebView
    4. 禁用它并再次启用它 我不知道为什么它会以某种方式降级网页视图版本,之后我发现我的打印功能现在可以工作了,你可以试试看

    【讨论】:

    • 我们做了与解决方法相同的事情。但是几天前,我们也针对同样的问题向 chromium web 团队提出了质疑。 Track it here
    【解决方案3】:

    我们的 Cordova 应用程序也遇到了同样的问题。我们为 Cordova 使用 pdf-generator 2.1.1。 Pdf 可以在应用程序启动后第一次加载,如果它被关闭并再次打开,我们会得到同样的错误。 如果我完全关闭应用程序并重新启动它,我可以再次打开它。可能是 webview 中的缓存问题或类似的问题。

    我想唯一的解决办法是 webview 的新更新,它可以解决问题。 当我尝试将 gmail 应用程序中的电子邮件另存为 pdf 时,有时也会发生该错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多