前后分离 使用pdf.js 在线预览


一、所需资料

官网下载源码:https://mozilla.github.io/pdf.js

二、使用步骤

1.引入库

将下载的文件放置后端的 静态文件夹下面 如图所示
在这里插入图片描述

2.后端文件流

代码如下(示例):

	@GetMapping(value = "/preview")
	public void pdfStreamHandler(String fileName,HttpServletRequest request,HttpServletResponse response) {
		
		String filePath = productUrl + File.separator + fileName;
		System.out.println(filePath);
		File file = new File(filePath);
		if (file.exists()) {
			byte[] data = null;
			try {
				FileInputStream input = new FileInputStream(file);
				data = new byte[input.available()];
				input.read(data);
				response.getOutputStream().write(data);
				input.close();
			} catch (Exception e) {
				System.out.println("pdf文件处理异常:" + e);
			}

		} else {
			return;
		}
	}

2.前端获取文件流

代码如下(示例):

<template>
    <div class="page-one">
        <p>pdf.js demo</p>
        <!--服务器-->
        <div style="margin-top: 30px">
            <p>服务器</p>
            <button @click="checkSuccess">查看pdf</button>
        </div>
    </div>
</template>

<script>
    export default {
        name: 'page-one',
        components: {},
        data() {
            return {
                fileName:'测试.pdf',
            }
        },
        methods: {
            checkSuccess() {

                /**
                 * 后台返回流的形式
                 * 注意事项
                 * 1.访问文件流的路径必须要用 encodeURIComponent() 转码
                 * 2.如果后台有过滤器 要放开获取静态文件的目录 例如 /generic
                 *
                 */
                let url="http://192.168.1.57:8181/sys/common/preview?fileName="+this.fileName+"&access_token=ea19dc0de8801b389ed5099a2297161d";
                window.open("http://192.168.1.57:8181/generic/web/viewer.html?file="+ encodeURIComponent(url));
            },
        }
    }
</script>


<style scoped>
    .page-one button {
        margin-left: 10px;
    }
</style>

总结

以上就是pdf在网页和手机端进行pdf预览
注意: 1.访问文件流的路径必须要用 encodeURIComponent() 转码
2.如果后台有过滤器 要放开获取静态文件的目录
访问路径不加encodeURIComponent 转码会出现传参为空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值