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