`
潺潺溪流
  • 浏览: 49796 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

pdf.js文件流方式实现在线展示pdf文件

 
阅读更多

第一步:下载源码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(); 

 

备注:附件为构建后的PDF.js

分享到:
评论
7 楼 liao2991 2019-07-04  
FDS
6 楼 潺潺溪流 2017-08-25  
chen_3010 写道
你好, 能否提供下后台处理pdf文件的完整代码 , 这样看的有点云里雾里!

你可能对这个(input = new BufferedInputStream(httpUrl.getInputStream());)不明白,这个其实就是获取文件流,我示例是获取远程文件服务器上对应的文件的文件流。
5 楼 潺潺溪流 2017-08-25  
niuxuedong 写道
您好,没看明白你处理之后是怎么给页面展示的,还请指导下,1403674977@qq.com
非常感谢

感觉挺明白了,只是替换了官网viewer.js(DEFAULT_URL)的变量定义
4 楼 kkkmoving 2017-08-22  
你好,请问一下你这种方案在IE9下测试过没有哇?
我在IE9下貌似不行,另外我用官网DEMO,在IE9下,也出现第一页无法展示的问题(后续页都没有问题,可以正常显示)。
3 楼 u010907871 2017-07-13  
您好 劳烦提供下完整代码吧  感谢
2 楼 niuxuedong 2017-04-09  
您好,没看明白你处理之后是怎么给页面展示的,还请指导下,1403674977@qq.com
非常感谢
1 楼 chen_3010 2017-03-17  
你好, 能否提供下后台处理pdf文件的完整代码 , 这样看的有点云里雾里!

相关推荐

    H5自动展示pdf文件,pdf.js

    总的来说,"H5在线展示pdf文件包"通过PDF.js库实现了在H5页面中无缝展示PDF文件的功能,使得用户无需离开网页或安装额外软件就能查看PDF内容。对于开发者而言,这是一个强大的工具,极大地丰富了Web应用的功能。

    html在线预览pdf(pdf.js)

    1. 引入 PDF.js 库:可以通过 CDN 或本地部署的方式引入 PDF.js 相关的 JavaScript 和 CSS 文件。 2. 初始化 viewer:创建一个 HTML 元素作为 PDF 预览容器,并使用 PDF.js 提供的 viewer HTML 模板初始化。 3. 加载...

    jquery.media.js 插件实现在线预览PDF文件

    `jquery.media.js` 是一个基于 jQuery 的插件,主要用于在HTML网页中实现多媒体内容的预览,包括PDF文件。这个插件使得用户无需离开当前页面就能查看PDF文档,提供了便捷的在线预览功能,极大地提升了用户体验。下面...

    pdf.js在Eclipse工程实现demo

    这个"pdf.js在Eclipse工程实现demo"是将PDF.js集成到Eclipse项目中的一个示例,它展示了如何在Web应用程序中利用PDF.js库来展示PDF文件。以下是关于这个主题的详细知识点: 1. **PDF.js基础**: - PDF.js的核心...

    pdf.js使用文件流预览pdf

    为了将服务器上的PDF文件流加载到PDF.js,你可以使用Ajax请求获取文件流,然后将返回的数据转换为Blob对象。例如,使用jQuery的`$.ajax`: ```javascript $.ajax({ url: 'your/pdf/stream/url', type: 'GET', ...

    在线展示PDF.JS

    10. **使用示例**:要使用 PDF.js,开发者首先需要在项目中引入库文件,然后配置 URL 或数据流来加载 PDF,最后使用 API 来控制 PDF 渲染和交互。 总结来说,PDF.js 是一个强大且灵活的工具,为 Web 开发者提供了在...

    可以在线预览pdf文件

    标题中的“可以在线预览pdf文件”指的是使用特定的技术或工具实现通过网页浏览器查看PDF文档的功能,无需用户下载文件到本地。这通常涉及到前端技术,尤其是JavaScript库,因为浏览器端的处理能力有限,需要借助这样...

    pdf.js预览pdf文件流(base64)pdf源码已更改 带测试

    在这个场景中,"pdf.js预览pdf文件流(base64)"指的是利用PDF.js库来处理以Base64编码的PDF文件数据,而不是传统的文件路径方式。 Base64是一种编码方法,可以将二进制数据转换为ASCII字符串,方便在网络上传输。...

    pdf.js实现pdf在线预览

    PDF.js是Mozilla开发的一个开源项目,它允许在Web浏览器中以纯JavaScript方式渲染PDF文档,无需依赖任何插件。这个库的目标是提供一个跨平台、跨浏览器的解决方案,用于一致地展示PDF内容,同时提供了高度的自定义...

    vue-pdf预览pdf文件流

    在Vue.js应用中,预览PDF文件流是一个常见的需求,特别是在处理在线文档或者需要展示PDF内容的场景下。`vue-pdf`是一个强大的插件,它允许我们在Vue组件中轻松地集成PDF预览功能。这个插件是基于PDF.js库构建的,PDF...

    uniapp移动端H5在线预览PDF等文件实现源码及注解

    PDF.js是Mozilla基金会开源的一个JavaScript库,专门用于在浏览器中渲染PDF文件,支持多种浏览器和设备。在uniapp中,我们可以通过引入PDF.js库,利用其提供的API来加载和展示PDF内容。 实现步骤大致如下: 1. **...

    pdf.js显示数据流(base64)PDF

    这个库特别适用于那些需要在不依赖任何插件的情况下,在网页上展示PDF文件的场景。在“pdf.js显示数据流(base64)PDF”的主题下,我们将深入探讨如何将后台处理的数据转换为Base64编码,并在前端利用PDF.js进行显示...

    pdf.js的源码文件

    1. **PDF解析**:PDF.js首先需要解析PDF文件的结构,这包括理解PDF文件的字节流格式,识别PDF对象如字典(Dictionary)、数组(Array)、字符串(String)等。它使用了自定义的解析器来处理PDF文件的语法和数据结构...

    pdfjs跨域展示远程pdf文件

    这个库允许开发者无需借助任何插件,就能在Web应用中实现PDF文件的在线预览。在处理跨域问题时,由于同源策略的限制,直接加载远程PDF可能会遇到问题。本篇文章将详细介绍如何利用PDFJS和SpringBoot构建一个能够跨域...

    pdf.js相关

    在本文中,我们将深入探讨PDF.js的工作原理、实现方式以及如何利用base64字符流在页面上展示PDF文件。 PDF.js的核心理念是将PDF文件解析为一系列的图形和文本元素,然后在HTML5的Canvas元素上绘制这些元素,以达到...

    pdf.js已解决CORS问题代码

    当我们想用PDF.js从URL...要解决浏览器 URL 文件跨域的问题,也可以通过后端服务器将PDF 文件转换成流文件的方式返回给 PDF.js,不过这里我们不讨论这样的策略,而是讨论如何只在前端解决这个问题。下载源码即可解决

    js实现html中的pdf文件的在线预览、下载、打印等功能

    1. **PDF.js**:由Mozilla开发的PDF.js是一个强大的开源库,它允许在浏览器中以纯JavaScript方式渲染PDF文件,无需任何插件。PDF.js的核心目标是提供高质量的PDF文件预览体验。 2. **PDFObject**:这是一个轻量级的...

    vue-pdf预览pdf文件流示例

    在Vue.js应用中,预览PDF文件流是一个常见的需求,特别是在网页中展示来自服务器的数据或者动态生成的PDF文档。Vue-pdf库提供了解决这个问题的有效工具。这个库允许开发者在Vue组件中直接渲染PDF文件,无需将文件...

    pdf.js资源下载包

    - **PDF 渲染**: PDF.js 能够解析 PDF 文件并将其转换为可在浏览器中显示的图像流,支持高分辨率和多页面文档。 - **互动性**: 支持缩放、平移、书签、搜索和链接点击等交互操作。 - **自定义化**: 开发者可以...

Global site tag (gtag.js) - Google Analytics