问题描述:

  现有服务器端目录下的PDF文件,数据库中存放的是此文件的文件名、大小、描述等信息。要实现的功能是:客户端能对此文件进行查看预览。

分析实现图示:

  

实现过程:

    分析:由于pdf文件格式不能直接被一般的浏览器直接预览,如果要实现在线预览,需要插件的支持,而大多数插件是需要客户端安装后才能支持在线预览的。这中方式对于客户来说相对繁琐且,也不是我想要的结果。如果要实现在线预览,而且不需要插件的支持,PDF就能直接在浏览器上查看,经过多方查询,决定先把PDF文件转成浏览器普遍支持的Flash格式(.swf),以此间接实现PDF文件的在线预览,再者为了Flash文件的显示美观,需要一个文档的组件FlexPaper来包裹。

过程实现:

  参照博文:http://www.cnblogs.com/qinpeifeng107/archive/2011/08/29/2158879.html。

以下是我对此的几点补充:

  1.上博文中的前端HTML中,如果你需要其他界面传入转入文件名称到此显示界面?

    我的方法是:url = “地址(显示文件界面)?变量=”+“值”,

    显示界面接收值并交给文档的组件方法:

    

    <script>
      String.prototype.getQuery = function (name) {
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
      var r = this.substr(this.indexOf("\?") + 1).match(reg);
      if (r != null) return unescape(r[2]);
      return null;
      }

      var 接收变量= window.location.toString().getQuery('传入变量'); //获取swfName的值

    </script>

    再者:把接收变量交给文档的组件(即:将博文HTML中SwfFile: escape(“”)括号里,改为接收变量)。

  2.在博文的“3. Asp.net 调用pdf2swf.exe把PDF转换为SWF的用法” ,我在进入方法后新增了两个判断,判断要转换的文件是否存在,和转换后的文件是否有重名文件。如有需要可参阅:

  private static bool ConvertCmd(string fileName)
  {
    bool isSuccess = false;
    string cmdStr = "SWFTools\\pdf2swf.exe";
    //string savePath = HttpContext.Current.Server.MapPath("~/TestSWF/");
    // @"""" 相当于一个双引号,之所以要加@"""" 就是为了防止要转换的过程中,文件夹名字带有空格,导致失败
    string sourcePath =GetPath("fileinfo\\")+fileName+".pdf";
    string targetPath =GetPath("pages\\annexView\\annexViewUnit\\showPDF\\")+fileName+".swf";
    //如果PDF不存在
    if (!File.Exists(sourcePath))
    {
      return false;
    }

    #region 清理之前的记录
    if (File.Exists(targetPath))
    {
      //已经存在,删除
      File.Delete(targetPath);
    }
    using (Process p = new Process())
    {
      string argsStr = " -t " + sourcePath + " -s flashversion=9 -o " + targetPath;
      //调用新进程 进行转换
      ProcessStartInfo psi = new ProcessStartInfo(GetPath(cmdStr), argsStr);
      p.StartInfo = psi;
      p.Start();
      p.WaitForExit();
    }
    #endregion

  }

转载于:https://www.cnblogs.com/stray-dog/p/4308426.html

