文档预览

文档预览

gitee上kkFIleView项目使用spring boot打造文件文档在线预览项目解决方案

gitee开源项目:https://gitee.com/wyshp08/file-online-preview

下载地址:https://gitee.com/kekingcn/file-online-preview/releases

1、 项目特性

  1. 支持office,pdf, cad等办公文档
  2. 支持txt,java,php,py,md,js,css等所有纯文本
  3. 支持zip,rar,jar,tar,gzip等压缩包
  4. 支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像)
  5. 使用spring boot开发,预览服务搭建部署非常简便
  6. rest接口提供服务,跨平台特性(java,php,python,go,php,…)都支持,应用接入简单方便
  7. 抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持
  8. 最最重要Apache协议开源,代码pull下来想干嘛就干嘛

2、项目部署

2.1. 环境要求

  1. Java: 1.8+
  2. OpenOffice或LiberOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)

2.2. 部署运行

  1. 下载最新版发行包

  2. 解压kkFileView-2.x.x.zip包

  3. 打开解压后文件夹的bin目录,运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh

  4. 浏览器访问本机8012端口 http://127.0.0.1:8012 即可看到项目演示用首页

  5. 配置文件application.properties在config目录下

    #######################################不可动态配置,需要重启生效#######################################
    server.port = ${KK_SERVER_PORT:8012}
    server.context-path = ${KK_CONTEXT_PATH:/}
    spring.http.encoding.charset = utf8
    ## Freemarker 配置
    spring.freemarker.template-loader-path = classpath:/web/
    spring.freemarker.cache = false
    spring.freemarker.charset = UTF-8
    spring.freemarker.check-template-location = true
    spring.freemarker.content-type = text/html
    spring.freemarker.expose-request-attributes = true
    spring.freemarker.expose-session-attributes = true
    spring.freemarker.request-context-attribute = request
    spring.freemarker.suffix = .ftl
    
    server.tomcat.uri-encoding = UTF-8
    #文件上传限制
    spring.http.multipart.max-request-size=500MB
    spring.http.multipart.max-file-size=500MB
    
    #文件资源路径(默认为打包根路径下的file目录下)
    #file.dir = D:\\kkFileview\\
    file.dir = ${KK_FILE_DIR:default}
    #openoffice home路径
    #office.home = C:\\Program Files (x86)\\OpenOffice 4
    office.home = ${KK_OFFICE_HOME:default}
    
    #缓存实现类型,不配默认为内嵌RocksDB(type = default)实现,可配置为redis(type = redis)实现(需要配置spring.redisson.address等参数)和 JDK 内置对象实现(type = jdk),
    cache.type =  ${KK_CACHE_TYPE:jdk}
    #redis连接,只有当cache.type = redis时才有用
    spring.redisson.address = ${KK_SPRING_REDISSON_ADDRESS:127.0.0.1:6379}
    spring.redisson.password = ${KK_SPRING_REDISSON_PASSWORD:123456}
    #缓存是否自动清理 true 为开启,注释掉或其他值都为关闭
    cache.clean.enabled = ${KK_CACHE_CLEAN_ENABLED:true}
    #缓存自动清理时间,cache.clean.enabled = true时才有用,cron表达式,基于Quartz cron
    cache.clean.cron = ${KK_CACHE_CLEAN_CRON:0 0 3 * * ?}
    
    #######################################可在运行时动态配置#######################################
    #提供预览服务的地址,默认从请求url读,如果使用nginx等反向代理,需要手动设置
    #base.url = https://file.keking.cn
    base.url = ${KK_BASE_URL:default}
    
    #信任站点,多个用','隔开,设置了之后,会限制只能预览来自信任站点列表的文件,默认不限制
    #trust.host = file.keking.cn,kkfileview.keking.cn
    trust.host = ${KK_TRUST_HOST:default}
    
    #是否启用缓存
    cache.enabled = ${KK_CACHE_ENABLED:true}
    
    #文本类型,默认如下,可自定义添加
    simText = ${KK_SIMTEXT:txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd}
    #多媒体类型,默认如下,可自定义添加
    media = ${KK_MEDIA:mp3,wav,mp4,flv}
    #office类型文档(word ppt)样式,默认为图片(image),可配置为pdf(预览时也有按钮切换)
    office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:image}
    #是否禁止下载转换生成的pdf文件
    pdf.download.disable = ${KK_PDF_DOWNLOAD_DISABLE:true}
    
    #预览源为FTP时 FTP用户名,可在ftp url后面加参数ftp.username=ftpuser指定,不指定默认用配置的
    ftp.username = ${KK_FTP_USERNAME:ftpuser}
    #预览源为FTP时 FTP密码,可在ftp url后面加参数ftp.password=123456指定,不指定默认用配置的
    ftp.password = ${KK_FTP_PASSWORD:123456}
    #预览源为FTP时, FTP连接默认ControlEncoding(根据FTP服务器操作系统选择,Linux一般为UTF-8,Windows一般为GBK),可在ftp url后面加参数ftp.control.encoding=UTF-8指定,不指定默认用配置的
    ftp.control.encoding = ${KK_FTP_CONTROL_ENCODING:UTF-8}
    
    #水印内容
    #例:watermark.txt = ${WATERMARK_TXT:凯京科技内部文件,严禁外泄}
    #如需取消水印,内容设置为空即可,例:watermark.txt = ${WATERMARK_TXT:}
    watermark.txt = ${WATERMARK_TXT:}
    #水印x轴间隔
    watermark.x.space = ${WATERMARK_X_SPACE:10}
    #水印y轴间隔
    watermark.y.space = ${WATERMARK_Y_SPACE:10}
    #水印字体
    watermark.font = ${WATERMARK_FONT:微软雅黑}
    #水印字体大小
    watermark.fontsize = ${WATERMARK_FONTSIZE:18px}
    #水印字体颜色
    watermark.color = ${WATERMARK_COLOR:black}
    #水印透明度,要求设置在大于等于0.005,小于1
    watermark.alpha = ${WATERMARK_ALPHA:0.2}
    #水印宽度
    watermark.width = ${WATERMARK_WIDTH:180}
    #水印高度
    watermark.height = ${WATERMARK_HEIGHT:80}
    #水印倾斜度数,要求设置在大于等于0,小于90
    watermark.angle = ${WATERMARK_ANGLE:10}
    

    默认文件路径在打包根路径下的file目录下,file.dir参数调节

    默认清除缓存时间为一天

3、使用方法

代码调用

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(url));

完整链接

http://ip:8012/onlinePreview?url=http://ip:8012/+(子目录)+文件名

使用示例

application.properties配置文件

#访问文档路径
file.dir = /root/

文档存储路径

[root@localhost fileTest]# pwd
/root/fileTest
[root@localhost fileTest]# ll
总用量 2312
-rw-r--r--. 1 root root 2366545 11月  4 18:46 test.pdf

`

文档存储路径

[root@localhost fileTest]# pwd
/root/fileTest
[root@localhost fileTest]# ll
总用量 2312
-rw-r--r--. 1 root root 2366545 11月  4 18:46 test.pdf

文档预览_第1张图片

你可能感兴趣的:(文档预览)