从 HTML 渲染 PDF 并显示

Render PDF from HTML and show it

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

因为我正在尝试从 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 Drive 等)

有没有人有这方面的经验,因为我正处于坠入名为 "insanity"

的深空的边缘

Android网页浏览默认不支持PDF浏览。所以最好的选择是使用 FileOpener2 插件打开 PDF 文件。

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