.NET实现对服务器端目录下PDF文件的预览相关推荐

  1. Nginx服务下的pdf文件无法预览问题配置分析

    问题很简单,访问站点下的一个pdf在浏览器中无法预览,提示是404. 默认情况应该是在浏览器中输入url,pdf文件可以预览内容. 临时搭建了一个环境测试一下. 在站点根目录下,创建x和x2022两个 ...

  2. 安卓开发使用mupdf实现pdf文件的预览

    开发环境:android studio3.0.1 由于项目的需要,要在安卓端实现pdf文件的预览功能,使用到了mupdf这个工具,记录下移植的过程. 首先我用的是已经编译好的so库文件,在github ...

  3. html5 pdf.js 使用方法,PDF 文件在线预览(pdf.js 使用教程)

    因项目开发需要在线展示 PDF文件,为解决 PDF文件 在浏览器打开后电子签章.电子签名等展示不全且部分浏览器兼容问题特利用pdf.js解决该问题: pdf.js框架为HTML5,无需任何本地支持,兼 ...

  4. vue-pdf实现pdf文件在线预览

    1. 前言 PDF文件在线预览的功能相信大家都是有遇到过的, 但在我平时的项目中, 公司提供了相应的插件, 但是在h5等其他项目中, 我们还是只能靠自己呀! 今天就大概说一下 vue-pdf 这个组件 ...

  5. pdfjs-dist 实现pdf文件在线预览

    pdfjs-dist 实现pdf文件在线预览 实现效果 实现过程 (1)安装pdfjs-dist (2)代码部分 (3)原理 项目要求实现pdf文件在线预览,并且pdf预览通过上下页滚动pdf,且兼容 ...

  6. vue 实现pdf文件在线预览

    PDF文件在线预览的功能相信大家都是有遇到过的,这边有两种实现方法,大家可以借鉴参考下 第一种,使用vue-pdf 安装 npm install --save vue-pdf 页面代码 <tem ...

  7. 网页中动态嵌入PDF文件/在线预览PDF内容

    网页中动态嵌入PDF文件/在线预览PDF内容https://www.cnblogs.com/xgyy/p/6119459.html #网页中动态嵌入PDF文件/在线预览PDF内容# 摘要:在web开发 ...

  8. java flexpaper_java web word文件 pdf文件在线预览源码(flexpaper)

    [实例简介]java web word文件 pdf文件在线预览源码 经过测试 [实例截图] [核心代码] BrowsenOnline html, body{ height:100%; } body { ...

  9. pdf文件无法预览,或者预览出现空白页

    pdf文件无法预览? 检查一下new Blob第一个参数是不是文件流,是一个数组,如下: new Blob([response], { type: "application/pdf;char ...

最新文章

  1. jQuery框架风云榜案例
  2. JPA的多表复杂查询
  3. 从外到内提高SQL Server数据库性能
  4. last modified php,lastModified属性_用法示例-javascript词典-js编程词典-php中文网
  5. 贝叶斯信念网络和马尔科夫链有什么区别
  6. ikun 潜入?疑似 B 站后台源码泄露
  7. 《企业软件交付:敏捷与高效管理精要》——2.2 MyCo公司和MyProj企业软件交付项目...
  8. Hillstone设备管理-许可证安装
  9. c语言技术课第一次作业
  10. SIFT算法详解(附有完整代码)
  11. Android网络对讲机的实现
  12. html ajax 图片上传,Ajax 上传图片并预览的简单实现
  13. 使用AD13设计PCB的技巧总结
  14. android+表情符号乱码,Android Emoji表情截取不完整,乱码
  15. Transformer课程 第7课Gavin BERT文本分类
  16. VLAN 与 WLAN 的区别
  17. 计算机其它离的360云盘,win7系统将360云盘文件快速转移到百度云盘的方法
  18. 小学班级计算机社团活动章程,小学腾飞电脑小社团活动章程.doc
  19. BZOJ 1050 [HAOI2006]旅行comf(并查集)
  20. 网站运维:git工具(10):GitLab安装和使用

热门文章

  1. 利用JDK1.5的工具对远程的Java应用程序进行监测(摘录)
  2. LeetCode(121)——买卖股票的最佳时机(JavaScript)
  3. 关于数据属性特性configurable设置为false后的限制
  4. JavaScript学习(六十六)—字符串对象常用的属性和方法总结以及数组元素的排序问题
  5. 实体店如何做好门店引流
  6. 浏览网页时,手机显示手机被恶意攻击,不停震动,一直弹出应用要我下载,有没有问题?
  7. 手机内存占用超过一半会不会卡?
  8. 为什么同样是200M宽带,移动可以不要钱,联通却要1000多?
  9. idea开启自动热部署自动化devtools
  10. Qt4_使用窗体编辑记录