不使用插件预览pdf等类型文件

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

前端使用window.open即可

var url="file/preview.do?path="+response.path+"&fileName="+response.name;
top.window.open(url,response.name,"_blank");

接口代码如下

	@RequestMapping(value = "/file/preview.do")
	public @ResponseBody String preview(HttpServletRequest request, HttpServletResponse resp, String path, String fileName) throws IllegalStateException, IOException
	{
		InputStream inputStream = xxxx;//把需要预览的文件转成文件流
		OutputStream outputStream = resp.getOutputStream();
		String fileSuffix = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
        //把doc文档转pdf
		if (fileSuffix.matches("doc|docx"))
		{
		    // spire.doc.free
		    Document document = new Document();
		    document.loadFromStream(inputStream);
		    document.saveToStream(outputStream, FileFormat.PDF);
		}
        //把excel转pdf
		else if (fileSuffix.matches("xls|xlsx"))
		{
            //spire.xls.free
			Workbook workbook = new Workbook();
			workbook.loadFromStream(inputStream);
			workbook.saveToStream(outputStream, FileFormat.PDF);
		}
		else
		{
			if (!fileSuffix.matches("jpg|jpeg|png|gif|bmp|tiff|ai|cdr|eps|pdf"))
			{
				resp.setContentType("application/octet-stream;charset=UTF-8");
				resp.addHeader("Content-Disposition", "attachment;filename=" + fileName);
			}
			byte[] b = new byte[1024];
			int length;
			while ((length = inputStream.read(b)) > 0)
			{
				outputStream.write(b, 0, length);
			}
		}
		outputStream.flush();
		outputStream.close();
		inputStream.close();
		return null;
	}

如果需要把doc文档或者excel转为pdf,然后再进行预览的话需要引入spire.doc.free或者spire.xls.free的jar文章来源地址https://www.toymoban.com/news/detail-562355.html

到了这里,关于不使用插件预览pdf等类型文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • uniapp使用H5实现预览pdf文件

    下载后把压缩包解压到自己的项目的static文件夹下的pdf文件下,如图 新建一个文件名为filePreview.vue 在下载文件事件 1.如果预览文件是乱码情况或者在pc上报ocale.properties的请求返回404 解决:就是pdfjs下载版本有问题,下载以前的老版本 2.如果出现跨域问题直接修改源代码在v

    2024年02月09日
    浏览(36)
  • Vue中使用pdf.js实现在线预览pdf文件流

    以下是在Vue中使用pdf.js实现在线预览pdf文件流的步骤: 在需要使用的组件中,使用以下代码引入pdf.js: 使用pdf.js的 getDocument() 方法加载pdf文件流。可以将文件流作为Blob对象传递给该方法。例如,可以使用axios从服务器获取pdf文件流: 在 loadPdf() 方法中,使用 getDocument() 方法

    2024年02月09日
    浏览(71)
  • 使用pdf.js预览pdf文件时如何兼容chrome66版本

    最近在做一个需求,在PC端实现预览pdf文件的功能,但是要最低兼容chrome的66版本,因为公司用的chrome浏览器最低版本就是66版本。 现在下载PDF.js (链接:https://mozilla.github.io/pdf.js/) 下载下来的版本是 v3.11.174 ,都是已经构建好的。 我先拿 v3.11.174 这个版本试了一下,发现在

    2024年02月07日
    浏览(55)
  • java返回文件时为图片或pdf等设置在线预览或下载

    设置Content-Disposition响应头类型 \\\"inline\\\"查看预览 ; \\\"attachment\\\"下载; 接口调用或测试

    2024年01月23日
    浏览(55)
  • 【AngularJs】前端使用iframe预览pdf文件报错

    iframe style=\\\"width: 100%; height: 100%;\\\" src=\\\"{{vm.previewUrl}}\\\"/iframe 在ctrl文件中信任该文件就可以了 vm.trustUrl = $sce.trustAsResourceUrl(vm.previewUrl);//信任该文件  在html中:   X-Frame-Options: HTTP 响应头是用来给浏览器 指示允许一个页面 可否在 frame ,  iframe ,  embed  或者  object  中展现的标记

    2024年04月25日
    浏览(41)
  • Vue使用pdf-lib为文件流添加水印并预览

    之前也写过两篇预览pdf的,但是没有加水印,这是链接:Vue使用vue-pdf实现PDF文件预览,使用pdfobject预览pdf。这次项目中又要预览pdf了,要求还要加水印,做的时候又发现了一种预览pdf的方式,这种方式我觉的更好一些,并且还有个要求就是添加水印,当然水印后端也是可以加

    2024年02月02日
    浏览(58)
  • 前端使用vue-pdf、pdf-lib、canvas 给PDF文件添加水印,并预览与下载

    原理就是给显示pdf 的容器增加一层水印遮罩层 下载: 通过url获取pdf文件的arrarybuffer文件流 将arraybuffer数据转成pdf文档 添加水印字体(内置/自定义) 为每页pdf添加文字水印 保存pdf文件的unit64Arrary文件流 预览: 创建canvas容器(用于显示水印文字) 创建水印canvas 将水印canv

    2024年01月24日
    浏览(61)
  • 【Java项目】Vue+ElementUI+Ceph实现多类型文件上传功能并实现文件预览功能

    先说一下我们的需求,我们的需求就是文件上传,之前的接口是只支持上传图片的,之后需求是需要支持上传pdf,所以我就得换接口,把原先图片上传的接口换为后端ceph,但是其实大致的处理流程都差不多,都是上传到后端然后得到url地址。 要实现点击预览文件,那么就需

    2024年02月15日
    浏览(55)
  • uniApp 使用uni.openDocument(object)预览pdf、excel、word等文件

    这里咱们直接用的uniapp官方提供的uni.downloadFile方法调用手机第三方能打开文件的工具,比如wps等(ps:这里实现的是APP文件预览)。 1.文件路径(url)必须是浏览器能直接访问的文件。比如:http://xx.cc.com/images/abc.xlsx 这种格式。 最开始我是用的后台给的接口 file/dowload?fileId=1

    2024年02月11日
    浏览(60)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包