广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java实现PDF在线预览功能(四种方式)
  • 239
分享到

Java实现PDF在线预览功能(四种方式)

2024-04-02 19:04:59 239人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录Java实现pdf在线预览Java快捷实现PDF在线预览Java实现PDF在线预览 @RequestMapping("/preview1") public v

Java实现PDF在线预览


    @RequestMapping("/preview1")
    public void er(httpservletResponse response){
        File file = new File("G:\\桌面\\Thymeleaf3.0中文翻译文档@www.java1234.com.pdf");
        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(e);
            }
        }else{
            return;
        }
    }
    @ResponseBody
    @RequestMapping("/preview2")
    public void findPdf( HttpServletResponse response) throws IOException{
        response.setContentType("application/pdf");
        FileInputStream in = new FileInputStream(new File("G:\\桌面\\Thymeleaf3.0中文翻译文档@www.java1234.com.pdf"));
        OutputStream out = response.getOutputStream();
        byte[] b = new byte[512];
        while ((in.read(b))!=-1) {
            out.write(b);
        }
        out.flush();
        in.close();
        out.close();
    }
    @ResponseBody
    @RequestMapping("/preview3")
    public void devDoc(HttpServletRequest request, HttpServletResponse response, String storeName) throws Exception {
        request.setCharacterEncoding("UTF-8");
        String ctxPath = request.getSession().getServletContext().getRealPath("");
        String downLoadPath = "G:\\桌面\\Thymeleaf3.0中文翻译文档@www.java1234.com.pdf";
        response.setContentType("application/pdf");
        FileInputStream in = new FileInputStream(new File(downLoadPath));
        OutputStream out = response.getOutputStream();
        byte[] b = new byte[1024];
        while ((in.read(b))!=-1) {
            out.write(b);
        }
        out.flush();
        in.close();
        out.close();
    }
    @ResponseBody
    @RequestMapping("/preview")
    public void download( HttpServletResponse response
                        ) throws IOException {
        String filePath = "G:\\桌面\\Thymeleaf3.0中文翻译文档@www.java1234.com.pdf";
        System.out.println("filePath:" + filePath);
        File f = new File(filePath);
        if (!f.exists()) {
            response.sendError(404, "File not found!");
            return;
        }
        BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
        byte[] bs = new byte[1024];
        int len = 0;
        response.reset(); // 非常重要
        if (true) { // 在线打开方式
            URL u = new URL("file:///" + filePath);
            String contentType = u.openConnection().getContentType();
            response.setContentType(contentType);
            response.setHeader("Content-Disposition", "inline;filename="
                    + "2019年上半年英语四级笔试准考证(戴林峰).pdf");
            // 文件名应该编码成utf-8,注意:使用时,我们可忽略这句
        } else {
            // 纯下载方式
            response.setContentType("application/x-msdownload");
            response.setHeader("Content-Disposition", "attachment;filename="
                    + "2019年上半年英语四级笔试准考证(戴林峰).pdf");
        }
        OutputStream out = response.getOutputStream();
        while ((len = br.read(bs)) > 0) {
            out.write(bs, 0, len);
        }
        out.flush();
        out.close();
        br.close();
    }

Java快捷实现PDF在线预览

本文章利用各个浏览器的内核支持PDF预览功能来做,PDF的预览网上说的最多的是PDF.js实现预览,也找了好多文章,死活最后实现不了,通过这个方法解决了,如果有PDF.js解决的可以大家沟通交流下。

这里提一下,其他Wordexcel可以通过aspose代码转换成PDF,也很快有效。可以网上搜下。

方法很简单,首先引入的都是IO的包。


import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import org.apache.commons.io.IOUtils;

接下来就是在自己的后台controller里面写个方法。里面file的文件可以通过参数或是封装方式获取,这个里面的流不需要关闭,浏览器会自动获取然后展示。关闭的话浏览器就无法加载!


