在跨平台工作的phonegap中的PDF查看器

时间:2015-04-23 09:17:06

标签: cordova pdf

我正在尝试实现PDF查看器何时应该在同一应用程序中显示来自url的PDF。我使用inappbrowser,pdf.js,MUPDF,但它们都没有工作。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

我不知道为什么你说“他们都没有工作”,因为所有这些对我来说都很好。也许您应该发布更多详细信息,以便我们为您提供帮助。

这篇文章How to Display PDF File with in the same App in phonegap与您的问题类似。也许它会帮助你。

答案 1 :(得分:0)

问题是旧的webkit版本无法正确呈现HTML5。

官方PDF.js有一些功能不适用于Android 2.3.4和Iphone 6.1(旧的webkit版本)等设备。

如果您仍需要帮助,可以查看我的自定义PDF.js.我做了我的更改以适应Android SDK 10及更高版本。

https://github.com/camilacanhete/PDFJSPhonegap

你可以从这样的HTML开始:

<div id="wrapper">
   <canvas id="the-canvas"></canvas>
<div>

这是你的Javascript:

var pdfDoc = null;
var canvas = $('#the-canvas')[0];
var ctx = canvas.getContext('2d');
var pageRendering = false;
function renderCurrentPage(num) {
    pageRendering = true;

    // Using promise to fetch the page
    pdfDoc.getPage(num).then(function(page) {
        var viewpt = page.getViewport(scale);

        canvas.height = viewpt.height;
        canvas.width = viewpt.width;

        // Render PDF page into canvas context
        var renderContext = {
            canvasContext: ctx,
            viewport: viewpt
        }

        var renderTask = page.render(renderContext);

        // Wait for rendering to finish
        renderTask.promise.then(function () {
            pageRendering = false;
        });
    });
}

PDFJS.getDocument("your-document.pdf").then(function (pdfDoc_) {

   pdfDoc = pdfDoc_;

   // Initial/first page rendering
   renderCurrentPage(pageNum);
});