在一些业务需求之中,例如打开页面,就可以让用户直接读pdf内容,如何实现呢? 可以借助html iframe标签来实现:
<div>
<iframe src="http://192.1.2.151:8082/cmas/demo.pdf" width="100%" height="900px" >
</iframe>
</div>
其中src 需要填入url地址,这个地址只要后端处理返回pdf流即可,下面使用node express后端中间件实现
app.get('/cmas/demo.pdf',(req,res)=>{
var content=fs.readFileSync('./dist/demo.pdf',"binary")
res.setHeader("Content-Type" ,"application/pdf")
res.writeHead(200, "Ok");
res.write(content,"binary"); //格式必须为 binary,否则会出错
res.end();
})
后端返回的Content-Type 设置为 "application/pdf",读文件时类型为"binary"即可,最后返回内容
使用这种方式好处在于不需要借助任何插件以及兼容性好,在IE10以上以及谷歌火狐上测试都没有问题,限制在于pdf文件存放在后端,需要由后端提供内容。