pdfobject.js和pdf.js的详解
最近的工作中遇到了很多坑,主要是因为最近做的报表,需要展示pdf文件,遇到很多问题,在这里我来一一描述下。
以下是大概遇到的问题描述:
- 使用的h5的embed标签展示pdf文件。ie那货却必须要装插件才能预览。简直恶心
- 经理让去掉打印和下载按钮,就是要自己控制浏览器的显示
第一个问题的解决
当时再网上查询了这种资料,决定将embed换成 PDFObject.js
然后就在github上下载pdfobject.js的源码。https://github.com/pipwerks/PDFObject ,将核心js pdfobject.js 引入到自己项目中。
<script type="text/javascript">
window.onload = function (){
var myPDF = new PDFObject({ url: "sample.pdf" }).embed();
};
</script>
这个方法是拷过来的 其实我使用中这个是不行的。
也可以查看官网中的example https://pdfobject.com/#examples 选择嵌入页面就查看
Embed two PDFs on one HTML page
embed中可以添加参数。
这样就成功的引入了PDFObject.js并使用它显示了pdf。
(记住:对象PDFObject中的O是大写的)
使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。
第二个问题的解决
换成这个以后还是不能满足去掉打印和下载按钮的需求,所以接着换成了pdf.js
pdf.js的源码这里下载:http://mozilla.github.io/pdf.js/getting_started/#download
然后将整个项目引入你自己的项目中,中间试过action请求返回viewer.html页面,但是没走通,主要是因为他的file参数没法传递。
我在代码中添加了 iframe标签 用来预览pdf,这时候又因为手误,造成了不必要的工作量, iframe 不能使用/关闭,必须是准确关闭。
然后就将对应的页面展示信息传递给iframe的src参数就可以了。

例如这样 首相要保证 你的src路径是正确的,你自己可以访问。这样就没啥问题了 。
然后在viewer.html找到这两个按钮 设置disable为none即可。
智能推荐
PDF.js的简单使用
1.后端返回文件流,可在浏览器访问显示pdf的请求路径。 例如:http://localhost:8081/showFile?path=C:/Users/lhl/Desktop/files/pdf/b3c39656ea744095bd9eb52d48c51803.pdf这个可以在浏览器显示pdf.... 直接的话是调用的window的p...
pdf.js的使用方法。
首先下载pdf.js。 下载地址为:pdf.js 下载完成后将解压文件解压到一个新文件夹,名字随便命名就好。我这里命名为PDF.js 将你的解压文件放到你的网站根目录,并能够成功访问这个页面即可 你要打印的pdf文件全部路径就是这个路径,这里以我的文件路径作为参考:http://localhost:8081/zkimp/PDF.js/web/viewer.html?file=http://loca...
PDF.JS的基本使用
网上下载的pdf.js的目录结构 使用pdf.js浏览pdf 只需要修改viewer.js文件的pdf路径即可 var DEFAULT_URL = ‘xx.pdf’;(指定xx.pdf为默认打开文件) 但是我们在实际的使用过程中,是需要通过传值的方式灵活的选择pdf进行预览 首先,把viewer.js的 DEFAULT_URL 改成空,修改为 http://localhos...
PDF.js预览文件
网上找到很多前端实现文件预览方法,但都无法解决我的问题,产品需求中将文件上传到腾讯云的对象存储,返回一个URL,这个URL无法在网页中预览,浏览器将这个URL直接本地下载文件(下载文件下面说),最后只能用PDF.js,这是一个开源的js库,直接将PDF文件渲染成canvas,PDF.js框架的魅力所在,为其为HTML5实现的,无需任何本地支持,而且对浏览器的兼容性也是比较好,要求只有一个:浏览器支...
猜你喜欢
Solr之集群安装-yellowcong
基于Zookeeper进行Solr集群搭建,前提是需要将Zookeeper集群搭建。然后配置Solr服务,其中注意导入solr的配置文件的时候,zkcli.sh脚本是solr的,而不是zookeeper自带的脚本,搭建的时候,先配置好一个solr的环境后,然后复制粘贴整个目录,修改配置文件即可,不要一个一个节点的配置。 搭建前提 solr的集群是依赖于zookeeper的,所以前提必须是将zook...
SPRINGCLOUD五大组件及相关注解整理
一、服务注册&发现——Netflix Eureka a.微服务调用过程 1.注册中心:提供微服务的注册与发现。 说到分布式系统这里不得不提一下“CAP原则“:CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原...
报错 - The port may already be in use or the connector may be misconfigured.
端口被占用,如何解决? ① 查找占用端口对应的PID(进程号) ② 如果netstat指令不是内部命令,说明没有配置环境变量,将C:\Windows\System32配置进环境变量: ③ 查看是哪个进程或程序占用了端口: ④ 打开任务管理器,找到pid=11884的进程将其结束:...
解决pycharm控制台\xe8\xbe\x83\xe5\xb0\x8f\xe5\x80\xbc乱码问题
解决pycharm控制台输出时\xe8\xbe\x83\xe5\xb0\x8f\xe5\x80\xbc 前言 pycharm是常用的python开发工具,我是一个刚开始用的小白,在使用过程中碰见了一个问题,搜索了很多的解决方法,但是都解决不了我的问题,因此决定写一篇记录一下,有需要的小伙伴也可以做以参考。 问题描述及解决办法 问题描述 在控制台输出了一段有数字又有汉字的序列,显示汉字为乱码 解决办...
