第一步:下载源码https://github.com/mozilla/pdf.js

第二步:构建PDF.js

第三步:修改viewer.js

var DEFAULT_URL = 'compressed.tracemonkey-pldi-09.pdf'  里面是PDF的路径删除该变量定义;

第四步:通过ajax的方式获取文件流数据,并处理。

var DEFAULT_URL = "";//注意,删除的变量在这里重新定义
var PDFData = "";
$.ajax({
type:"post",
async:false, //
mimeType: 'text/plain; charset=x-user-defined',
url:文件流请求地址,
success:function(data){
PDFData = data;
}
});
var rawLength = PDFData.length;
//转换成pdf.js能直接解析的Uint8Array类型,见pdf.js-4068
var array = new Uint8Array(new ArrayBuffer(rawLength));
for(i = 0; i < rawLength; i++) {
array[i] = PDFData.charCodeAt(i) & 0xff;
}
DEFAULT_URL = array;

第五步:将上面的代码作为js文件或是代码片段,加入viewer.html(上面的代码要放在<script src="viewer.js"></script>引入之前)。

后端代码片段

response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("application/pdf;charset=UTF-8");
input = new BufferedInputStream(httpUrl.getInputStream());
byte buffBytes[] = new byte[1024];
out = response.getOutputStream();
int read = 0;
while ((read = input.read(buffBytes)) != -1) {
out.write(buffBytes, 0, read);
}
out.flush();
out.close();

转自:http://zhixinghh-163-com.iteye.com/blog/2315574

最新文章

  1. css写出0.5px边框(一)
  2. 关于使用iframe嵌套页面的跳转方式
  3. union的限制, 临时表大小的优化
  4. Java-单例模式(singleton)-转载
  5. finder文件目录跳转快捷键
  6. C# JSON to object
  7. SQLSERVER 里经常看到的CACHE STORES是神马东东?
  8. matlab矩阵合并及相关运算
  9. UISerachBar / UISearchDisplayController
  10. reverse array java
  11. Oracle11.2新特性之listagg函数 (行列转换)
  12. 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上)
  13. thinphp验证码的简单实现
  14. Mysql SQL Mode详解
  15. 《笨方法学Python》加分题17
  16. F - Set of Strings
  17. 用layer-list实现图片旋转叠加、错位叠加、阴影、按钮指示灯
  18. php curl上传文件$_FILES为空问题
  19. (12/24) css进阶:sass文件的打包和分离
  20. CRM - 销售与客户

热门文章

  1. 【python】scrapy相关
  2. nginx配置和网站的部署
  3. Lecture Sleep(尺取+前缀和)
  4. Java学习个人备忘录之文档注释
  5. 分页查询es时,返回的数据不是自己所期望的问题
  6. 关于c++中public &amp; private方法调用问题
  7. UML图之协作图
  8. 网卡多ip 再看arp; arp队列也会缓存skb
  9. Extensions disabled by Chrome
  10. [BinaryTree] 二叉树类的实现