zoukankan      html  css  js  c++  java
  • 网页上预览pdf文件的几种方案

    网页上查看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 {
     2 
     3 String command = t + "pdf2swf.exe  -i " + sourceFile + " -o "//t是swftools软件的安装的根目录  sourceFile 目标文件路径   destFile目的文件路径
     4 + destFile;
     5 Process pro = Runtime.getRuntime().exec(command);
     6 
     7 
     8 BufferedReader bufferedReader = new BufferedReader(
     9 new InputStreamReader(pro.getInputStream()));
    10 while (bufferedReader.readLine() != null) {
    11 
    12 
    13 }
    14 pro.waitFor();
    15 return pro.exitValue();
    16 } catch (InterruptedException e) {
    17 e.printStackTrace();
    18 } catch (IOException e1) {
    19 e1.printStackTrace();
    20 }

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

    第五种使用pdfobject.js

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

     1 <script type="text/javascript" src="pdfobject.js"></script>
     2 
     3     <script type="text/javascript">
     4 
     5      window.onload = function (){
     6 
     7        var success = new PDFObject({ url: "sample.pdf" }).embed();
     8 
     9             };
    10  </script>
  • 相关阅读:
    安卓渗透测试环境搭建笔记
    spring boot Thymeleaf 模板注入 测试实践
    分析activity安全检测实践
    xposed的使用实践
    android组件安全测试实践
    Apache Dubbo Provider默认反序列漏洞复现实践(CVE-2020-1948)
    java设计模式--策略模式
    spring 发送email
    简单介绍
    有意义的礼物——英语小短文
  • 原文地址:https://www.cnblogs.com/weixupeng/p/8809714.html
Copyright © 2011-2022 走看看