PDFObject库:捕获错误 - 或者如何知道我的PDFObject何时为空

时间:2014-11-12 15:34:25

标签: javascript angularjs pdfobject

我有一个问题,每个人都使用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并了解它是满还是空? 感谢您的关注和抱歉我的英语不好, 伊戈尔

1 个答案:

答案 0 :(得分:1)

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

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

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

PDFObject旨在提供后备,以防浏览器不支持PDF嵌入。但是,它无法验证PDF URL是否合法 - 所有PDFObject都会在您的标记中创建<object>src指向您的网址。它无法验证URL是指向PDF还是任何其他文件类型。如果您调用PDFObject并且浏览器支持PDF嵌入,那么无论您的网址是否合法,都会得到<object>