【问题标题】:Render PDF from HTML and show it从 HTML 渲染 PDF 并显示
【发布时间】:2016-10-14 01:30:52
【问题描述】:

我在移动开发方面遇到问题。

当我尝试从 HTML 呈现 PDF 时,我需要在我的移动设备上显示它。 到目前为止,我能够以 datauri 的形式呈现 pdf(使用 jsPDF),但在我的移动设备上显示它只是......好吧,我对此无话可说,只有沮丧:)

我正在处理一个简单的测试 HTML 文件、PhoneGap 和 jsPDF(带 Html2Canvas)

HTML

<div id="content">
   <div>
     <div>
        Hello world
     </div>
   </div>
</div>

<button type="button">
    Download
</button>

CSS

div {
   padding: 15px;
   background-color: lightblue;
   border: 2px solid black;
   width: 100%;
}

JS

$("button").click(function() {
    var pdf = new jsPDF('p', 'pt', 'a4');
    pdf.addHTML($("#content"), function() {
        pdf.output("datauri");
    });
});

当然,我把它包裹在我的 $(document).ready(function() { ... }); 问题是在 iOS 上它会打开该文件,但无法以某种方式保存它...... Android 也是如此,它甚至不想打开或处理它。

我也尝试过使用 PhoneGap/Cordova 的 InAppBrowser,因为我应该使用 window.open(datauri, "_system")在其中打开设备的默认浏览器。

那也没用。

我需要打开一个 .pdf 文件(从 HTML 呈现)并让用户选择将其保存在他们的移动设备上或保存它的任何替代方法(不必在设备的存储上,可以是 Dropbox 、Google 云端硬盘等)

有没有人有这方面的经验,因为我正处于坠入被称为“精神错乱”的深空的边缘

【问题讨论】:

  • 关于您在使用 InAppBrowser 在 android 设备中打开 pdf 时遇到的问题,您必须设置 window.open = cordova.InAppBrowser.open;在使用 window.open 之前。这应该可以解决您在 android 设备中打开 pdf 的问题
  • 这可能会解决您的文件保存问题 - stackoverflow.com/questions/35503051/…
  • 有空我会去看看。我确实读过一次iOS在保存文件时并不容易,因为文件管理有点被阻止?至于Android,据我所知,我无法在Android Marshmallow上的浏览器中打开dataUri,无法在以前的版本上尝试,但有一个测试它,只需要先配置它。
  • 就我的经验而言,我发现在 iOS 中编写文件相当简单。在将文件插件更新到版本 4.2.0 后修复了 Android Marshmallow 的一些权限问题
  • 我很高兴你破解了它 Jorrex。谢谢你回来。已经发布了答案。您不必再考虑称为“精神错乱”的深空 :) 干杯快乐编码

标签: javascript html cordova pdf inappbrowser


【解决方案1】:

Android web view 默认不支持 PDF 查看。所以最好的选择是使用 FileOpener2 插件打开 PDF 文件。

如果需要,您可以使用文件传输插件下载文件并使用文件插件将其存储在设备中,并使用 FileOpener2 插件在设备中打开文件(PDF)。请您看一下这个github link,我在其中提供了使用上述所有插件的工作示例代码。

【讨论】:

  • 很难理解您的代码中发生了什么,但我确实破解了它。我遇到的另一个问题是 FileOpener2。我按照 github 页面上的示例进行操作,他使用了 cordova.fileOpener2.open({...}) 并导致错误。通过查看他更新的代码,他将方法更改为cordova.fileOpener2a.open({...})。我花了一段时间才弄明白!
  • @Jorrex 我猜你是从分支路径安装了文件打开器插件,它有一个与 iOS 相关的修复程序。但我是从主路径安装的,它在我的代码示例中运行良好。看看这个 - github.com/pwlin/cordova-plugin-file-opener2/issues/4
猜你喜欢
  • 2013-07-31
  • 1970-01-01
  • 2021-05-26
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 2011-03-05
  • 2011-02-12
  • 2020-04-12
相关资源
最近更新 更多