网页上查看pdf的方案:

  • 1.使用adobe reader的插件
  • 2.使用在线office控件
  • 3.使用火狐开源项目pdf.js(浏览器需支持html5)
  • 4.将pdf转换为swf文件
  • 5.使用pdfobject.js

下面我来讲一讲各种方案的实现,第一种使用adobe reader 插件就是需要用户安装adobe reader软件,ActiveX控件。

window.onload = isAcrobatPluginInstall;
function isAcrobatPluginInstall() {
var flag = false;
// 如果是firefox浏览器
if (navigator.plugins && navigator.plugins.length) {
for (x = 0; x < navigator.plugins.length; x++) { if (navigator.plugins[x].name == 'Adobe Acrobat')
flag = true;
return;
}
}
// 下面代码都是处理IE浏览器的情况
else
if (window.ActiveXObject) {
for (x = 2; x < 10; x++) {
try {
oAcro = eval("new ActiveXObject('PDF.PdfCtrl." + x + "');");
if (oAcro) {
flag = true;
}
} catch (e) {
flag = false;
}
}
try {
oAcro4 = new ActiveXObject('PDF.PdfCtrl.1');
if (oAcro4)
flag = true;
} catch (e) {
flag = false;
}
try {
oAcro7 = new ActiveXObject('AcroPDF.PDF.1');
if (oAcro7)
flag = true;
} catch (e) {
flag = false;
}
}
if (flag) {
return true;
} else {
alert("对不起,您还没有安装PDF阅读器软件呢,为了方便预览PDF文档,请选择安装!");
//location = 'http://ardownload.adobe.com/pub/adobe/reader/win/9.x/9.3/chs/AdbeRdr930_zh_CN.exe';
document.getElementById("IfNoAcrobat").style.display = "block";
document.getElementById("showdiv").style.display = "none";
}
return flag;
}
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="990" height="600" border="0" top="-10" name="pdf">
<param name="toolbar" value="false">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="文件路径">
<!-- 这里重复设置属性值,主要是因为firefox、Chrome支持embed,而不支持param -->
<embed src="文件路径" quality="high" bgcolor="#ffffff" width="990" height="700" align="center" type="application/pdf" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

第二种使用在线的office控件

我使用的是一款叫做PageOffice的产品,功能很强大,不过好像要收费,有试用版的!官方文档很详细,自己搜索吧!

第三种使用pdf.js预览

这个也比较简单,去github上下载开源项目,打开里面的example.html直接将面的路径替换成你自己的就行了,里面有些文件可以删除!

第四种将pdf文件转换成swf文件,即使用flash查看

大致思路是安装swftools软件,利用java代码启动进程将pdf转换成swf,然后将路径传回前台即可!

简单贴一下代码

 1  try {

 String command = t + "pdf2swf.exe  -i " + sourceFile + " -o "//t是swftools软件的安装的根目录  sourceFile 目标文件路径   destFile目的文件路径
+ destFile;
Process pro = Runtime.getRuntime().exec(command); BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(pro.getInputStream()));
while (bufferedReader.readLine() != null) { }
pro.waitFor();
return pro.exitValue();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}

有个问题可能需要注意一下如果使用的是tomcat服务器   tomcat文件夹是不允许其他软件随便写的,建议先生成在其他文件夹下  然后java代码移动到项目路径下

第五种使用pdfobject.js

这个也是github上的开源项目,可以直接去下载,使用起来也是相当简单

 <script type="text/javascript" src="pdfobject.js"></script>

     <script type="text/javascript">

      window.onload = function (){

        var success = new PDFObject({ url: "sample.pdf" }).embed();

             };
</script>

