实现在线预览office⽂档(word,excel,ppt)的⼏种⽅法在⽇常的⽣活或者⼯作中,我们都会⽤到office⽂档,但是在⼤多数⼈们阅读⽂档的时候,并不想将⽹站上的office⽂档下载到本地,这时候就需要⽂档在线预览的功能。
⼀些博主知道的实现⽂档在线预览的⽅式
1、转换为PDF
2、转换为HTML
3、在服务器上⾃⼰部署服务
4、开源项⽬提供的功能
5、使⽤第三⽅提供的付费接⼝
2021-05-27更新,最近在逛gitee的时候,发现了这个开源的,完全符合我需求的项⽬,泪⽬了,家⼈们
话不多说,先挂链接
该项⽬是使⽤spring boot打造⽂件⽂档在线预览项⽬解决⽅案,⽀持doc、docx、ppt、pptx、xls、xlsx
、zip、rar、mp4、mp3以及众多类⽂本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、bat、gitignore等⽂件在线预览。
项⽬特性
1. ⽀持 office, pdf, cad 等办公⽂档
2. ⽀持 txt, xml(渲染), md(渲染), java, php, py, js, css 等所有纯⽂本
3. ⽀持 zip, rar, jar, tar, gzip 等压缩包
4. ⽀持 jpg, jpeg, png, gif, tif, tiff 等图⽚预览(翻转,缩放,镜像)
5. 使⽤ spring-boot 开发,预览服务搭建部署⾮常简便
6. rest 接⼝提供服务,跨语⾔、跨平台特性(java,php,python,go,php,....)都⽀持,应⽤接⼊简单⽅便
7. 抽象预览服务接⼝,⽅便⼆次开发,⾮常⽅便添加其他类型⽂件预览⽀持
8. 最最重要 Apache 协议开源,代码 pull 下来想⼲嘛就⼲嘛
感谢作者及贡献者们的开源
这个项⽬搭建及使⽤都⾮常简单,将作者发布的最新源码使⽤maven构建打包,在⽣成包⽬录kekingcn-file-online-preview-v3.5.1\file-online-preview\server\target\kkFileView-3.5.1\bin下,双击运⾏startup.bat即可运⾏服务(需要Java环境的⽀持)
⼀、在后台将office⽂档转换为pdf,然后在浏览器中或者插件中查看
2、使⽤Asponse组件进⾏转换(优点:⽆需安装任何软件,直接引⽤即可使⽤,缺点:正式版收费,不过有试⽤版,除此之外,部分⽂档转换出来后样式错乱)
以转换word⽂件为PDF⽂件为例的c#实现代码
//⽂件位置
string FilePath="D://FilePath//test.doc"
//指定转换后的pdf⽂件存储路径
string savepath=System.Web.Hosting.HostingEnvironment.MapPath("/myPath/"+DateTime.Now.ToString("yyMMddHHmmssff")+".pdf");
//使⽤Asponse.word的⽅法进⾏转换
Document doc = new Document(path);
doc.Save(savepath,Asponse.Words.SaveFormat.Pdf);
jquery下载文件请求转换为pdf之后,可以直接使⽤c#⽂件读取流将⽂件以pdf流的形式在浏览器中预览
//直接读取⽂件流到浏览器展⽰
FileStream fs = new FileStream(path,FileMode.Open);
byte[] buffer = new byte[fs.Length];
fs.Seek(0,SeekOrigin.Begin);
fs.Read(buffer,0,buffer.Length);
fs.Flush();
fs.Close();
context.Response.ContenType="application/PDF";
context.Response.BinaryWrite(buffer);
context.Response.Flush();
context.Response.End();
也可使⽤pdf插件进⾏预览,例如PDF.js
string的replace用法
PDF.js⽀持
指定⽂件地址的预览⽅式
<!DOCTYPE html>
unix系统分为哪两部分<html lang="en">
<head>javascript程序设计实训二
<meta charset="UTF-8">
<title>⽂件预览</title>
<script src="../javascript/jquery-2.2.4.js"></script>
<script type="text/javascript">
$(function () {
var url = getPdfPreviewUrl(); //获取pdf预览地址
$("#pdfContainer").attr("src", "../static/pdfjs/web/viewer.html?file="+url+"#page=1");
});
</script>
</head>
<body>
<div id="showPdf">
<iframe id="pdfContainer" src="" width="100%" frameborder="0"></iframe>
</div>listeneer倾听者下载中心
</body>
</html>
以⽂件流的形式展⽰
1、打开viewer.js,搜索defaultUrl,修改为如下形式
defaultUrl
{
value:DEFAULT_URL;
kind:OptionKind.VIEWER
}
2、在viewer.html中,新增<Script></Script>,注意要在Viewer.js的引⽤之前
<Script>
var DEFAULT_URL="";
VAR CMAPS_URL="../../pdfjs_es5/web/cmaps";//这句代码引⽤的cmaps包是为了解决部分类型的pdf⽂件显⽰不全的问题,例如发票的pdf图⽚
var PDFData = "";
$.ajax({
type:"post",
async:false,
mimeType:'text/plain;chartset=x-user-defined',
url:"⾃⼰的后台请求路径",
success:function(data){
PDFData = data;wrap me in plastic什么意思
}
})
var rawLength = PDFData.length;
//将数据流转换为pdf.js能解析的unit8Array类型
var array = new Unit8Array(new ArrayBuffer(rawLength));
for(let i=0;i<rawLength;i++){
array[i] = PDFData.charCodeAt(i) & 0xff;
}
DEFAULT_URL=array;
</Script>
⼆、将PDF⽂件转换为html后进⾏展⽰,这个⽅法好像有很多,⼤家可以⾃⾏搜索
2、配合上⽂提到过的openoffice,也可实现这样的效果,在下⽂中,有⼀个开源项⽬就是使⽤该⽅式实现。
三、⾃⼰部署服务
1、office online 2016,优点:免费,可在内⽹部署;缺点:⽐较复杂与⿇烦,不适合个⼈使⽤
由于博主没有⾃⼰搭建过,所以也没有相关的经验,给⼤家分享我看过的⼏篇⽂章
搭建教程:
⽂档:
2、Collabora online
四、开源项⽬
给⼤家推荐⼏个博主搭建过或尝试过的优秀开源项⽬
1、配合openoffice实现⽂档的在线预览,实现本地⽂档添加,⽂档转换为html,⽂档HTML⽅式预览,可以实现预览的⽂档:doc、docx、ppt、pptx、xls、xlsx、zip、rar
2、使⽤spring boot打造⽂件⽂档在线预览项⽬解决⽅案,⽀持doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类⽂本如txt、html、xml、java、properties、sql、              js、md、json、conf、ini、vue、php、py、bat、gitignore等⽂件在线预览
3、⽂档在线预览编辑,⽂档⽔印 / Office files preview or edit online, doc/docx convert to html, watermark

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。