springboot在线阅览pdf文档

本文介绍了如何在Linux(CentOS 7)环境中使用Spring Boot搭建一个在线预览PDF的系统。通过源码安装unoconv解决文档转换问题,处理中文乱码,以及利用unrar安装和解压字体资源,确保PDF预览不出现乱码。详细步骤包括环境准备、工具类创建、Controller接口设计、访问网页的方式以及解决乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


SpringBoot 使用LibreOffice 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件

linux环境源码安装unoconv

服务器环境为linux
linux版本非常多,每个版本之间的安装方式可能都会有所不同。这里就以centos 7做实例

1.切换到root用户:

su  - root

2.执行unoconv安装码命令:

 yum install unoconv –y 

3.因为测试文件转换(文件上传自己处理)

使用rz或xftp

我这里rz上传的结构为![在这里插入图片描述](https://img-blog.csdnimg.cn/20210105181815106.png在这里插入图片描述

  1. 通过执行命令进行文件转换:
/usr/bin/unoconv -f pdf /home/tubiao/桌面/1.doc

/home/tubiao/桌面/1.doc 是你文件存放的路径位置,变成pdf文件格式的

注:在第一次运行转换命令的时候可能会报一些错误,比如:Error: Unable to connect or start own 
listener. Aborting.这些错误可以忽略,因为第一次转换识别不了,第二次运行就OK了。

在线预览工具类

package com.jay.onlinePreview;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;

import javax.servlet.http.HttpServletResponse;
import java.io.*;

/**
 * @version 0.0.1
 * @program: spring-poi-demo
 * @description: 文档在线预览工具类
 * <p>
 * 服务器环境:Linux环境
 * 现支持文档类型: Excel  word  ppt pdf
 * @author: huangzq
 * @create: 2021-01-05 10:48
 */
@Slf4j
public class LinuxPageDIsplsyFileUtil {
   

    private static LinuxPageDIsplsyFileUtil linuxPageDIsplsyFileUtil;

    public static synchronized LinuxPageDIsplsyFileUtil getSwitchUtil() {
   
        if (linuxPageDIsplsyFileUtil == null) {
   
            linuxPageDIsplsyFileUtil = new LinuxPageDIsplsyFileUtil();
        }
        return linuxPageDIsplsyFileUtil;
    }

    /**
     * 文档在线预览
     *
     * @param response
     * @param fileStoragePath  文件存储路径 (前端获取文件存储路径返给后台)
     * @param beforeConversion 文件名(必须带文件后缀名,这里指的就是文件全名称)
     * @throws Exception
     */
    public void conversionFile(HttpServletResponse response, String fileStoragePath, String beforeConversion) throws Exception {
   
        //文件存储路径
        //fileStoragePath ="/app/";
        //转换前的文件名
        //beforeConversion ="20191009133209lis_chgrpt.docx";
        String fileNamePath = fileStoragePath + beforeConversion;
        File file = new File(fileNamePath);
        if (!file.exists()) {
   
            log.info("库存中没有指定文件。。。。");
            return;
        }
        //获取到文件名
        String interceptFileName = beforeConversion.substring(0, beforeConversion.lastIndexOf("."));
        //获取文件名的后缀
        String extension = FilenameUtils.getExtension(file.getName());</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值