@RequestMapping(value = "/showpdf")
    public void showpdf(HttpServletRequest request, HttpServletResponse response, Model model) {
        try {
            File file = new File("D:/xyptFile/java.pdf");
            FileInputStream fileInputStream = new FileInputStream(file);
            response.setHeader("Content-Type", "application/pdf");
            OutputStream outputStream = response.getOutputStream();
            IOUtils.write(IOUtils.toByteArray(fileInputStream), outputStream);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

文章来源:从其他各个文章中测试验证,取得最优方案。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Java实现PDF在线预览功能(四种方式)

本文链接: https://www.lsjlt.com/news/155704.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现PDF在线预览功能(四种方式)
    目录Java实现PDF在线预览Java快捷实现PDF在线预览Java实现PDF在线预览 @RequestMapping("/preview1") public v...
    99+
    2022-11-12
  • Vue实现docx、pdf格式文件在线预览功能
    目录介绍docx安装使用PDF安装引入和使用pdf的放大和缩小多格式的文件渲染函数映射不支持的文件提示处理总结介绍 在业务中,如果遇到文档管理类的功能,会出现需要在线预览的业务需求,...
    99+
    2022-11-13
  • Office在线预览及PDF在线预览的实现方式大集合
    一、服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免费的swftools.exe工具生成sw...
    99+
    2023-08-31
    php word excel pdf
  • vue3如何实现PDF文件在线预览功能
    目录概述正文创建 vue3 项目添加 PDF 预览插件总结概述 之前我们用 Reactjs + React-PDF 实现了 React 版的 PDF 文件预览,今天我们用 Vue3 ...
    99+
    2022-11-13
  • vue如何实现在线预览PDF文档功能
    这篇文章主要介绍了vue如何实现在线预览PDF文档功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue如何实现在线预览PDF文档功能文章都会有所收获,下面我们一起来看看吧。下面通过一个实例来介绍在Vue.j...
    99+
    2023-07-05
  • Vue实现在线预览pdf文件功能(利用pdf.js/iframe/embed)
    前言 最近在做一个精品课程,需要在线预览课件ppt,我们的思路是将ppt转换为pdf在线预览,所以问题就是如何实现在线预览pdf了。 在实现的过程中,为了更好地显示效果,我采用了多...
    99+
    2022-11-12
  • Java实现办公文档在线预览功能
    java实现办公文件在线预览功能是一个大家在工作中也许会遇到的需求,网上些公司专门提供这样的服务,不过需要收费 如果想要免费的,可以用openoffice,实现原理就是: 通过第三方...
    99+
    2022-11-12
  • 前端实现docx、pdf格式文件在线预览
    介绍在业务中,如果遇到文档管理类的功能,会出现需要在线预览的业务需求,本文主要是通过第三方库来实现文档预览功能,并将其封装成preview组件docxdocx的实现需要使用docx-preview插件安装npm i do...
    99+
    2022-11-22
    docx pdf 预览
  • SpringBoot实现PPT格式文件上传并在线预览功能
    1、需要引入依赖 <dependency> <groupId>com.itextpdf</groupId> ...
    99+
    2022-11-13
  • 分享Java多线程实现的四种方式
    以下四种方式: 1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target3...
    99+
    2022-11-13
  • JS+HTML5如何实现图片在线预览功能
    这篇文章给大家分享的是有关JS+HTML5如何实现图片在线预览功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体内容如下<!DOCTYPE html> ...
    99+
    2022-10-19
  • Java实现线程同步的四种方式总结
    目录什么是线程同步线程同步的几种方式1.使用synchronized关键字2.使用ReentrantLock3.使用原子变量实现线程同步4.ThreadLocal实现线程同步什么是线...
    99+
    2022-11-13
  • SpringBoot实现文件在线预览功能的全过程
    目录背景系统设计文件类型及方案流程设计系统实现识别文件后缀文件解析系统效果使用方法项目源码地址预览界面总结背景 最近公司内部oa系统升级,需要增加文件在线预览服务,最常见的文件就是...
    99+
    2022-11-12
  • Java详解实现多线程的四种方式总结
    目录前言一、四种方式实现多线程1.继承Thread类创建线程2.实现Runnable接口创建线程3.实现Callable接口4.实现有返回结果的线程二、多线程相关知识1.Runnab...
    99+
    2022-11-13
  • 相关JavaScript在览器中实现可视化的四种方式
    目录前言方式一:HTML+CSS方式二:SVG方式三:Canvas2D方式四:WebGL总结前言 可视化用一句话来说,本质上就是将数据信息组织起来后,以图形的方式呈现出来。在 Web...
    99+
    2022-11-13
  • vue项目中常见的三种文件类型在线预览实现(pdf/word/excel表格)
    目录前言一、预览word文件1.安装 npm 依赖2.预览在线地址文件3.预览本地文件二、预览excel表格1.安装依赖2.预览在线表格三、pdf预览1.安装依赖vue-pdf2.在...
    99+
    2022-11-13
  • SpringBoot实现文件在线预览功能的过程是怎样的
    SpringBoot实现文件在线预览功能的过程是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。背景最近公司内部oa系统升级,需要增加文件在线预览服务,最常见的文件就是of...
    99+
    2023-06-25
  • Vue实现拖拽穿梭框功能四种方式实例详解
    目录一、使用原生js实现拖拽二、VUe使用js实现拖拽穿梭框三、Vue 拖拽组件 vuedraggable四、Awe-dnd指令封装一、使用原生js实现拖拽 <html lan...
    99+
    2022-11-13
  • vue使用docx-preview实现docx文件在线预览功能全过程
    目录1.下载插件2.导入3.使用组件总结之前一般做项目进行文件浏览的时候基本都是用的window.open+url的形式打开文件,进行浏览操作的,但是这种打开方式只能够在线浏览如jp...
    99+
    2023-05-15
    vue在线预览doc文档 vue实现文件预览功能 vue 在线预览word
  • Java单表实现评论回复功能(多种实现方式)
    目录1.简介2.功能实现图3.数据库设计4.实体类5.实现思路6.功能实现6.1 Sql入手6.2 业务实现7.前端实现8.最终成果1.简介 最近在写毕业设计的时候发现需要实现一个评...
    99+
    2023-03-06
    Java评论回复 Java单表评论回复
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作