0

我对每个使用 PDFObject 库的人有疑问。( http://pdfobject.com/ ) (我在前端使用 angularJS)

//This is the html code:
    <div id="boxPdf"></div>

//Here the code in the controller
    var pdfUrl = '/myUrl/myRestService/'+idDocument;
            var myPDF = new PDFObject({
                                    url: pdfUrl,
                                    pdfOpenParams: {
                                        width: "100%",
                                        height: "1500"
                                    },
                                    id: 'myIdObject'
                                });
            myPDF.embed('boxPdf');

该代码有效,但令人讨厌的是,如果我从后端发送一个空的 pdf,这个库无论如何都会显示灰色框。我想抓住这个例外,例如不显示灰色框。我如何查看 myPDF 并了解它是满的还是空的?感谢您的关注,对不起我的英语不好,伊戈尔

4

1 回答 1

1

抱歉,无法使用 JavaScript 来确定 PDF 是否已加载。

使用 Flash,您可以确定是否加载了 SWF,因为 Flash Player 提供了一个包含 PercentLoaded 属性的 API。这使开发人员可以查询 SWF 的加载状态。

PDF 没有统一的“播放器”,它们通常由浏览器的默认 PDF 渲染引擎(通常是专有的)、Adobe Reader 或 FoxIt Reader 等 Adob​​e 竞争对手加载。这些 PDF 渲染系统都具有完全不同的功能。他们没有对任何特定的功能集或 JavaScript API 进行标准化,因此没有标准的方法来检查 PDF 是否已加载。

PDFObject 旨在在浏览器不支持 PDF 嵌入的情况下提供回退。但是,它无法验证 PDF URL 是否合法——PDFObject 所做的只是<object>在您的标记中创建一个src指向您的 URL 的链接。它无法验证 URL 是否指向 PDF 或任何其他文件类型。如果您调用 PDFObject 并且浏览器支持 PDF 嵌入,您将获得<object>您的 URL 是否合法。

于 2014-11-12T17:46:27.023 回答