Vue预览word/pdf文件(内外网均可)

这篇具有很好参考价值的文章主要介绍了Vue预览word/pdf文件(内外网均可)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

预览word文件实现方式有 

1 将文件放在前端静态文件中 实现本地预览 但前端包变得很大 多文件不适合

2 通过跳转外网链接访问 但内网无法使用

3 综合考虑 利用浏览器自带的预览pdf  将文件放在服务器指定目录下

前端代码量很少 无需任何插件 只需调用后端接口(将文件转换为流) 内外网均可预览

目录

后端接口

前端代码

Docx文件转换为pdf文件 


前端效果:

Vue预览word/pdf文件(内外网均可)

 浏览器预览效果:

Vue预览word/pdf文件(内外网均可)


后端接口

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

/**
 * @author 夜の雨
 * @date 2022/11/24
 */
@RequestMapping("/fill")
@RestController("project:fill:FilePreviewController")
@Api(tags = "FilePreviewManager", description = "文档在线预览")
public class FilePreviewController {

    protected final Logger logger = LoggerFactory.getLogger(this.getClass());

    @ResponseBody
    @ApiOperation(value = "说明文档在线预览接口")
    @GetMapping("/filePreview")
    public void toPdfFile(HttpServletResponse response) {
        //Linux服务器地址
//      String path = "/home/wordFile/file.pdf";
        //本地测试地址
        String path = "D:/wordFile/file.pdf";
        File outputFile = new File(path);
        try {
            //检查是否存在此文件夹 如没有则创建
            if (!outputFile.exists()) {
                logger.warn("无 wordFile/file.pdf 路径或文件");
            }
            response.setContentType("application/pdf;charset=utf-8");
            ServletOutputStream outputStream = response.getOutputStream();
            // 读取文件
            InputStream in = new FileInputStream(outputFile);
            // copy流数据,i为字节数
            int i = IOUtils.copy(in, outputStream);
            in.close();
            outputStream.close();
            logger.info("流已关闭,可预览,该文件字节大小:" + i);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

接口地址允许匿名访问

//说明文档预览
.antMatchers("/fill/filePreview").permitAll()

Vue预览word/pdf文件(内外网均可)

 前端代码

<h2>说明文档:
    <el-button type="primary" size="medium" icon="el-icon-document" @click="onlinePreview">点击预览</el-button>
</h2>


methods: {
onlinePreview() {
// 服务器地址
// const w = window.open("http://ip/../fill/filePreview");
    //本地测试地址(跳转到filePreview接口)
    const w = window.open("http://localhost:80/.../fill/filePreview");
    //延迟刷新浏览器标签页名 防止不显示
    setTimeout(function () {
    w.document.title = "说明文档"
    }, 100);
}
}

Docx文件转换为pdf文件 

 Vue预览word/pdf文件(内外网均可)

 将文件放在指定目录下

Vue预览word/pdf文件(内外网均可)

最后点击页面按钮 就可以愉快的预览文件啦

大家根据代码自行调整哦 如果有什么问题 欢迎留言讨论~🥰 文章来源地址https://www.toymoban.com/news/detail-515534.html

到了这里,关于Vue预览word/pdf文件(内外网均可)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element ui vue 附件预览组件、可预览图片、excel 、pdf.word等文件(浏览器打开文件的方式)

    目录 1.组件源码  2.html 代码 3.组件源码  此组件就是一个单纯的预览图片、浏览器打开文件的形式简单的组合了下而成的,word、excel是直接下载、pdf浏览器打开的形式,如果想本地打开直接预览的话就直接不用看了。word、excel、pdf 的图片是我放到服务器上的图片地址。 1.组

    2024年02月11日
    浏览(48)
  • 前端(vue)js在线预览PDF、Word、Excel、ppt等office文件

    可选参数 pdf=true,word文档尝试以pdf方式显示,默认false watermark=水印文本,显示文本水印;“img:”+图片url表示图片水印,如:img:https://view.xdocin.com/demo/wm.png saveable=true,是否允许保存源文件,默认false printable=false,是否允许打印,默认true ©able=false,是否允许选择复制内容,

    2024年02月13日
    浏览(55)
  • 【vue2】纯前端实现本地的pdf/word/epub文件预览(包括pdf选中文字,epub高亮等)

    需求是预览本地的pdf/word/epub格式的文件,但是搜索后发现没有可以直接使用的,格式不同,显示的方式和效果也都略有不同。 最后还是 分别实现预览 的功能。 如果只需要预览pdf/word等格式的话,可以使用的方案:vue-office,支持多种文件(docx、excel、pdf)预览的vue组件库,支持

    2024年02月11日
    浏览(46)
  • vue实战--vue+elementUI实现多文件上传+预览(word/PDF/图片/docx/doc/xlxs/txt)

        最近在做vue2.0+element UI的项目中遇到了一个需求:需求是多个文件上传的同时实现文件的在线预览功能。需求图如下:     看到这个需求的时候,小栗脑袋一炸。并不知道该如何下手,之前的实践项目中也并没有遇到相似的功能。因此也废了一番功夫想要实现这样一个

    2024年01月23日
    浏览(53)
  • vue在线预览word、excel、PDF

    1、安装依赖 如果是vue2.6版本或以下还需要额外安装 @vue/composition-api 2、预览WORD代码 3、预览EXCEL 4、预览PDF 5、项目参考地址

    2024年02月09日
    浏览(44)
  • 前端实现pdf,图片,word文件预览

    需求:实现一个在线预览pdf、excel、word、图片等文件的功能。 介绍:支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代码实现所有功能,建议以下的预览文件标签可以在外层包裹一层弹窗。 iframe标签能够将另一个HTML页面嵌入到当前页面中,我们的图片也能够使用iframe标签来

    2024年02月11日
    浏览(41)
  • 前端实现文件预览(pdf、excel、word、图片)

    需求:实现一个在线预览pdf、excel、word、图片等文件的功能。 介绍:支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代码实现所有功能,建议以下的预览文件标签可以在外层包裹一层弹窗。 sandbox 这个属性如果是单纯预览图片可以不使用,该属性对呈现在 iframe 框架中的内容

    2024年02月10日
    浏览(48)
  • 记录--前端实现文件预览(pdf、excel、word、图片)

    需求:实现一个在线预览pdf、excel、word、图片等文件的功能。 介绍:支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代码实现所有功能,建议以下的预览文件标签可以在外层包裹一层弹窗。 iframe标签能够将另一个HTML页面嵌入到当前页面中,我们的图片也能够使用iframe标签来

    2024年02月09日
    浏览(46)
  • 微信小程序打开PDF、word等文件预览

            近期在使用uniapp开发微信小程序时,碰到了要在小程序上打开PDF文件预览的需求,使用原生微信小程序开发的实现和这个也是类似的。实现大致代码如下:         这里主要用到了两个API:uni.downloadFile( ) 和 uni.openDocument( ),这两个API的功能如下: uni.downloadFile( ):发

    2024年02月14日
    浏览(114)
  • 文档在线预览(二)word、pdf文件转html以实现文档在线预览

    @ 目录 一、前言 1、aspose 2 、poi + pdfbox 3 spire 二、将文件转换成html字符串 1、将word文件转成html字符串 1.1 使用aspose 1.2 使用poi 1.3 使用spire 2、将pdf文件转成html字符串 2.1 使用aspose 2.2 使用 poi + pbfbox 2.3 使用spire 3、将excel文件转成html字符串 3.1 使用aspose 3.2 使用poi + pdfbox 3.3 使用

    2024年02月06日
    浏览(121)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包