网页上预览pdf文件的几种方案的更多相关文章

  1. pdfjs预览pdf文件的两种方式(可复制)

    1.以图片形式进行展示: version:采用1.x版本,2.0版本会有字体显示不完整的问题:参考 这里使用1.8.170 <script th:src="@{/pdfjs/build ...

  2. 文档控件NTKO OFFICE 详细使用说明之预览PDF文件(禁止打印、下载、另存为、防抓包下载)

    1.在线预览PDF文件(禁止打印.下载.复制.另存为) (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将ww ...

  3. fis3+vue+pdf.js制作预览PDF文件或其他

    人生第一篇博客,的确有点紧张,但有些许兴奋,因为这对于我来说应该是一个好的开始,以此励志在技术的道路上越走越远. 看过了多多少少的技术博客,给自己带来了很多技术上的收获,也因此在想什么时候自己也可以赠 ...

  4. 用pdf.js实现在移动端在线预览pdf文件

    用pdf.js实现在移动端在线预览pdf文件1.下载pdf.js    官网地址:https://mozilla.github.io/pdf.js/ 2.配置    下载下来的文件包,就是一个demo ...

  5. 【转】Python编程: 多个PDF文件合并以及网页上自动下载PDF文件

    1. 多个PDF文件合并1.1 需求描述有时候,我们下载了多个PDF文件, 但希望能把它们合并成一个PDF文件.例如:你下载的数个PDF文件资料或者电子发票,你可以使用python程序合并成一个PDF ...

  6. 使用pdfjs插件在线预览PDF文件

    前言 本文介绍在html中使用 pdfjs插件在线预览PDF文件的方法. 实现步骤 下载 pdfjs 并引入项目中 到PDFJS官网 http://mozilla.github.io/pdf.js/g ...

  7. html页面预览pdf文件使用插件pdfh5.js

    html预览pdf文件需要依赖pdf.js 移动端适配需要pdfh5.js 记录移动端适配pdfh5.js的用发 在线预览: https://www.gjtool.cn/pdfh5/pdf.html? ...

  8. 前端使用pdf.js预览pdf文件

    现在的浏览器基本都支持直接把pdf文件拖到浏览器就可以打开了,不用安装额外的插件.但是不同的浏览器显示的页面不一样.如果我们想在网页上统一预览pdf怎样实现呢? Mozilla开源了一个插件pdf.j ...

  9. 前端使用pdf.js预览pdf文件,超级简单

    现在的浏览器基本都支持直接把pdf文件拖到浏览器就可以打开了,不用安装额外的插件.但是不同的浏览器显示的页面不一样.如果我们想在网页上统一预览pdf怎样实现呢? Mozilla开源了一个插件pdf.j ...

随机推荐

  1. 如何配置SQL Server数据库远程连接

    本地数据库(SQL Server 2012或以上) 连接外网服务器的数据库,外网的服务器端需要做如下配置: 1.首先是要打开 数据的配置管理工具 2.配置相关的客户端协议,开启TCP/IP 3.数据库 ...

  2. crontab定时执行shell脚本

    步骤一    首先我们先看一下是否安装了crontab.一般情况下linux系统会自带crontab及crond.如果没有安装,请使用以下指令安装:yum install vixie-cron     ...

  3. zabbix服务的布置(脚本)

    一,服务端配置 #!/bin/bash#clsn #设置解析 注意:网络条件较好时,可以不用自建yum源# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.al ...

  4. Thiago2(TPO AI.ROSTO):集成式AI换脸软件(Autodesk Flame)

    如标题一样,Thiago2 是一款集成式AI换脸软件(TPO AI.ROSTO),需要与Autodesk Flame结合使用,从demo来看完成度还是很高的,算是一种完全GUI版的DeepFaceLa ...

  5. Spring的新注解

    1 @Configuration 1.1 作用 用于指定当前类是一个Spring的配置类,当创建容器的时候会从该类上加载注解.获取容器的时候需要使用AnnotationApplicationConte ...

  6. @ResponseStatus注解作用

    @ResponseStatus注解有两种用法,一种是加载自定义异常类上,一种是加在目标方法中 这里我们说一下加在目标方法上的这种情况,注解中有两个参数,value属性设置异常的状态码,reaseon是 ...

  7. 谈谈对AQS的一些理解

    AQS的概念 AQS全称AbstractQueuedSynchronizer,是java并发包中的核心类,诸如ReentrantLock,CountDownLatch等工具内部都使用了AQS去维护锁的 ...

  8. /etc/sysconfig/network-scripts/ifcfg-ens33

    因为最近重新搭建CDH集群: DEVICE     接口名(设备,网卡) USERCTL    [yes|no](非root用户是否可以控制该设备) BOOTPROTO  IP的配置方法[none|s ...

  9. 修改vue-cli脚手架顶部图标

    1. 将ico图标放到static目录下 2. 在 build/webpack.dev.conf.js 文件修改   new HtmlWebpackPlugin({ ... favicon: './s ...

  10. 6423. 【NOIP2019模拟11.11】画

    题目描述 Description Input Output Sample Input 3 2 3 3 6 5 1 2 1 3 Sample Output 15 Data Constraint 题解 迫 ...