Compare commits

...

145 Commits
v2.0 ... test

Author SHA1 Message Date
chenkailing
0ae70f83d7 修复导包错误以及图片预览bug 2020-12-27 19:18:16 +08:00
chenkailing
f530f441d5 更新版本到3.3.0 2020-12-27 16:54:30 +08:00
chenkailing
10160e8104 添加2020年最后的发版信息 2020-12-27 16:42:03 +08:00
chenkailing
602e80ee9e 独立flv文件预览实现 2020-12-27 15:17:35 +08:00
chenkailing
9c83860e1b 抽象通用的预览异常接口实现 2020-12-27 14:48:07 +08:00
chenkailing
1f1970232b 精简util模块,ReturenResponse重构 2020-12-27 14:07:46 +08:00
chenkailing
594bd895ec 修复压缩包里文件再次预览失败的bug 2020-12-27 12:38:05 +08:00
chenkailing
486c09b24a 文件url采用base64加encodeURI双重编码,彻底解决各种奇葩文件名导致的下载异常 2020-12-27 01:46:12 +08:00
chenkailing
aaf396fbc8 忽略log目录 2020-12-26 19:28:45 +08:00
chenkailing
4e01d6f5f3 忽略file目录 2020-12-26 19:23:00 +08:00
chenkailing
342c391a9b 引入cpdetector解决文件编码识别问题 2020-12-26 19:23:00 +08:00
chenkailing
f2d929e6fa 修改Dockerfile跟随模块变动 2020-12-26 17:42:40 +08:00
chenkailing
41cdc227b3 调整项目模块,jodconverter-core重命名为office-plugin。jdocnverter-web重命名为server 2020-12-26 17:42:40 +08:00
chenkailing
0f4f1d580b 1、抽象整理FileType的获取逻辑
2、合理设置预览消费队列的线程数
2020-12-26 16:44:57 +08:00
chenkailing
37c37868a3 Office组件启动异步化,提速应用启动速度到5秒内 2020-12-26 02:32:42 +08:00
chenkailing
01218e4a5c 设置pdfbox兼容低版本jdk 2020-12-26 02:11:29 +08:00
chenkailing
f6d54902e9 移除tomcat,采用jetty Server 2020-12-26 02:03:45 +08:00
chenkailing
5a559aa868 修复图片预览bug,移除guava 2020-12-26 01:53:30 +08:00
chenkailing
9b0f381c06 1.office预览图片模式禁用图片放大效果,达到图片和pdf预览效果一致的体验 2020-12-26 01:00:20 +08:00
kl
c1802b2487 预览逻辑重构 2020-12-26 01:00:20 +08:00
kl
d4b11a4056 优化文本类型预览逻辑 2020-12-25 21:03:19 +08:00
kl
da1553920b 增强了xml的预览效果 2020-12-25 20:44:59 +08:00
kl
d787813bc6 新增配置项office.preview.switch.disabled,控制offic文件预览切换开关 2020-12-25 18:21:15 +08:00
dependabot[bot]
4a3886e41a Bump xstream from 1.4.6 to 1.4.15 in /jodconverter-web
Bumps [xstream](https://github.com/x-stream/xstream) from 1.4.6 to 1.4.15.
- [Release notes](https://github.com/x-stream/xstream/releases)
- [Commits](https://github.com/x-stream/xstream/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-25 17:01:12 +08:00
kl
cf1f833d60 新增markdown格式预览支持 2020-12-25 17:00:15 +08:00
陈精华
cb21952155 !19 兼容本地绝对路径文件获取(win、linux)
Merge pull request !19 from zhangxiaoxiao/master
2020-12-10 14:11:06 +08:00
gitchenjh
3498df0491 Merge pull request #159 from gitchenjh/master
添加QQ群-2群
2020-12-10 12:12:46 +08:00
陈精华
e3ebf1979f 添加QQ群-2群 2020-12-10 12:10:19 +08:00
13540823418
fb09a8c00f 兼容本地绝对路径文件读取,采用file标准协议读取文件 2020-12-10 11:47:22 +08:00
13540823418
4c708f3cbd 兼容本地绝对路径文件读取 2020-12-06 01:38:16 +08:00
kailing
e1035510df !16 修复部分乱码问题
Merge pull request !16 from 隔壁邻居王师傅/N/A
2020-08-31 13:49:53 +08:00
隔壁邻居王师傅
c466d0399c 修复部分乱码问题
由于复制winodws字库会导致run异常,可以直接安装相关中文字库来解决
2020-08-17 11:58:46 +08:00
陈精华
8b33a233dd !15 2.2.1版
Merge pull request !15 from 陈精华/master
2020-08-11 17:49:37 +08:00
陈精华
9e2962bb62 2.2.1版 2020-08-11 10:42:25 +08:00
陈精华
fc73deb3fd 修复上传到demo中的压缩文件及pdf预览异常 2020-08-11 10:42:01 +08:00
陈精华
40ac4b1eb9 !14 2.2.1迭代
Merge pull request !14 from 陈精华/master
2020-06-09 16:42:56 +08:00
陈精华
3d6da5f5a0 预览接口同时支持get和post请求,重新提交gitignore影响的目录文件 2020-06-09 16:35:11 +08:00
陈精华
7c4fc42247 2.2.1迭代,docker镜像底层使用ubuntu 2020-06-09 16:22:00 +08:00
陈精华
0c2a92080e !13 【开源贡献活动】修复电子发票预览图片方式正常pdf预览出现文字缺失异常 #I1I5SZ
Merge pull request !13 from 点蚊子熏烟/master
2020-06-08 14:07:36 +08:00
chenheng
b1fd13bcbb 【开源贡献活动】解决maven打包导致pdf.js bcmap异常问题,升级pdf.js到最新版本2.4.567 2020-06-05 16:34:59 +08:00
lidan
cd37ff4b41 支持 SimText 原样格式输出 2020-06-01 10:22:42 +08:00
陈精华
215e9f0f4a 2.2.0版 2020-05-20 08:44:30 +08:00
陈精华
26e147b426 更新文档&细节调整 2020-05-20 08:44:30 +08:00
陈精华
c7318c2b17 优化:PDF文件下载缓存 2020-05-20 08:44:30 +08:00
陈精华
c16116c7cd 优化:视频文件预览支持FTP 2020-05-20 08:44:30 +08:00
陈精华
1a4748bbec 优化:url特殊字符相关处理 2020-05-20 08:44:30 +08:00
陈精华
c0f7d60213 新增:更新日志 2020-05-18 15:55:26 +08:00
陈精华
bf83a0847d 优化:构建镜像使用阿里云yum源,加速构建 2020-05-18 15:55:26 +08:00
陈精华
7601d49795 修复:允许URL中出现|{}等字符,解决The valid characters are defined in RFC 7230 and RFC 3986问题 2020-05-18 15:55:26 +08:00
陈精华
1edf4d83f1 优化:重构代码 2020-05-18 15:55:26 +08:00
陈精华
f620c00785 优化:首页评论切换到Gitalk 2020-05-18 15:55:26 +08:00
陈精华
180e7bcb8a 优化:重构大量代码,修复异常 2020-05-18 15:55:26 +08:00
陈精华
8a52450629 优化:去除一种文件只允许上传一个提示 2020-05-18 15:55:26 +08:00
陈精华
a535ebfe1d 新功能点:新增配置是否可以下载转换完成的pdf文件 2020-05-18 15:55:26 +08:00
陈精华
3e80590a82 优化:默认启动水印 2020-05-18 15:55:26 +08:00
陈精华
5196536bb4 修复:修复预览ftp时,图片图片、pdf预览异常 2020-05-18 15:55:26 +08:00
陈精华
59ac8effc1 优化:添加日志 2020-05-18 15:55:26 +08:00
陈精华
9cc0267619 优化:允许上传多个同一类型文件 2020-05-18 15:55:26 +08:00
陈精华
a21f35c2b0 修复:删除文件时,也删除文件夹 2020-05-18 15:55:26 +08:00
陈精华
fde31cb327 新功能点:支持全局水印 2020-05-18 15:55:26 +08:00
陈精华
9c096605bb 修复:修复TrustHost静态注入问题 2020-05-18 15:55:26 +08:00
陈精华
b90e326eec 优化:移除localBaseUrl 2020-05-18 15:55:26 +08:00
陈精华
66e2acd063 优化:图片预览背景颜色和office相关预览背景颜色统一 2020-05-12 11:08:02 +08:00
陈精华
44165d655d 优化:修改历史遗留容易造成误解的方法名 2020-05-12 11:08:02 +08:00
陈精华
c9a6956b0d 优化:将前端所有CDN依赖放到本地,方便没有外网连接的用户使用 2020-05-12 11:08:02 +08:00
陈精华
9288564195 优化:去除pom文件多余properties 2020-05-12 11:08:02 +08:00
telami
9b8e7f812c 修复:预览图片时,点击周围会出现白屏 2020-05-07 09:03:40 +08:00
telami
3908f1be7e 修复:需求https://gitee.com/kekingcn/file-online-preview/issues/I14D4X,当使用nginx做代理时,配置了content-path和baseUrl时,访问view.html和getCorsFile会出现404 2020-04-29 09:04:37 +08:00
telami
15bd035304 修复:需求https://gitee.com/kekingcn/file-online-preview/issues/I14D4X,当使用nginx做代理时,配置了content-path和baseUrl时,访问view.html和getCorsFile会出现404 2020-04-29 09:04:37 +08:00
陈精华
e0b1cd76ca 修复:addTask异常 2020-04-14 11:22:07 +08:00
陈精华
2144b776b1 【新特性】支持限制预览源站点,保护预览服务不被滥用 2020-02-19 10:40:15 +08:00
陈精华
a8022df1d9 部分页面移动端样式 2020-02-19 10:40:15 +08:00
kl
a5d92bf905 Update .gitattributes 2020-02-10 15:51:43 +08:00
kl
81a18d07c3 Create .gitattributes 2020-02-10 15:47:24 +08:00
dependabot[bot]
86e5dcb23b Bump commons-compress from 1.18 to 1.19 in /jodconverter-web
Bumps commons-compress from 1.18 to 1.19.

Signed-off-by: dependabot[bot] <support@github.com>
2019-11-29 16:57:25 +08:00
陈精华
1339c09382 优化:调整异常页面提示文案 2019-11-29 16:52:58 +08:00
陈精华
01e310a6e7 优化:预览URL特殊字体使用Hutool解决方案 2019-11-29 16:52:58 +08:00
陈精华
a07c962867 优化:Office组件运行状态检测 2019-11-29 16:52:58 +08:00
陈精华
09b6964c0e 脚本:使用kkFileView站点下载OpenOffice安装文件,加速国内用户构建Docker镜像 2019-11-29 16:52:58 +08:00
陈精华
461030d34f 构建脚本:编译时包含本地jar依赖 2019-11-21 18:19:52 +08:00
陈精华
c1a7cd8c46 新功能点,加入CAD图纸.dwg文件预览 2019-11-21 17:11:36 +08:00
陈精华
5888c56f1d 优化:异常处理、异常提示 2019-11-21 17:11:36 +08:00
陈精华
0798b8d8a0 优化:删除无用代码、页面加header 2019-11-21 17:11:36 +08:00
陈精华
ae93d48b44 配置:默认指定缓存实现为JDK实现 2019-11-21 17:11:36 +08:00
陈精华
506a3ba2b3 优化:服务器无法通过外网访问本地下载时,使用内网IP下载 2019-11-21 17:11:36 +08:00
陈精华
12f197b623 构建脚本:使用kkFileView站点下载OpenOffice安装文件,加速国内用户构建Docker镜像 2019-11-21 17:11:36 +08:00
陈精华
2001b241ee 运行环境:CentOS预先安装OpenOffice相关依赖 2019-11-21 17:11:36 +08:00
陈精华
7911edec4b 修复:文本文档首次预览后缓存文件未清理问题 2019-11-06 16:53:39 +08:00
陈精华
7ea70bf422 优化:图片模式下图片url使用baseUrl 2019-11-06 16:53:39 +08:00
陈精华
b1fdbd26a3 新功能点:全部能识别的纯文本直接预览,不用再转跳下载(.md、.java、.py等浏览器不认识的后缀名) 2019-10-25 15:16:25 +08:00
陈精华
fa7241bd4e 新功能点:所有配置项支持从环境变量里读取,方便Docker镜像部署 2019-10-25 15:16:25 +08:00
陈精华
8fdf462c6c 新功能点:缓存清理时间cron表达式支持自定义 link #I1147X 2019-10-25 15:16:25 +08:00
陈精华
f7c7411bcf fixup! 优化:目录调整,符合maven规范;maven编译指定.sh脚本换行符为unix换行 2019-10-25 15:16:25 +08:00
陈精华
845cb2e657 修复:参数包含特殊字符时url解码失败 2019-10-25 15:16:25 +08:00
陈精华
a4bfde68bd 优化:目录调整,符合maven规范;maven编译指定.sh脚本换行符为unix换行 2019-10-25 15:16:25 +08:00
陈精华
19d1ba6cf9 优化:(内部)移除为pdf文档提供base64缩略图 2019-10-25 15:16:25 +08:00
陈精华
1060bdd00f 新功能点:支持base url配置(主要用于nginx反向代理等) 2019-10-17 11:36:43 +08:00
陈精华
8c2fb2bdee 优化:默认启用缓存 2019-10-17 11:36:43 +08:00
陈精华
0fe75387eb 优化:启动脚本加入官网链接,点star推广等文案 close #I1148F 2019-09-16 11:49:49 +08:00
陈精华
fbea49e54f 优化:加入查看日志脚本 2019-09-16 11:49:49 +08:00
陈精华
41a72798d9 优化:去除可能导致文件不更新的缓存 2019-09-16 11:49:49 +08:00
陈精华
03cc185085 修复:压缩包中文件名有空格异常 2019-09-16 11:49:49 +08:00
陈精华
bfbd8ee25e 新功能点:(内部)为pdf文档提供base64缩略图 2019-09-10 18:24:06 +08:00
陈精华
f3f36169ff 优化:压缩文件名支持有特殊字符 2019-09-10 18:24:06 +08:00
陈精华
2df88544d3 修复:macOS下office组件默认路径错误 2019-09-10 18:24:06 +08:00
陈精华
6b744d77c7 修复:RocksDB缓存实现压缩包图片url缓存失效 2019-09-10 18:24:06 +08:00
doras
ba57dedebb "加入是否启用缓存配置项"后,excel转成的html文件不再转换编码,修复因此出现的乱码问题 2019-08-26 11:17:37 +08:00
陈精华
affd5b3057 图片和pdf预览模式切换按钮大小调整 2019-08-23 18:18:37 +08:00
陈精华
30c3128995 修复压缩文件中文fileKey未编码 link #I111PD 2019-08-23 18:18:37 +08:00
陈精华
b003a05775 加入是否启用缓存配置项 2019-08-23 18:18:37 +08:00
陈精华
98ec3d7dab 首页预览打开新页面 2019-08-23 18:18:37 +08:00
陈精华
69e23dbb99 shutdown脚本更新 2019-08-23 18:18:37 +08:00
陈精华
47bda1023a 修复Chrome76+删除弹出新窗口 2019-08-23 18:18:37 +08:00
陈精华
fd538a74af 中文语言环境 2019-08-23 18:18:37 +08:00
陈精华
300d213a7a cdn资源不指定http/https 2019-08-23 18:18:37 +08:00
陈精华
4c0a70f300 2.2.0迭代 2019-08-23 18:18:37 +08:00
陈精华
8798d344b6 2.1.2版 2019-07-30 16:31:53 +08:00
陈精华
63e62ab57b pdf.js使用里面一个bug 2019-07-30 16:31:53 +08:00
陈精华
9a027674ac 演示首页兼容IE 2019-07-30 16:31:53 +08:00
1045485954@qq.com
e4407467dd IE兼容性问题,目前已兼容到IE9 2019-07-17 09:03:32 +08:00
陈精华
551eeb0390 2.1.1版 2019-07-09 10:46:21 +08:00
陈精华
11d6ad1ed3 修复文件下载流URL参数中包含中文URL编码不正确导致HTTP-400异常 2019-07-09 10:46:21 +08:00
陈精华
e57db6925c 修复config.js 404问题 2019-07-09 10:46:21 +08:00
陈精华
87096364d8 首页示例修改、首页更新记录 2019-07-09 10:46:21 +08:00
陈精华
ad8027a7d0 2.1.1迭代 2019-07-09 10:46:21 +08:00
陈精华
9786fa8275 2.1.0版 2019-06-19 15:24:24 +08:00
陈精华
37762cf034 支持FTP文件地址作为预览源url 2019-06-19 15:24:24 +08:00
陈精华
a78f1e5f8e Docker构建 2019-06-19 15:24:24 +08:00
陈精华
440b8030e0 新增Docker构建 2019-06-19 15:24:24 +08:00
陈精华
fb7cdfbef7 支持http/https文件流作为预览源url 2019-06-19 15:24:24 +08:00
陈精华
cf1ee9c631 支持自动清理预览文件及缓存 2019-06-19 15:24:24 +08:00
陈精华
13123f8f9d addTask转码优化 2019-06-19 15:24:24 +08:00
陈精华
189bc3965d 2.1.0迭代 2019-06-19 15:24:24 +08:00
kl
0aa7444dba Update pom.xml 2019-05-30 09:08:08 +08:00
陈精华
628efec6bd 2.0.2版 2019-05-23 09:53:37 +08:00
陈精华
6d0846a551 修复rocksdb缓存只缓存一条数据问题 2019-05-23 09:53:37 +08:00
陈精华
41d9015023 支持flv视频预览 2019-05-23 09:53:37 +08:00
陈精华
3f40b60c64 支持7z文件预览 2019-05-23 09:53:37 +08:00
陈精华
f244054462 优化读取动态配置 2019-05-23 09:53:37 +08:00
陈精华
37fbc98827 2.0.2迭代 2019-05-23 09:53:37 +08:00
陈精华
795cf3393e 2.0.1版 2019-05-09 15:20:15 +08:00
陈精华
70323b8ee3 pdf预览支持url中有中文或特殊字符 2019-05-09 15:20:15 +08:00
陈精华
67686e99f0 修复excel预览网页乱码问题 2019-05-09 15:20:15 +08:00
陈精华
90554462dc pdf默认预览模式也从配置文件中取,和word ppt统一 2019-05-09 15:20:15 +08:00
kl
ba3084d698 Update README.md 2019-05-09 09:18:54 +08:00
4425 changed files with 170270 additions and 80593 deletions

5
.gitattributes vendored Normal file
View File

@@ -0,0 +1,5 @@
*.css linguist-language=java
*.less linguist-language=java
*.js linguist-language=java
*.html linguist-language=java
*.* linguist-language=java

20
.gitignore vendored
View File

@@ -24,17 +24,9 @@ nbdist/
.nb-gradle/
/*.iml
**/target/
.classpath
.project
**/.settings
**/build/
**/.externalToolBuilders/
*.iml
**/.idea/
**/disconf
**/rpc.properties
/producer/tmp
/.temfile
.temfile
convertedFile/
### VS Code ###
.vscode/
server/src/main/cache/
server/src/main/file/
server/src/main/log

32
Dockerfile Normal file
View File

@@ -0,0 +1,32 @@
FROM ubuntu:20.04
MAINTAINER chenjh "842761733@qq.com"
ADD server/target/kkFileView-*.tar.gz /opt/
COPY fonts/* /usr/share/fonts/chienes/
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse\ndeb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse\ndeb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse" > /etc/apt/sources.list &&\
apt-get clean && apt-get update &&\
apt-get install -y locales && apt-get install -y language-pack-zh-hans &&\
localedef -i zh_CN -c -f UTF-8 -A /usr/share/locale/locale.alias zh_CN.UTF-8 && locale-gen zh_CN.UTF-8 &&\
apt-get install -y tzdata && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
apt-get install -y libxrender1 && apt-get install -y libxt6 && apt-get install -y libxext-dev && apt-get install -y libfreetype6-dev &&\
apt-get install -y wget && apt-get install -y ttf-mscorefonts-installer && apt-get install -y fontconfig &&\
apt-get install ttf-wqy-microhei &&\
apt-get install ttf-wqy-zenhei &&\
apt-get install xfonts-wqy &&\
cd /tmp &&\
wget https://kkfileview.keking.cn/server-jre-8u251-linux-x64.tar.gz &&\
wget https://kkfileview.keking.cn/Apache_OpenOffice_4.1.6_Linux_x86-64_install-deb_zh-CN.tar.gz -cO openoffice_deb.tar.gz &&\
tar -zxf /tmp/server-jre-8u251-linux-x64.tar.gz && mv /tmp/jdk1.8.0_251 /usr/local/ &&\
tar -zxf /tmp/openoffice_deb.tar.gz && cd /tmp/zh-CN/DEBS &&\
dpkg -i *.deb && dpkg -i desktop-integration/openoffice4.1-debian-menus_4.1.6-9790_all.deb &&\
rm -rf /tmp/* && rm -rf /var/lib/apt/lists/* &&\
cd /usr/share/fonts/chienes &&\
mkfontscale &&\
mkfontdir &&\
fc-cache -fv
ENV JAVA_HOME /usr/local/jdk1.8.0_251
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
ENV KKFILEVIEW_BIN_FOLDER /opt/kkFileView-3.3.0/bin
ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider","-Dspring.config.location=/opt/kkFileView-3.3.0/config/application.properties","-jar","/opt/kkFileView-3.3.0/bin/kkFileView-3.3.0.jar"]

View File

@@ -16,14 +16,19 @@ special thanks to the supports of @唐老大 and the contributions of @端木详
- REST API
- Abstract file preview interface so that it is easy to extend more file extensions and develop this project on your own
### Official website and DOCS
URL[https://kkfileview.keking.cn](https://kkfileview.keking.cn)
### Live demo
> Please treat public service kindly, or this would stop at any time.
URLhttp://file.keking.cn/
URL[https://file.keking.cn](https://file.keking.cn)
### Documentation
1. Full wiki documenthttps://gitee.com/kekingcn/file-online-preview/wikis/pages
1. 中文文档https://gitee.com/kekingcn/file-online-preview/blob/master/README.md
1. English documenthttps://github.com/kekingcn/kkFileView/blob/master/README.en.md
1. English documenthttps://gitee.com/kekingcn/file-online-preview/blob/master/README.en.md
### Contact us && Join us
> We will answer everyone's questions in use of this project.
@@ -34,20 +39,62 @@ Cherish life away from ineffective communication.
QQ group613025121
### Pictures for some samples
> Excel
#### 1. Text Preview
It supports preview of all types of text documents. Because there are too many types of text documents, it is impossible to enumerate them. The default open types are as follows: txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd
The text preview effect is as follows
![text](https://kkfileview.keking.cn/img/preview/preview-text.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/093051_cd55b3ec_492218.png "屏幕截图.png")
> doc
#### 2. Picture preview
Support jpg, jpeg, png, gif and other picture previews (flip, zoom, mirror). The preview effect is as follows
![image](https://kkfileview.keking.cn/img/preview/preview-image.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/092350_5b2ecbe5_492218.png "屏幕截图.png")
#### 3. Word document preview
Doc and docx document previews are supported. There are two modes of word previews: one is that each page of word is converted to picture previews, the other is that the whole word document is converted to PDF, and then previews PDF. The applicable scenarios of the two modes are as follows
* Picture preview modes: the word file is large, and the whole PDF loaded in the foreground is too slow
* Pdf Preview modes: intranet access, loading PDF fast
The preview effect of picture preview mode is as follows
![word1](https://kkfileview.keking.cn/img/preview/preview-doc-image.png)
The preview effect of PDF preview mode is as follows
![word2](https://kkfileview.keking.cn/img/preview/preview-doc-pdf.png)
> zip,rar
#### 4. PPT document preview
ppt and pptx document preview are supported. Like word documents, there are two preview modes
The preview effect of picture preview mode is as follows
![ppt1](https://kkfileview.keking.cn/img/preview/preview-ppt-image.png)
The preview effect of PDF preview mode is as follows
![ppt2](https://kkfileview.keking.cn/img/preview/preview-ppt-pdf.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/093806_46cede06_492218.png "屏幕截图.png")
#### 5. PDF document preview
Pdf document preview is supported. Like word document, there are two preview modes
The preview effect of picture preview mode is as follows
![pdf1](https://kkfileview.keking.cn/img/preview/preview-pdf-image.png)
The preview effect of PDF preview mode is as follows
![pdf2](https://kkfileview.keking.cn/img/preview/preview-pdf-pdf.png)
> png,jpeg,jpg,etc., support for zooming with mouse scroll, rotation, inversion,etc.
#### 6. EXCEL document preview
Support XLS, xlsx document preview, the preview effect is as follows
![excel](https://kkfileview.keking.cn/img/preview/preview-xls.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/094335_657a6f60_492218.png "屏幕截图.png")
#### 7. Compressed file Preview
Support zip, rar, jar, tar, gzip and other compressed packages. The preview effect is as follows
![compress1](https://kkfileview.keking.cn/img/preview/preview-zip.png)
Click the file name in the compressed package to preview the file directly. The preview effect is as follows
![compress2](https://kkfileview.keking.cn/img/preview/preview-zip-inner.png)
#### 8. Multimedia file Preview
Theoretically, all video and audio files are supported. Since all file formats cannot be enumerated, the default open type is as follows
mp3,wav,mp4,flv
The video preview effect is as follows
![media1](https://kkfileview.keking.cn/img/preview/preview-video.png)
The audio preview effect is as follows
![media2](https://kkfileview.keking.cn/img/preview/preview-audio.png)
#### 9. CAD document preview
CAD DWG document preview is supported. Like word document, there are two preview modes
The preview effect of Picture preview mode is as follows
![cad1](https://kkfileview.keking.cn/img/preview/preview-cad-image.png)
The preview effect of PDF preview mode is as follows
![cad2](https://kkfileview.keking.cn/img/preview/preview-cad-pdf.png)
Considering space issues, the pictures of other types of documents will not be shown here.You can deploy it by yourself if you are interested in our project.There is a way to deploy it as below.
### Quick Start
@@ -58,25 +105,38 @@ Considering space issues, the pictures of other types of documents will not be s
- Jodconverter
> Dependencies
- Redis(Optional, Unnecessary by default)
- OpenOffice or LibreOffice
- OpenOffice or LibreOffice(Integrated on Windows, will be installed automatically on Linux, need to be manually installed on Mac OS)
1. First step`git pull https://github.com/kekingcn/file-online-preview.git`
2. Second stepconfigure redis address and OpenOffice directorysuch as
```
##The folder for files which are uploaded to the server(Because of running as jar)
file.dir = C:\\Users\\yudian\\Desktop\\dev\\
## openoffice configuration
office.home = C:\\Program Files (x86)\\OpenOffice 4
```
'file.dir' is the real storage address of the converted files, please end with '/'.
3. Third stepRun the main method of FilePreviewApplication.java.After starting,visit `http://localhost:8012/`.
2. Third stepRun the main method of FilePreviewApplication.java.After starting,visit `http://localhost:8012/`.
If everything is ok,you will see the picture below.
![输入图片说明](https://gitee.com/uploads/images/2017/1213/100221_ea15202e_492218.png "屏幕截图.png")
### Changelog
> May 20th 2020
1. Support for global watermark and dynamic change of watermark content through parameters
2. Support for CAD file Preview
3. Add configuration item base.url, support using nginx reverse proxy and set context-path
4. All configuration items can be read from environment variables, which is convenient for docker image deployment and large-scale use in cluster
5. Support the configuration of TrustHost (only the file source from the trust site can be previewed), and protect the preview service from abuse
6. Support configuration of customize cache cleanup time (cron expression)
7. All recognizable plain text can be previewed directly without downloading, such as .md .java .py, etc
8. Support configuration to limit PDF file download after conversion
9. Optimize Maven packaging configuration to solve the problem of line break in .sh script
10. Place all CDN dependencies on the front end locally for users without external network connection
11. Comment Service on home page switched from Sohu ChangYan to gitalk
12. Fixed preview exceptions that may be caused by special characters in the URL
13. Fixed the addtask exception of the transformation file queue
14. Fixed other known issues
15. Official website build: [https://kkfileview.keking.cn](https://kkfileview.keking.cn)
16. Official docker image repository build: [https://hub.docker.com/r/keking/kkfileview](https://hub.docker.com/r/keking/kkfileview)
> June 18th 2019
1. Support automatic cleaning of cache and preview files
2. Support http/https stream url file preview
3. Support FTP url file preview
4. Add Docker build
> April 8th 2019
1. Cache and queue implementations abstract, providing JDK and REDIS implementations (REDIS becomes optional dependencies)

132
README.md
View File

@@ -2,7 +2,7 @@
此项目为文件文档在线预览项目解决方案对标业内付费产品有[永中office](http://dcs.yozosoft.com/)】【[office365](http://www.officeweb365.com/)】【[idocv](https://www.idocv.com/)】等在取得公司高层同意后以Apache协议开源出来反哺社区在此特别感谢@唐老大的支持以及@端木详笑的贡献。该项目使用流行的spring boot搭建易上手和部署基本支持主流办公文档的在线预览如doc,docx,Excel,pdf,txt,zip,rar,图片等等
### 项目特性
1. 支持officepdf等办公文档
1. 支持officepdf, cad等办公文档
1. 支持txt,java,php,py,md,js,css等所有纯文本
1. 支持zip,rar,jar,tar,gzip等压缩包
1. 支持jpgjpegpnggif等图片预览翻转缩放镜像
@@ -11,36 +11,84 @@
1. 抽象预览服务接口方便二次开发非常方便添加其他类型文件预览支持
1. 最最重要Apache协议开源代码pull下来想干嘛就干嘛
### 官网及文档
地址[https://kkfileview.keking.cn](https://kkfileview.keking.cn)
### 在线体验
> 请善待公共服务会不定时停用
地址http://file.keking.cn/
地址[https://file.keking.cn](https://file.keking.cn)
### 项目文档Project documentation
1. 详细wiki文档https://gitee.com/kekingcn/file-online-preview/wikis/pages
1. 中文文档https://gitee.com/kekingcn/file-online-preview/blob/master/README.md
1. English documenthttps://github.com/kekingcn/kkFileView/blob/master/README.en.md
1. English documenthttps://gitee.com/kekingcn/file-online-preview/blob/master/README.en.md
### 联系我们加入组织
> 我们会用心回答解决大家在项目使用中的问题也请大家在提问前至少Google或baidu过珍爱生命远离无效的交流沟通
![输入图片说明](https://gitee.com/uploads/images/2017/1219/173717_934cb068_492218.png "屏幕截图.png")
QQ群号613025121
![](./doc/KK开源技术交流2群群聊二维码.png)
QQ群号~~613025121(已满)~~ 2群484680571
### 文档预览效果
> Excel预览效果
#### 1. 文本预览
支持所有类型的文本文档预览 由于文本文档类型过多无法全部枚举默认开启的类型如下 txt,html,htm,asp,jsp,xml,json,properties,md,gitignore,log,java,py,c,cpp,sql,sh,bat,m,bas,prg,cmd
文本预览效果如下
![文本预览效果如下](https://kkfileview.keking.cn/img/preview/preview-text.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/093051_cd55b3ec_492218.png "屏幕截图.png")
> doc预览效果
#### 2. 图片预览
支持jpgjpegpnggif等图片预览翻转缩放镜像预览效果如下
![图片预览](https://kkfileview.keking.cn/img/preview/preview-image.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/092350_5b2ecbe5_492218.png "屏幕截图.png")
#### 3. word文档预览
支持docdocx文档预览word预览有两种模式一种是每页word转为图片预览另一种是整个word文档转成pdf再预览pdf两种模式的适用场景如下
* 图片预览word文件大前台加载整个pdf过慢
* pdf预览内网访问加载pdf快
图片预览模式预览效果如下
![word文档预览1](https://kkfileview.keking.cn/img/preview/preview-doc-image.png)
pdf预览模式预览效果如下
![word文档预览2](https://kkfileview.keking.cn/img/preview/preview-doc-pdf.png)
> zip,rar压缩预览效果
#### 4. ppt文档预览
支持pptpptx文档预览和word文档一样有两种预览模式
图片预览模式预览效果如下
![ppt文档预览1](https://kkfileview.keking.cn/img/preview/preview-ppt-image.png)
pdf预览模式预览效果如下
![ppt文档预览2](https://kkfileview.keking.cn/img/preview/preview-ppt-pdf.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/093806_46cede06_492218.png "屏幕截图.png")
#### 5. pdf文档预览
支持pdf文档预览和word文档一样有两种预览模式
图片预览模式预览效果如下
![pdf文档预览1](https://kkfileview.keking.cn/img/preview/preview-pdf-image.png)
pdf预览模式预览效果如下
![pdf文档预览2](https://kkfileview.keking.cn/img/preview/preview-pdf-pdf.png)
> png,jpeg,jpg等图片预览效果支持滚轮缩放旋转倒置等
#### 6. excel文档预览
支持xlsxlsx文档预览预览效果如下
![excel文档预览](https://kkfileview.keking.cn/img/preview/preview-xls.png)
![输入图片说明](https://gitee.com/uploads/images/2017/1213/094335_657a6f60_492218.png "屏幕截图.png")
#### 7. 压缩文件预览
支持zip,rar,jar,tar,gzip等压缩包预览效果如下
![压缩文件预览1](https://kkfileview.keking.cn/img/preview/preview-zip.png)
可点击压缩包中的文件名直接预览文件预览效果如下
![压缩文件预览2](https://kkfileview.keking.cn/img/preview/preview-zip-inner.png)
#### 8. 多媒体文件预览
理论上支持所有的视频音频文件由于无法枚举所有文件格式默认开启的类型如下
mp3,wav,mp4,flv
视频预览效果如下
![多媒体文件预览1](https://kkfileview.keking.cn/img/preview/preview-video.png)
音频预览效果如下
![多媒体文件预览2](https://kkfileview.keking.cn/img/preview/preview-audio.png)
#### 9. CAD文档预览
支持CAD dwg文档预览和word文档一样有两种预览模式
图片预览模式预览效果如下
![cad文档预览1](https://kkfileview.keking.cn/img/preview/preview-cad-image.png)
pdf预览模式预览效果如下
![cad文档预览2](https://kkfileview.keking.cn/img/preview/preview-cad-pdf.png)
考虑说明篇幅原因就不贴其他格式文件的预览效果了感兴趣的可以参考下面的实例搭建下
### 快速开始
@@ -51,26 +99,60 @@ QQ群号613025121
- jodconverter
> 依赖外部环境
- redis (可选默认不用)
- OpenOffice或者LibreOffice
- OpenOffice或者LibreOffice(Windows下已内置Linux会自动安装Mac OS下需要手动安装)
1. 第一步pull项目https://github.com/kekingcn/file-online-preview.git
2. 第二步配置OpenOffice目录
```
##资源映射路径(因为jar方式运行的原因)
file.dir = C:\\Users\\yudian\\Desktop\\dev\\
## openoffice相关配置
office.home = C:\\Program Files (x86)\\OpenOffice 4
```
file.dir为转换文件实际存储地址注意要以/结尾
3. 第三步运行FilePreviewApplication的main方法服务启动后访问http://localhost:8012/
3. 第二步运行FilePreviewApplication的main方法服务启动后访问http://localhost:8012/
会看到如下界面代表服务启动成功
![输入图片说明](https://gitee.com/uploads/images/2017/1213/100221_ea15202e_492218.png "屏幕截图.png")
### 历史更新记录
> 2020年12月27日
2020年年终大版本更新架构全面设计代码全面重构代码质量全面提升二次开发更便捷欢迎拉源码品鉴提issuepr共同建设
1. 架构模块调整,大量的代码重构代码质量提升N个等级欢迎品鉴
2. 增强XML文件预览效果新增XML文档数结构预览
3. 新增markdown文件预览支持预览支持md渲染和源文本切换支持
4. 切换底层web server为jetty解决这个issuehttps://github.com/kekingcn/kkFileView/issues/168
5. 引入cpdetector解决文件编码识别问题
6. url采用base64+urlencode双编码彻底解决各种奇葩文件名预览问题
7. 新增配置项office.preview.switch.disabled控制offic文件预览切换开关
8. 优化文本类型文件预览逻辑采用Base64传输内容避免预览时再次请求文件内容
9. office预览图片模式禁用图片放大效果达到图片和pdf预览效果一致的体验
10. 直接代码静态设置pdfbox兼容低版本jdk在IDEA中运行也不会有警告提示
11. 移除guavahutool等非必须的工具包减少代码体积
12. Office组件加载异步化提速应用启动速度最快到5秒内
13. 合理设置预览消费队列的线程数
14. 修复压缩包里文件再次预览失败的bug
15. 修复图片预览的bug
> 2020年05月20日
1. 新增支持全局水印并支持通过参数动态改变水印内容
2. 新增支持CAD文件预览
3. 新增base.url配置支持使用nginx反向代理和使用context-path
4. 支持所有配置项支持从环境变量里读取方便Docker镜像部署和集群中大规模使用
5. 支持配置限信任站点只能预览来自信任点的文件源保护预览服务不被滥用
6. 支持配置自定义缓存清理时间cron表达式
7. 全部能识别的纯文本直接预览不用再转跳下载.md .java .py等
8. 支持配置限制转换后的PDF文件下载
9. 优化maven打包配置解决 .sh 脚本可能出现换行符问题
10. 将前端所有CDN依赖放到本地方便没有外网连接的用户使用
11. 首页评论服务由搜狐畅言切换到Gitalk
12. 修复url中包含特殊字符可能会引起的预览异常
13. 修复转换文件队列addTask异常
14. 修复其他已经问题
15. 官网建设[https://kkfileview.keking.cn](https://kkfileview.keking.cn)
16. 官方Docker镜像仓库建设[https://hub.docker.com/r/keking/kkfileview](https://hub.docker.com/r/keking/kkfileview)
> 2019年06月18日
1. 支持自动清理缓存及预览文件
2. 支持http/https下载流url文件预览
3. 支持FTP url文件预览
4. 加入Docker构建
> 2019年04月08日
1. 缓存及队列实现抽象提供JDK和REDIS两种实现(REDIS成为可选依赖)
2. 打包方式提供zip和tar.gz包并提供一键启动脚本

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -1,2 +0,0 @@
#!/bin/bash
kill 15 `ps -ef|grep kkFileView|awk '{print $2}'`

View File

@@ -1,7 +0,0 @@
@echo off
set "KKFILEVIEW_BIN_FOLDER=%cd%"
cd "%KKFILEVIEW_BIN_FOLDER%"
echo Using KKFILEVIEW_BIN_FOLDER %KKFILEVIEW_BIN_FOLDER%
echo Starting kkFileView...
echo Please check log file for more information
java -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dspring.config.location=..\conf\application.properties -jar kkFileView-2.0.jar -> ..\log\kkFileView.log

View File

@@ -1,39 +0,0 @@
#######################################不可动态配置需要重启生效#######################################
server.port = 8012
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=100MB
spring.http.multipart.max-file-size=100MB
#文件资源路径默认为打包根路径下的file目录下
#file.dir = D:\\kkFileview\\
#openoffice home路径
#office.home = C:\\Program Files (x86)\\OpenOffice 4
#缓存实现类型不配默认为内嵌RocksDB实现可配置为redis(type = redis)实现需要配置spring.redisson.address等参数 JDK 内置对象实现type = jdk,
#cache.type = redis
#redis连接
#spring.redisson.address = 192.168.1.204:6379
#spring.redisson.password = xxx
#######################################可在运行时动态配置#######################################
#文本类型默认如下可自定义添加
#simText = txt,html,xml,properties,md,java,py,c,cpp,sql
#多媒体类型默认如下可自定义添加
#media = mp3,wav,mp4,flv
#文件转换编码默认根据操作系统获取
#converted.file.charset = GBK
#office类型文档(word ppt)样式默认为图片(image)可配置为pdf预览时也有按钮切换
#office.preview.type = pdf

View File

@@ -1,69 +0,0 @@
package cn.keking.config;
import org.artofsolving.jodconverter.office.OfficeUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.File;
/**
* @auther: chenjh
* @time: 2019/4/10 17:22
* @description
*/
@Component
public class ConfigConstants {
private static String[] simText = {};
private static String[] media = {};
private static String convertedFileCharset;
private static String officePreviewType;
private static String fileDir = OfficeUtils.getHomePath() + File.separator + "file" + File.separator;
public static String[] getSimText() {
return simText;
}
public static void setSimText(String[] simText) {
ConfigConstants.simText = simText;
}
public static String[] getMedia() {
return media;
}
public static void setMedia(String[] media) {
ConfigConstants.media = media;
}
public static String getConvertedFileCharset() {
return convertedFileCharset;
}
public static void setConvertedFileCharset(String convertedFileCharset) {
ConfigConstants.convertedFileCharset = convertedFileCharset;
}
public static String getOfficePreviewType() {
return officePreviewType;
}
public static void setOfficePreviewType(String officePreviewType) {
ConfigConstants.officePreviewType = officePreviewType;
}
public static String getFileDir() {
return fileDir;
}
@Value("${file.dir:default}")
public void setFileDir(String fileDir) {
if (!"default".equals(fileDir)) {
if (!fileDir.endsWith(File.separator)) {
fileDir = fileDir + File.separator;
}
ConfigConstants.fileDir = fileDir;
}
}
}

View File

@@ -1,68 +0,0 @@
package cn.keking.config;
import cn.keking.service.impl.OfficeFilePreviewImpl;
import org.artofsolving.jodconverter.office.OfficeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
/**
* @auther: chenjh
* @time: 2019/4/10 16:16
* @description 每隔1s读取并更新一次配置文件
*/
@Component
public class ConfigRefreshComponent {
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigRefreshComponent.class);
public static final String DEFAULT_TXT_TYPE = "txt,html,xml,properties,md,java,py,c,cpp,sql";
public static final String DEFAULT_MEDIA_TYPE = "mp3,wav,mp4,flv";
@PostConstruct
void refresh() {
Thread configRefreshThread = new Thread(new ConfigRefreshThread());
configRefreshThread.start();
}
class ConfigRefreshThread implements Runnable {
@Override
public void run() {
try {
Properties properties = new Properties();
Properties sysProperties = System.getProperties();
String text;
String media;
String convertedFileCharset = sysProperties.getProperty("sun.jnu.encoding");
String[] textArray;
String[] mediaArray;
String officePreviewType;
String configFilePath = OfficeUtils.getCustomizedConfigPath();
while (true) {
BufferedReader bufferedReader = new BufferedReader(new FileReader(configFilePath));
properties.load(bufferedReader);
text = properties.getProperty("simText", DEFAULT_TXT_TYPE);
media = properties.getProperty("media", DEFAULT_MEDIA_TYPE);
convertedFileCharset = properties.getProperty("converted.file.charset", convertedFileCharset);
officePreviewType = properties.getProperty("office.preview.type", OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_IMAGE);
textArray = text.split(",");
mediaArray = media.split(",");
ConfigConstants.setSimText(textArray);
ConfigConstants.setMedia(mediaArray);
ConfigConstants.setConvertedFileCharset(convertedFileCharset);
ConfigConstants.setOfficePreviewType(officePreviewType);
Thread.sleep(1000L);
}
} catch (IOException | InterruptedException e) {
LOGGER.error("读取配置文件异常:{}", e);
}
}
}
}

View File

@@ -1,23 +0,0 @@
package cn.keking.filters;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
*
* @author yudian-it
* @date 2017/11/30
*/
@Configuration
public class FilterConfiguration {
@Bean
public FilterRegistrationBean getChinesePathFilter(){
ChinesePathFilter filter = new ChinesePathFilter();
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(filter);
return registrationBean;
}
}

View File

@@ -1,28 +0,0 @@
package cn.keking.model;
/**
* Created by kl on 2018/1/17.
* Content :文件类型文本office压缩包等等
*/
public enum FileType {
picture("pictureFilePreviewImpl"),
compress("compressFilePreviewImpl"),
office("officeFilePreviewImpl"),
simText("simTextFilePreviewImpl"),
pdf("pdfFilePreviewImpl"),
other("otherFilePreviewImpl"),
media("mediaFilePreviewImpl");
private String instanceName;
FileType(String instanceName){
this.instanceName=instanceName;
}
public String getInstanceName() {
return instanceName;
}
public void setInstanceName(String instanceName) {
this.instanceName = instanceName;
}
}

View File

@@ -1,82 +0,0 @@
package cn.keking.service;
import cn.keking.model.FileAttribute;
import cn.keking.model.FileType;
import cn.keking.service.cache.CacheService;
import cn.keking.utils.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.ExtendedModelMap;
import javax.annotation.PostConstruct;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* Created by kl on 2018/1/19.
* Content :消费队列中的转换文件
*/
@Service
public class FileConverQueueTask {
Logger logger= LoggerFactory.getLogger(getClass());
public static final String queueTaskName="FileConverQueueTask";
@Autowired
FilePreviewFactory previewFactory;
@Autowired
CacheService cacheService;
@Autowired
FileUtils fileUtils;
@PostConstruct
public void startTask(){
ExecutorService executorService = Executors.newFixedThreadPool(3);
executorService.submit(new ConverTask(previewFactory,cacheService,fileUtils));
logger.info("队列处理文件转换任务启动完成 ");
}
class ConverTask implements Runnable{
FilePreviewFactory previewFactory;
CacheService cacheService;
FileUtils fileUtils;
public ConverTask(FilePreviewFactory previewFactory, CacheService cacheService,FileUtils fileUtils) {
this.previewFactory = previewFactory;
this.cacheService = cacheService;
this.fileUtils=fileUtils;
}
@Override
public void run() {
while (true) {
try {
String url = cacheService.takeQueueTask();
if(url!=null){
FileAttribute fileAttribute=fileUtils.getFileAttribute(url);
logger.info("正在处理转换任务,文件名称【{}】",fileAttribute.getName());
FileType fileType=fileAttribute.getType();
if(fileType.equals(FileType.compress) || fileType.equals(FileType.office)){
FilePreview filePreview=previewFactory.get(url);
filePreview.filePreviewHandle(url,new ExtendedModelMap());
}
}
} catch (Exception e) {
try {
Thread.sleep(1000*10);
}catch (Exception ex){
ex.printStackTrace();
}
e.printStackTrace();
}
}
}
}
}

View File

@@ -1,11 +0,0 @@
package cn.keking.service;
import org.springframework.ui.Model;
/**
* Created by kl on 2018/1/17.
* Content :
*/
public interface FilePreview {
String filePreviewHandle(String url, Model model);
}

View File

@@ -1,66 +0,0 @@
package cn.keking.service.impl;
import cn.keking.model.FileAttribute;
import cn.keking.model.ReturnResponse;
import cn.keking.service.FilePreview;
import cn.keking.utils.DownloadUtils;
import cn.keking.utils.FileUtils;
import cn.keking.utils.ZipReader;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
/**
* Created by kl on 2018/1/17.
* Content :处理压缩包文件
*/
@Service
public class CompressFilePreviewImpl implements FilePreview{
@Autowired
FileUtils fileUtils;
@Autowired
DownloadUtils downloadUtils;
@Autowired
ZipReader zipReader;
@Override
public String filePreviewHandle(String url, Model model) {
FileAttribute fileAttribute=fileUtils.getFileAttribute(url);
String fileName=fileAttribute.getName();
String decodedUrl=fileAttribute.getDecodedUrl();
String suffix=fileAttribute.getSuffix();
String fileTree = null;
// 判断文件名是否存在(redis缓存读取)
if (!StringUtils.hasText(fileUtils.getConvertedFile(fileName))) {
ReturnResponse<String> response = downloadUtils.downLoad(decodedUrl, suffix, fileName);
if (0 != response.getCode()) {
model.addAttribute("fileType", suffix);
model.addAttribute("msg", response.getMsg());
return "fileNotSupported";
}
String filePath = response.getContent();
if ("zip".equalsIgnoreCase(suffix) || "jar".equalsIgnoreCase(suffix) || "gzip".equalsIgnoreCase(suffix)) {
fileTree = zipReader.readZipFile(filePath, fileName);
} else if ("rar".equalsIgnoreCase(suffix)) {
fileTree = zipReader.unRar(filePath, fileName);
}
if (fileTree != null && !"null".equals(fileTree)) {
fileUtils.addConvertedFile(fileName, fileTree);
}
} else {
fileTree = fileUtils.getConvertedFile(fileName);
}
if (fileTree != null && !"null".equals(fileTree)) {
model.addAttribute("fileTree", fileTree);
return "compress";
} else {
model.addAttribute("fileType", suffix);
model.addAttribute("msg", "压缩文件类型不受支持尝试在压缩的时候选择RAR4格式");
return "fileNotSupported";
}
}
}

View File

@@ -1,27 +0,0 @@
package cn.keking.service.impl;
import cn.keking.service.FilePreview;
import cn.keking.utils.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
/**
* @author : kl
* @authorboke : kailing.pub
* @create : 2018-03-25 上午11:58
* @description:
**/
@Service
public class MediaFilePreviewImpl implements FilePreview {
@Autowired
FileUtils fileUtils;
@Override
public String filePreviewHandle(String url, Model model) {
model.addAttribute("mediaUrl", url);
return "media";
}
}

View File

@@ -1,102 +0,0 @@
package cn.keking.service.impl;
import cn.keking.config.ConfigConstants;
import cn.keking.model.FileAttribute;
import cn.keking.model.ReturnResponse;
import cn.keking.service.FilePreview;
import cn.keking.utils.DownloadUtils;
import cn.keking.utils.FileUtils;
import cn.keking.utils.OfficeToPdf;
import cn.keking.utils.PdfUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.ui.ExtendedModelMap;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import java.io.File;
import java.util.List;
/**
* Created by kl on 2018/1/17.
* Content :处理office文件
*/
@Service
public class OfficeFilePreviewImpl implements FilePreview {
@Autowired
FileUtils fileUtils;
@Autowired
PdfUtils pdfUtils;
@Autowired
DownloadUtils downloadUtils;
@Autowired
private OfficeToPdf officeToPdf;
String fileDir = ConfigConstants.getFileDir();
public static final String OFFICE_PREVIEW_TYPE_PDF = "pdf";
public static final String OFFICE_PREVIEW_TYPE_IMAGE = "image";
public static final String OFFICE_PREVIEW_TYPE_ALLIMAGES = "allImages";
@Override
public String filePreviewHandle(String url, Model model) {
// 预览Type参数传了就取参数的没传取系统默认
String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString();
String originUrl = model.asMap().get("originUrl").toString();
FileAttribute fileAttribute=fileUtils.getFileAttribute(url);
String suffix=fileAttribute.getSuffix();
String fileName=fileAttribute.getName();
String decodedUrl=fileAttribute.getDecodedUrl();
boolean isHtml = suffix.equalsIgnoreCase("xls") || suffix.equalsIgnoreCase("xlsx");
String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + (isHtml ? "html" : "pdf");
String outFilePath = fileDir + pdfName;
// 判断之前是否已转换过,如果转换过,直接返回,否则执行转换
if (!fileUtils.listConvertedFiles().containsKey(pdfName)) {
String filePath = fileDir + fileName;
if (!new File(filePath).exists()) {
ReturnResponse<String> response = downloadUtils.downLoad(decodedUrl, suffix, null);
if (0 != response.getCode()) {
model.addAttribute("fileType", suffix);
model.addAttribute("msg", response.getMsg());
return "fileNotSupported";
}
filePath = response.getContent();
}
if (StringUtils.hasText(outFilePath)) {
officeToPdf.openOfficeToPDF(filePath, outFilePath);
File f = new File(filePath);
if (f.exists()) {
f.delete();
}
if (isHtml) {
// 对转换后的文件进行操作(改变编码方式)
fileUtils.doActionConvertedFile(outFilePath);
}
// 加入缓存
fileUtils.addConvertedFile(pdfName, fileUtils.getRelativePath(outFilePath));
}
}
if (!isHtml && (OFFICE_PREVIEW_TYPE_IMAGE.equals(officePreviewType) || OFFICE_PREVIEW_TYPE_ALLIMAGES.equals(officePreviewType))) {
List<String> imageUrls = pdfUtils.pdf2jpg(outFilePath, pdfName, originUrl);
if (imageUrls == null || imageUrls.size() < 1) {
model.addAttribute("msg", "office转图片异常请联系管理员");
model.addAttribute("fileType",fileAttribute.getSuffix());
return "fileNotSupported";
}
model.addAttribute("imgurls", imageUrls);
model.addAttribute("currentUrl", imageUrls.get(0));
if (OFFICE_PREVIEW_TYPE_IMAGE.equals(officePreviewType)) {
return "officePicture";
} else {
return "picture";
}
}
model.addAttribute("pdfUrl", pdfName);
return isHtml ? "html" : "pdf";
}
}

View File

@@ -1,28 +0,0 @@
package cn.keking.service.impl;
import cn.keking.model.FileAttribute;
import cn.keking.service.FilePreview;
import cn.keking.utils.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
/**
* Created by kl on 2018/1/17.
* Content :其他文件
*/
@Service
public class OtherFilePreviewImpl implements FilePreview {
@Autowired
FileUtils fileUtils;
@Override
public String filePreviewHandle(String url, Model model) {
FileAttribute fileAttribute=fileUtils.getFileAttribute(url);
model.addAttribute("fileType",fileAttribute.getSuffix());
model.addAttribute("msg", "系统还不支持该格式文件的在线预览," +
"如有需要请按下方显示的邮箱地址联系系统维护人员");
return "fileNotSupported";
}
}

View File

@@ -1,74 +0,0 @@
package cn.keking.service.impl;
import cn.keking.config.ConfigConstants;
import cn.keking.model.FileAttribute;
import cn.keking.model.ReturnResponse;
import cn.keking.service.FilePreview;
import cn.keking.utils.DownloadUtils;
import cn.keking.utils.FileUtils;
import cn.keking.utils.PdfUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import java.io.File;
import java.util.List;
/**
* Created by kl on 2018/1/17.
* Content :处理pdf文件
*/
@Service
public class PdfFilePreviewImpl implements FilePreview{
@Autowired
FileUtils fileUtils;
@Autowired
PdfUtils pdfUtils;
@Autowired
DownloadUtils downloadUtils;
String fileDir = ConfigConstants.getFileDir();
@Override
public String filePreviewHandle(String url, Model model) {
FileAttribute fileAttribute=fileUtils.getFileAttribute(url);
String decodedUrl=fileAttribute.getDecodedUrl();
String suffix=fileAttribute.getSuffix();
String fileName=fileAttribute.getName();
String officePreviewType = model.asMap().get("officePreviewType") == null ? "" : model.asMap().get("officePreviewType").toString();
String originUrl = model.asMap().get("originUrl").toString();
model.addAttribute("pdfUrl", url);
String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + "pdf";
String outFilePath = fileDir + pdfName;
if (OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_IMAGE.equals(officePreviewType) || OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_ALLIMAGES.equals(officePreviewType)) {
//当文件不存在时,就去下载
if (!new File(outFilePath).exists()) {
ReturnResponse<String> response = downloadUtils.downLoad(decodedUrl, suffix, fileName);
if (0 != response.getCode()) {
model.addAttribute("fileType", suffix);
model.addAttribute("msg", response.getMsg());
return "fileNotSupported";
}
outFilePath = response.getContent();
}
List<String> imageUrls = pdfUtils.pdf2jpg(outFilePath, pdfName, originUrl);
if (imageUrls == null || imageUrls.size() < 1) {
model.addAttribute("msg", "pdf转图片异常请联系管理员");
model.addAttribute("fileType",fileAttribute.getSuffix());
return "fileNotSupported";
}
model.addAttribute("imgurls", imageUrls);
model.addAttribute("currentUrl", imageUrls.get(0));
if (OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_IMAGE.equals(officePreviewType)) {
return "officePicture";
} else {
return "picture";
}
}
return "pdf";
}
}

View File

@@ -1,37 +0,0 @@
package cn.keking.service.impl;
import cn.keking.service.FilePreview;
import cn.keking.utils.FileUtils;
import com.google.common.collect.Lists;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import org.springframework.web.context.request.RequestContextHolder;
import java.util.List;
/**
* Created by kl on 2018/1/17.
* Content :图片文件处理
*/
@Service
public class PictureFilePreviewImpl implements FilePreview {
@Autowired
FileUtils fileUtils;
@Override
public String filePreviewHandle(String url, Model model) {
String fileKey=(String) RequestContextHolder.currentRequestAttributes().getAttribute("fileKey",0);
List imgUrls = Lists.newArrayList(url);
try{
imgUrls.clear();
imgUrls.addAll(fileUtils.getRedisImgUrls(fileKey));
}catch (Exception e){
imgUrls = Lists.newArrayList(url);
}
model.addAttribute("imgurls", imgUrls);
model.addAttribute("currentUrl",url);
return "picture";
}
}

View File

@@ -1,40 +0,0 @@
package cn.keking.service.impl;
import cn.keking.model.FileAttribute;
import cn.keking.model.ReturnResponse;
import cn.keking.service.FilePreview;
import cn.keking.utils.FileUtils;
import cn.keking.utils.SimTextUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
/**
* Created by kl on 2018/1/17.
* Content :处理文本文件
*/
@Service
public class SimTextFilePreviewImpl implements FilePreview{
@Autowired
SimTextUtil simTextUtil;
@Autowired
FileUtils fileUtils;
@Override
public String filePreviewHandle(String url, Model model){
FileAttribute fileAttribute=fileUtils.getFileAttribute(url);
String decodedUrl=fileAttribute.getDecodedUrl();
String fileName=fileAttribute.getName();
ReturnResponse<String> response = simTextUtil.readSimText(decodedUrl, fileName);
if (0 != response.getCode()) {
model.addAttribute("msg", response.getMsg());
model.addAttribute("fileType",fileAttribute.getSuffix());
return "fileNotSupported";
}
model.addAttribute("ordinaryUrl", response.getMsg());
return "txt";
}
}

View File

@@ -1,70 +0,0 @@
package cn.keking.utils;
import com.sun.star.document.UpdateDocMode;
import cn.keking.extend.ControlDocumentFormatRegistry;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration;
import org.artofsolving.jodconverter.office.OfficeManager;
import org.artofsolving.jodconverter.office.OfficeUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.Map;
/**
* 创建文件转换器
*
* @author yudian-it
* @date 2017/11/13
*/
@Component
public class ConverterUtils {
// @Value("${office.home}")
// String officeHome;
// OpenOfficeConnection connection;
OfficeManager officeManager;
@PostConstruct
public void initOfficeManager() {
//// connection = new SocketOpenOfficeConnection(host,8100);
//// connection.connect();
String officeHome = OfficeUtils.getDefaultOfficeHome().getAbsolutePath();
DefaultOfficeManagerConfiguration configuration = new DefaultOfficeManagerConfiguration();
configuration.setOfficeHome(officeHome);
configuration.setPortNumber(8100);
officeManager = configuration.buildOfficeManager();
officeManager.start();
// 设置任务执行超时为5分钟
// configuration.setTaskExecutionTimeout(1000 * 60 * 5L);//
// 设置任务队列超时为24小时
// configuration.setTaskQueueTimeout(1000 * 60 * 60 * 24L);//
}
public OfficeDocumentConverter getDocumentConverter() {
OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager, new ControlDocumentFormatRegistry());
converter.setDefaultLoadProperties(getLoadProperties());
return converter;
}
private Map<String,?> getLoadProperties() {
Map<String,Object> loadProperties = new HashMap<>(10);
loadProperties.put("Hidden", true);
loadProperties.put("ReadOnly", true);
loadProperties.put("UpdateDocMode", UpdateDocMode.QUIET_UPDATE);
loadProperties.put("CharacterSet", Charset.forName("UTF-8").name());
return loadProperties;
}
@PreDestroy
public void destroyOfficeManager(){
if (null != officeManager && officeManager.isRunning()) {
officeManager.stop();
}
}
}

View File

@@ -1,74 +0,0 @@
package cn.keking.utils;
import java.io.File;
public class DeleteFileUtil {
/**
* 删除单个文件
*
* @param fileName
* 要删除的文件的文件名
* @return 单个文件删除成功返回true否则返回false
*/
public static boolean deleteFile(String fileName) {
File file = new File(fileName);
// 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
if (file.exists() && file.isFile()) {
if (file.delete()) {
System.out.println("删除单个文件" + fileName + "成功!");
return true;
} else {
System.out.println("删除单个文件" + fileName + "失败!");
return false;
}
} else {
System.out.println("删除单个文件失败:" + fileName + "不存在!");
return false;
}
}
/**
* 删除目录及目录下的文件
*
* @param dir
* 要删除的目录的文件路径
* @return 目录删除成功返回true否则返回false
*/
public static boolean deleteDirectory(String dir) {
// 如果dir不以文件分隔符结尾自动添加文件分隔符
if (!dir.endsWith(File.separator)) {
dir = dir + File.separator;
}
File dirFile = new File(dir);
// 如果dir对应的文件不存在或者不是一个目录则退出
if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
System.out.println("删除目录失败:" + dir + "不存在!");
return false;
}
boolean flag = true;
// 删除文件夹中的所有文件包括子目录
File[] files = dirFile.listFiles();
for (int i = 0; i < files.length; i++) {
// 删除子文件
if (files[i].isFile()) {
flag = DeleteFileUtil.deleteFile(files[i].getAbsolutePath());
if (!flag)
break;
}
// 删除子目录
else if (files[i].isDirectory()) {
flag = DeleteFileUtil.deleteDirectory(files[i]
.getAbsolutePath());
if (!flag)
break;
}
}
if (!flag) {
System.out.println("删除目录失败!");
return false;
}
return true;
}
}

View File

@@ -1,196 +0,0 @@
package cn.keking.utils;
import cn.keking.config.ConfigConstants;
import cn.keking.model.ReturnResponse;
import org.springframework.stereotype.Component;
import java.io.*;
import java.net.*;
import java.util.UUID;
/**
* @author yudian-it
*/
@Component
public class DownloadUtils {
String fileDir = ConfigConstants.getFileDir();
/**
* 一开始测试的时候发现有些文件没有下载下来,而有些可以;当时也是郁闷了好一阵,但是最终还是不得解
* 再次测试的时候通过前台对比url发现原来参数中有+号特殊字符存在,但是到后之后却变成了空格,突然恍然大悟
* 应该是转义出了问题url转义中会把+号当成空格来计算所以才会出现这种情况遂想要通过整体替换空格为加号因为url
* 中的参数部分是不会出现空格的但是文件名中就不好确定了所以只对url参数部分做替换
* 注: 针对URLEncoder.encode(s,charset)会将空格转成+的情况需要做下面的替换工作
* @param urlAddress
* @param type
* @return
*/
public ReturnResponse<String> downLoad(String urlAddress, String type, String fileName){
ReturnResponse<String> response = new ReturnResponse<>(0, "下载成功!!!", "");
URL url = null;
try {
urlAddress = replacePlusMark(urlAddress);
urlAddress = encodeUrlParam(urlAddress);
// 因为tomcat不能处理'+'号,所以讲'+'号替换成'%20%'
urlAddress = urlAddress.replaceAll("\\+", "%20");
url = new URL(urlAddress);
} catch (MalformedURLException e) {
e.printStackTrace();
}
UUID uuid = UUID.randomUUID();
if (null == fileName) {
fileName = uuid+ "."+type;
}else { // 文件后缀不一致时以type为准(针对simText【将类txt文件转为txt】)
fileName = fileName.replace(fileName.substring(fileName.lastIndexOf(".") + 1), type);
}
String realPath = fileDir + fileName;
File dirFile = new File(fileDir);
if (!dirFile.exists()) {
dirFile.mkdirs();
}
try {
URLConnection connection = url.openConnection();
InputStream in = connection.getInputStream();
FileOutputStream os = new FileOutputStream(realPath);
byte[] buffer = new byte[4 * 1024];
int read;
while ((read = in.read(buffer)) > 0) {
os.write(buffer, 0, read);
}
os.close();
in.close();
response.setContent(realPath);
// 同样针对类txt文件如果成功msg包含的是转换后的文件名
response.setMsg(fileName);
// txt转换文件编码为utf8
if("txt".equals(type)){
convertTextPlainFileCharsetToUtf8(realPath);
}
return response;
} catch (IOException e) {
e.printStackTrace();
response.setCode(1);
response.setContent(null);
if (e instanceof FileNotFoundException) {
response.setMsg("文件不存在!!!");
}else {
response.setMsg(e.getMessage());
}
return response;
}
}
/**
* 注:可能是原来因为前端通过encodeURI来编码的因为通过encodeURI编码+会被转成+号(亦即没有转)
* 而通过encodeURIComponent则会转成%2B这样URLDecoder是可以正确处理的所以也就没有必要在这里替换了
* 转换url参数部分的空格为加号(因为在url编解码的过程中出现+转为空格的情况)
* @param urlAddress
* @return
*/
private String replacePlusMark(String urlAddress) {
if (urlAddress.contains("?")) {
String nonParamStr = urlAddress.substring(0,urlAddress.indexOf("?") + 1);
String paramStr = urlAddress.substring(nonParamStr.length());
return nonParamStr + paramStr.replace(" ", "+");
}
return urlAddress;
}
/**
* 对最有一个路径进行转码
* @param urlAddress
* http://192.168.2.111:8013/demo/Handle中文.zip
* @return
*/
private String encodeUrlParam(String urlAddress) {
String newUrl = "";
try {
String path = "";
String param = "";
if (urlAddress.contains("?")) {
path = urlAddress.substring(0, urlAddress.indexOf("?"));
param = urlAddress.substring(urlAddress.indexOf("?"));
}else {
path = urlAddress;
}
String lastPath = path.substring(path.lastIndexOf("/") + 1);
String leftPath = path.substring(0, path.lastIndexOf("/") + 1);
String encodeLastPath = URLEncoder.encode(lastPath, "UTF-8");
newUrl += leftPath + encodeLastPath;
if (urlAddress.contains("?")) {
newUrl += param;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return newUrl;
}
/**
* 因为jodConvert2.1不支持ms2013版本的office转换这里偷懒尝试看改一下文件类型让jodConvert2.1去
* 处理ms2013看结果如何如果问题很大的话只能采取其他方式如果没有问题暂时使用该版本来转换
* @param type
* @return
*/
private String dealWithMS2013(String type) {
String newType = null;
switch (type){
case "docx":
newType = "doc";
break;
case "xlsx":
newType = "doc";
break;
case "pptx":
newType = "ppt";
break;
default:
newType = type;
break;
}
return newType;
}
/**
* 转换文本文件编码为utf8
* 探测源文件编码,探测到编码切不为utf8则进行转码
* @param filePath 文件路径
*/
private static void convertTextPlainFileCharsetToUtf8(String filePath) throws IOException {
File sourceFile = new File(filePath);
if(sourceFile.exists() && sourceFile.isFile() && sourceFile.canRead()) {
String encoding = null;
try {
FileCharsetDetector.Observer observer = FileCharsetDetector.guessFileEncoding(sourceFile);
// 为准确探测到编码,不适用猜测的编码
encoding = observer.isFound()?observer.getEncoding():null;
// 为准确探测到编码,可以考虑使用GBK 大部分文件都是windows系统产生的
} catch (IOException e) {
// 编码探测失败,
e.printStackTrace();
}
if(encoding != null && !"UTF-8".equals(encoding)){
// 不为utf8,进行转码
File tmpUtf8File = new File(filePath+".utf8");
Writer writer = new OutputStreamWriter(new FileOutputStream(tmpUtf8File),"UTF-8");
Reader reader = new BufferedReader(new InputStreamReader(new FileInputStream(sourceFile),encoding));
char[] buf = new char[1024];
int read;
while ((read = reader.read(buf)) > 0){
writer.write(buf, 0, read);
}
reader.close();
writer.close();
// 删除源文件
sourceFile.delete();
// 重命名
tmpUtf8File.renameTo(sourceFile);
}
}
}
}

View File

@@ -1,157 +0,0 @@
package cn.keking.utils;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.mozilla.intl.chardet.nsDetector;
import org.mozilla.intl.chardet.nsICharsetDetectionObserver;
/**
* 文本文件编码探测工具类
*
* @author HWliao
* @date 2017-12-24
*/
public class FileCharsetDetector {
/**
* 传入一个文件(File)对象,检查文件编码
*
* @param file File对象实例
* @return 文件编码若无则返回null
* @throws FileNotFoundException
* @throws IOException
*/
public static Observer guessFileEncoding(File file)
throws FileNotFoundException, IOException {
return guessFileEncoding(file, new nsDetector());
}
/**
* <pre>
* 获取文件的编码
* @param file
* File对象实例
* @param languageHint
* 语言提示区域代码 @see #nsPSMDetector ,取值如下:
* 1 : Japanese
* 2 : Chinese
* 3 : Simplified Chinese
* 4 : Traditional Chinese
* 5 : Korean
* 6 : Dont know(default)
* </pre>
*
* @return 文件编码egUTF-8,GBK,GB2312形式(不确定的时候,返回可能的字符编码序列)若无则返回null
* @throws FileNotFoundException
* @throws IOException
*/
public static Observer guessFileEncoding(File file, int languageHint)
throws FileNotFoundException, IOException {
return guessFileEncoding(file, new nsDetector(languageHint));
}
/**
* 获取文件的编码
*
* @param file
* @param det
* @return
* @throws FileNotFoundException
* @throws IOException
*/
private static Observer guessFileEncoding(File file, nsDetector det)
throws FileNotFoundException, IOException {
// new Observer
Observer observer = new Observer();
// set Observer
// The Notify() will be called when a matching charset is found.
det.Init(observer);
BufferedInputStream imp = new BufferedInputStream(new FileInputStream(
file));
byte[] buf = new byte[1024];
int len;
boolean done = false;
boolean isAscii = false;
while ((len = imp.read(buf, 0, buf.length)) != -1) {
// Check if the stream is only ascii.
isAscii = det.isAscii(buf, len);
if (isAscii) {
break;
}
// DoIt if non-ascii and not done yet.
done = det.DoIt(buf, len, false);
if (done) {
break;
}
}
imp.close();
det.DataEnd();
if (isAscii) {
observer.encoding = "ASCII";
observer.found = true;
}
if (!observer.isFound()) {
String[] prob = det.getProbableCharsets();
// // 这里将可能的字符集组合起来返回
// for (int i = 0; i < prob.length; i++) {
// if (i == 0) {
// encoding = prob[i];
// } else {
// encoding += "," + prob[i];
// }
// }
if (prob.length > 0) {
// 在没有发现情况下,去第一个可能的编码
observer.encoding = prob[0];
} else {
observer.encoding = null;
}
}
return observer;
}
/**
* @author liaohongwei
* @Description: 文件字符编码观察者, 但判断出字符编码时候调用
* @date 2016年6月20日 下午2:27:06
*/
public static class Observer implements nsICharsetDetectionObserver {
/**
* @Fields encoding : 字符编码
*/
private String encoding = null;
/**
* @Fields found : 是否找到字符集
*/
private boolean found = false;
@Override
public void Notify(String charset) {
this.encoding = charset;
this.found = true;
}
public String getEncoding() {
return encoding;
}
public boolean isFound() {
return found;
}
@Override
public String toString() {
return "Observer [encoding=" + encoding + ", found=" + found + "]";
}
}
}

View File

@@ -1,286 +0,0 @@
package cn.keking.utils;
import cn.keking.config.ConfigConstants;
import cn.keking.model.FileAttribute;
import cn.keking.model.FileType;
import cn.keking.service.cache.CacheService;
import com.google.common.collect.Lists;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.*;
import java.net.URLDecoder;
import java.nio.charset.Charset;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
*
* @author yudian-it
* @date 2017/11/13
*/
@Component
public class FileUtils {
Logger log= LoggerFactory.getLogger(getClass());
@Autowired
CacheService cacheService;
String fileDir = ConfigConstants.getFileDir();
/**
* 已转换过的文件集合(redis缓存)
* @return
*/
public Map<String, String> listConvertedFiles() {
return cacheService.getPDFCache();
}
/**
* 已转换过的文件,根据文件名获取
* @return
*/
public String getConvertedFile(String key) {
return cacheService.getPDFCache(key);
}
/**
* 已将pdf转换成图片的图片本地路径
* @param key pdf本地路径
* @return
*/
public Integer getConvertedPdfImage(String key) {
return cacheService.getPdfImageCache(key);
}
/**
* 查看文件类型(防止参数中存在.点号或者其他特殊字符,所以先抽取文件名,然后再获取文件类型)
*
* @param url
* @return
*/
public FileType typeFromUrl(String url) {
String[] simText = ConfigConstants.getSimText();
String[] media = ConfigConstants.getMedia();
String nonPramStr = url.substring(0, url.indexOf("?") != -1 ? url.indexOf("?") : url.length());
String fileName = nonPramStr.substring(nonPramStr.lastIndexOf("/") + 1);
String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
if (listPictureTypes().contains(fileType.toLowerCase())) {
return FileType.picture;
}
if (listArchiveTypes().contains(fileType.toLowerCase())) {
return FileType.compress;
}
if (listOfficeTypes().contains(fileType.toLowerCase())) {
return FileType.office;
}
if (Arrays.asList(simText).contains(fileType.toLowerCase())) {
return FileType.simText;
}
if (Arrays.asList(media).contains(fileType.toLowerCase())) {
return FileType.media;
}
if("pdf".equalsIgnoreCase(fileType)){
return FileType.pdf;
}
return FileType.other;
}
/**
* 从url中剥离出文件名
* @param url
* 格式如http://keking.ufile.ucloud.com.cn/20171113164107_月度绩效表模板(新).xls?UCloudPublicKey=ucloudtangshd@weifenf.com14355492830001993909323&Expires=&Signature=I D1NOFtAJSPT16E6imv6JWuq0k=
* @return
*/
public String getFileNameFromURL(String url) {
// 因为url的参数中可能会存在/的情况所以直接url.lastIndexOf("/")会有问题
// 所以先从处将url截断然后运用url.lastIndexOf("/")获取文件名
String noQueryUrl = url.substring(0, url.indexOf("?") != -1 ? url.indexOf("?"): url.length());
String fileName = noQueryUrl.substring(noQueryUrl.lastIndexOf("/") + 1);
return fileName;
}
/**
* 获取文件后缀
* @param fileName
* @return
*/
public String getSuffixFromFileName(String fileName) {
String suffix = fileName.substring(fileName.lastIndexOf("."));
return suffix;
}
/**
* 从路径中获取
* @param path
* 类似这种C:\Users\yudian-it\Downloads
* @return
*/
public String getFileNameFromPath(String path) {
return path.substring(path.lastIndexOf(File.separator) + 1);
}
public List<String> listPictureTypes(){
List<String> list = Lists.newArrayList();
list.add("jpg");
list.add("jpeg");
list.add("png");
list.add("gif");
list.add("bmp");
list.add("ico");
list.add("RAW");
return list;
}
public List<String> listArchiveTypes(){
List<String> list = Lists.newArrayList();
list.add("rar");
list.add("zip");
list.add("jar");
list.add("7-zip");
list.add("tar");
list.add("gzip");
list.add("7z");
return list;
}
public List<String> listOfficeTypes() {
List<String> list = Lists.newArrayList();
list.add("docx");
list.add("doc");
list.add("xls");
list.add("xlsx");
list.add("ppt");
list.add("pptx");
return list;
}
/**
* 获取相对路径
* @param absolutePath
* @return
*/
public String getRelativePath(String absolutePath) {
return absolutePath.substring(fileDir.length());
}
public void addConvertedFile(String fileName, String value){
cacheService.putPDFCache(fileName, value);
}
/**
*
* @param pdfFilePath
* @param num
*/
public void addConvertedPdfImage(String pdfFilePath, int num){
cacheService.putPdfImageCache(pdfFilePath, num);
}
/**
* 获取redis中压缩包内图片文件
* @param fileKey
* @return
*/
public List getRedisImgUrls(String fileKey){
return cacheService.getImgCache(fileKey);
}
/**
* 设置redis中压缩包内图片文件
* @param fileKey
* @param imgs
*/
public void setRedisImgUrls(String fileKey,List imgs){
cacheService.putImgCache(fileKey, imgs);
}
/**
* 判断文件编码格式
* @param path
* @return
*/
public String getFileEncodeUTFGBK(String path){
String enc = Charset.forName("GBK").name();
File file = new File(path);
InputStream in= null;
try {
in = new FileInputStream(file);
byte[] b = new byte[3];
in.read(b);
in.close();
if (b[0] == -17 && b[1] == -69 && b[2] == -65) {
enc = Charset.forName("UTF-8").name();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("文件编码格式为:" + enc);
return enc;
}
/**
* 对转换后的文件进行操作(改变编码方式)
* @param outFilePath
*/
public void doActionConvertedFile(String outFilePath) {
StringBuffer sb = new StringBuffer();
String charset = ConfigConstants.getConvertedFileCharset();
try (InputStream inputStream = new FileInputStream(outFilePath);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset))){
String line;
while(null != (line = reader.readLine())){
if (line.contains("charset=gb2312")) {
line = line.replace("charset=gb2312", "charset=utf-8");
}
sb.append(line);
}
// 添加sheet控制头
sb.append("<script src=\"js/jquery-3.0.0.min.js\" type=\"text/javascript\"></script>");
sb.append("<script src=\"js/excel.header.js\" type=\"text/javascript\"></script>");
sb.append("<link rel=\"stylesheet\" href=\"http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css\">");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 重新写入文件
try(FileOutputStream fos = new FileOutputStream(outFilePath);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fos))){
writer.write(sb.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取文件后缀
* @param url
* @return
*/
private String suffixFromUrl(String url) {
String nonPramStr = url.substring(0, url.indexOf("?") != -1 ? url.indexOf("?") : url.length());
String fileName = nonPramStr.substring(nonPramStr.lastIndexOf("/") + 1);
String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
return fileType;
}
public FileAttribute getFileAttribute(String url) {
String decodedUrl=null;
try {
decodedUrl = URLDecoder.decode(url, "utf-8");
}catch (UnsupportedEncodingException e){
log.debug("url解码失败");
}
// 路径转码
FileType type = typeFromUrl(url);
String suffix = suffixFromUrl(url);
// 抽取文件并返回文件列表
String fileName = getFileNameFromURL(decodedUrl);
return new FileAttribute(type,suffix,fileName,url,decodedUrl);
}
}

View File

@@ -1,112 +0,0 @@
package cn.keking.utils;
import org.artofsolving.jodconverter.OfficeDocumentConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.File;
/**
* @author yudian-it
*/
@Component
public class OfficeToPdf {
/**
* 获取OpenOffice.org 3的安装目录
*
* @return OpenOffice.org 3的安装目录
*/
@Autowired
ConverterUtils converterUtils;
/**
* 使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) 转化为pdf文件<br>
*
* @param inputFilePath
* 源文件路径,如:"e:/test.docx"
* @param outputFilePath
* 目标文件路径,如:"e:/test_docx.pdf"
* @return
*/
public boolean openOfficeToPDF(String inputFilePath, String outputFilePath) {
return office2pdf(inputFilePath, outputFilePath);
}
/**
* 转换文件
*
* @param inputFile
* @param outputFilePath_end
* @param inputFilePath
* @param outputFilePath
* @param converter
*/
public static void converterFile(File inputFile, String outputFilePath_end,
String inputFilePath, String outputFilePath,
OfficeDocumentConverter converter) {
File outputFile = new File(outputFilePath_end);
// 假如目标路径不存在,则新建该路径
if (!outputFile.getParentFile().exists()) {
outputFile.getParentFile().mkdirs();
}
converter.convert(inputFile, outputFile);
}
/**
* 使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) 转化为pdf文件
*
* @param inputFilePath
* 源文件路径,如:"e:/test.docx"
* @param outputFilePath
* 目标文件路径,如:"e:/test_docx.pdf"
* @return
*/
public boolean office2pdf(String inputFilePath, String outputFilePath) {
boolean flag = false;
OfficeDocumentConverter converter = converterUtils.getDocumentConverter();
if (null != inputFilePath) {
File inputFile = new File(inputFilePath);
// 判断目标文件路径是否为空
if (null == outputFilePath) {
// 转换后的文件路径
String outputFilePath_end = getOutputFilePath(inputFilePath);
if (inputFile.exists()) {// 找不到源文件, 则返回
converterFile(inputFile, outputFilePath_end, inputFilePath,
outputFilePath, converter);
flag = true;
}
} else {
if (inputFile.exists()) {// 找不到源文件, 则返回
converterFile(inputFile, outputFilePath, inputFilePath,
outputFilePath, converter);
flag = true;
}
}
// officeManager.stop();
} else {
flag = false;
}
return flag;
}
/**
* 获取输出文件
*
* @param inputFilePath
* @return
*/
public static String getOutputFilePath(String inputFilePath) {
String outputFilePath = inputFilePath.replaceAll("."
+ getPostfix(inputFilePath), ".pdf");
return outputFilePath;
}
/**
* 获取inputFilePath的后缀名"e:/test.pptx"的后缀名为:"pptx"
*
* @param inputFilePath
* @return
*/
public static String getPostfix(String inputFilePath) {
return inputFilePath.substring(inputFilePath.lastIndexOf(".") + 1);
}
}

View File

@@ -1,66 +0,0 @@
package cn.keking.utils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.tools.imageio.ImageIOUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Component
public class PdfUtils {
private final Logger LOGGER = LoggerFactory.getLogger(PdfUtils.class);
@Autowired
FileUtils fileUtils;
public List<String> pdf2jpg(String pdfFilePath, String pdfName, String url) {
List<String> imageUrls = new ArrayList<>();
Integer imageCount = fileUtils.getConvertedPdfImage(pdfFilePath);
String imageFileSuffix = ".jpg";
// https://8个字符 http://7个字符 从这后面开始出现的第一个/就是当前file.Dir下的根目录
int index1 = url.indexOf("/", 8);
String pdfFolder = pdfName.substring(0, pdfName.length() - 4);
String urlPrefix = url.substring(0, index1 + 1) + pdfFolder;
if (imageCount != null && imageCount.intValue() > 0) {
for (int i = 0; i < imageCount ; i++)
imageUrls.add(urlPrefix + "/" + i + imageFileSuffix);
return imageUrls;
}
try {
File pdfFile = new File(pdfFilePath);
PDDocument doc = PDDocument.load(pdfFile);
int pageCount = doc.getNumberOfPages();
PDFRenderer pdfRenderer = new PDFRenderer(doc);
int index = pdfFilePath.lastIndexOf(".");
String folder = pdfFilePath.substring(0, index);
File path = new File(folder);
if (!path.exists()) {
path.mkdirs();
}
String imageFilePath;
for (int pageIndex = 0; pageIndex < pageCount; pageIndex++) {
imageFilePath = folder + File.separator + pageIndex + imageFileSuffix;
BufferedImage image = pdfRenderer.renderImageWithDPI(pageIndex, 105, ImageType.RGB);
ImageIOUtil.writeImage(image, imageFilePath, 105);
imageUrls.add(urlPrefix + "/" + pageIndex + imageFileSuffix);
}
doc.close();
fileUtils.addConvertedPdfImage(pdfFilePath, pageCount);
} catch (IOException e) {
LOGGER.error("Convert pdf to jpg exception", e);
}
return imageUrls;
}
}

View File

@@ -1,15 +0,0 @@
package cn.keking.utils;
import cn.keking.config.ConfigConstants;
import org.springframework.stereotype.Component;
@Component
public class ShedulerClean {
String fileDir = ConfigConstants.getFileDir();
// @Scheduled(cron = "0 0 23 * * ?") //每晚23点执行一次
public void clean(){
System.out.println("执行一次清空文件夹");
DeleteFileUtil.deleteDirectory(fileDir);
}
}

View File

@@ -1,23 +0,0 @@
package cn.keking.utils;
import cn.keking.config.ConfigConstants;
import cn.keking.model.ReturnResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 读取类文本文件
* @author yudian-it
* @date 2017/12/13
*/
@Component
public class SimTextUtil {
String fileDir = ConfigConstants.getFileDir();
@Autowired
DownloadUtils downloadUtils;
public ReturnResponse<String> readSimText(String url, String fileName){
ReturnResponse<String> response = downloadUtils.downLoad(url, "txt", fileName);
return response;
}
}

View File

@@ -1,112 +0,0 @@
package cn.keking.web.controller;
import cn.keking.config.ConfigConstants;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import cn.keking.model.ReturnResponse;
import cn.keking.utils.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
*
* @author yudian-it
* @date 2017/12/1
*/
@RestController
public class FileController {
String fileDir = ConfigConstants.getFileDir();
@Autowired
FileUtils fileUtils;
String demoDir = "demo";
String demoPath = demoDir + File.separator;
@RequestMapping(value = "fileUpload", method = RequestMethod.POST)
public String fileUpload(@RequestParam("file") MultipartFile file,
HttpServletRequest request) throws JsonProcessingException {
String fileName = file.getOriginalFilename();
// 判断该文件类型是否有上传过,如果上传过则提示不允许再次上传
if (existsTypeFile(fileName)) {
return new ObjectMapper().writeValueAsString(new ReturnResponse<String>(1, "每一种类型只可以上传一个文件,请先删除原有文件再次上传", null));
}
File outFile = new File(fileDir + demoPath);
if (!outFile.exists()) {
outFile.mkdirs();
}
try(InputStream in = file.getInputStream();
OutputStream ot = new FileOutputStream(fileDir + demoPath + fileName)){
byte[] buffer = new byte[1024];
int len;
while ((-1 != (len = in.read(buffer)))) {
ot.write(buffer, 0, len);
}
return new ObjectMapper().writeValueAsString(new ReturnResponse<String>(0, "SUCCESS", null));
} catch (IOException e) {
e.printStackTrace();
return new ObjectMapper().writeValueAsString(new ReturnResponse<String>(1, "FAILURE", null));
}
}
@RequestMapping(value = "deleteFile", method = RequestMethod.GET)
public String deleteFile(String fileName) throws JsonProcessingException {
if (fileName.contains("/")) {
fileName = fileName.substring(fileName.lastIndexOf("/") + 1);
}
File file = new File(fileDir + demoPath + fileName);
if (file.exists()) {
file.delete();
}
return new ObjectMapper().writeValueAsString(new ReturnResponse<String>(0, "SUCCESS", null));
}
@RequestMapping(value = "listFiles", method = RequestMethod.GET)
public String getFiles() throws JsonProcessingException {
List<Map<String, String>> list = Lists.newArrayList();
File file = new File(fileDir + demoPath);
if (file.exists()) {
Arrays.stream(file.listFiles()).forEach(file1 -> list.add(ImmutableMap.of("fileName", demoDir + "/" + file1.getName())));
}
return new ObjectMapper().writeValueAsString(list);
}
private String getFileName(String name) {
String suffix = name.substring(name.lastIndexOf("."));
String nameNoSuffix = name.substring(0, name.lastIndexOf("."));
String uuid = UUID.randomUUID().toString();
return uuid + "-" + nameNoSuffix + suffix;
}
/**
* 是否存在该类型的文件
* @return
* @param fileName
*/
private boolean existsTypeFile(String fileName) {
boolean result = false;
String suffix = fileUtils.getSuffixFromFileName(fileName);
File file = new File(fileDir + demoPath);
if (file.exists()) {
for(File file1 : file.listFiles()){
String existsFileSuffix = fileUtils.getSuffixFromFileName(file1.getName());
if (suffix.equals(existsFileSuffix)) {
result = true;
break;
}
}
}
return result;
}
}

View File

@@ -1,132 +0,0 @@
package cn.keking.web.controller;
import cn.keking.service.FilePreview;
import cn.keking.service.FilePreviewFactory;
import cn.keking.service.cache.CacheService;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.util.Arrays;
import java.util.List;
/**
* @author yudian-it
*/
@Controller
public class OnlinePreviewController {
@Autowired
FilePreviewFactory previewFactory;
@Autowired
CacheService cacheService;
/**
* @param url
* @param model
* @return
*/
@RequestMapping(value = "onlinePreview", method = RequestMethod.GET)
public String onlinePreview(String url, Model model, HttpServletRequest req) {
req.setAttribute("fileKey", req.getParameter("fileKey"));
model.addAttribute("officePreviewType", req.getParameter("officePreviewType"));
model.addAttribute("originUrl",req.getRequestURL().toString());
FilePreview filePreview = previewFactory.get(url);
return filePreview.filePreviewHandle(url, model);
}
/**
* 多图片切换预览
*
* @param model
* @param req
* @return
* @throws UnsupportedEncodingException
*/
@RequestMapping(value = "picturesPreview", method = RequestMethod.GET)
public String picturesPreview(String urls, String currentUrl, Model model, HttpServletRequest req) throws UnsupportedEncodingException {
// 路径转码
String decodedUrl = URLDecoder.decode(urls, "utf-8");
String decodedCurrentUrl = URLDecoder.decode(currentUrl, "utf-8");
// 抽取文件并返回文件列表
String[] imgs = decodedUrl.split("\\|");
List imgurls = Arrays.asList(imgs);
model.addAttribute("imgurls", imgurls);
model.addAttribute("currentUrl",decodedCurrentUrl);
return "picture";
}
@RequestMapping(value = "picturesPreview", method = RequestMethod.POST)
public String picturesPreview(Model model, HttpServletRequest req) throws UnsupportedEncodingException {
String urls = req.getParameter("urls");
String currentUrl = req.getParameter("currentUrl");
// 路径转码
String decodedUrl = URLDecoder.decode(urls, "utf-8");
String decodedCurrentUrl = URLDecoder.decode(currentUrl, "utf-8");
// 抽取文件并返回文件列表
String[] imgs = decodedUrl.split("\\|");
List imgurls = Arrays.asList(imgs);
model.addAttribute("imgurls", imgurls);
model.addAttribute("currentUrl",decodedCurrentUrl);
return "picture";
}
/**
* 根据url获取文件内容
* 当pdfjs读取存在跨域问题的文件时将通过此接口读取
*
* @param urlPath
* @param resp
*/
@RequestMapping(value = "/getCorsFile", method = RequestMethod.GET)
public void getCorsFile(String urlPath, HttpServletResponse resp) {
InputStream inputStream = null;
try {
String strUrl = urlPath.trim();
URL url = new URL(strUrl);
//打开请求连接
URLConnection connection = url.openConnection();
HttpURLConnection httpURLConnection = (HttpURLConnection) connection;
httpURLConnection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
inputStream = httpURLConnection.getInputStream();
byte[] bs = new byte[1024];
int len;
while (-1 != (len = inputStream.read(bs))) {
resp.getOutputStream().write(bs, 0, len);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
IOUtils.closeQuietly(inputStream);
}
}
}
/**
* 通过api接口入队
* @param url 请编码后在入队
*/
@GetMapping("/addTask")
@ResponseBody
public String addQueueTask(String url) {
cacheService.addQueueTask(url);
return "success";
}
}

View File

@@ -1 +0,0 @@
app.id=file-preview

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 917 B

View File

@@ -1,41 +0,0 @@
function isInSight(el) {
const bound = el.getBoundingClientRect();
const clientHeight = window.innerHeight;
//只考虑向下滚动加载
//const clientWidth=window.innerWeight;
return bound.top <= clientHeight + 100;
}
let index = 0;
function checkImgs() {
const imgs = document.querySelectorAll('.my-photo');
for (let i = index; i < imgs.length; i++) {
if (isInSight(imgs[i])) {
loadImg(imgs[i]);
index = i;
}
}
}
function loadImg(el) {
const source = el.dataset.src;
el.src = source;
}
function throttle(fn, mustRun = 500) {
const timer = null;
let previous = null;
return function() {
const now = new Date();
const context = this;
const args = arguments;
if (!previous) {
previous = now;
}
const remaining = now - previous;
if (mustRun && remaining >= mustRun) {
fn.apply(context, args);
previous = now;
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,130 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Krataafa baako a etwa mu
previous_label=Ekyiri-baako
next.title=Krataafa a edi so baako
next_label=Dea-ɛ-di-so-baako
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title=Zuum pue
zoom_out_label=Zuum ba abɔnten
zoom_in.title=Zuum mu
zoom_in_label=Zuum mu
zoom.title=Zuum
presentation_mode.title=Sesa Yɛkyerɛ Tebea mu
presentation_mode_label=Yɛkyerɛ Tebea
open_file.title=Bue Fael
open_file_label=Bue
print.title=Prente
print_label=Prente
download.title=Twe
download_label=Twe
bookmark.title=Seisei nhwɛ (fa anaaso bue tokuro foforo mu)
bookmark_label=Seisei nhwɛ
# Secondary toolbar and context menu
# Document properties dialog box
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_title=Ti asɛm:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title= anaaso dum saedbaa
toggle_sidebar_label= anaaso dum saedbaa
document_outline_label=Dɔkomɛnt bɔbea
thumbs.title=Kyerɛ mfoniwaa
thumbs_label=Mfoniwaa
findbar.title=Hu dɔkomɛnt no mu
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Krataafa {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Krataafa ne mfoniwaa {{page}}
# Find panel button title and messages
find_previous.title=San hu fres ekyiri baako
find_previous_label=Ekyiri baako
find_next.title=San hu fres no enim baako
find_next_label=Ndiso
find_highlight=Hyɛ bibiara nso
find_match_case_label=Fa susu kaase
find_reached_top=Edu krataafa ne soro, atoa so efiri ase
find_reached_bottom=Edu krataafa n'ewiei, atoa so efiri soro
find_not_found=Ennhu fres
# Error panel labels
error_more_info=Infɔmehyɛn bio a wɔka ho
error_less_info=Te infɔmehyɛn bio a wɔka ho so
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{vɛɛhyen}} (nsi: {{si}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Nkrato: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Staake: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Fael: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Laen: {{line}}
rendering_error=Mfomso bae bere a rekyerɛ krataafa no.
# Predefined zoom values
page_scale_width=Krataafa tɛtrɛtɛ
page_scale_fit=Krataafa ehimtwa
page_scale_auto=Zuum otomatik
page_scale_actual=Kɛseyɛ ankasa
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=Mfomso
loading_error=Mfomso bae bere a wɔreloode PDF no.
invalid_file_error=PDF fael no nndi mu anaaso ho atɔ kyima.
missing_file_error=PDF fael no ayera.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Tɛkst-nyiano]
password_ok=OK
printing_not_supported=Kɔkɔbɔ: Brawsa yi nnhyɛ daa mma prent ho kwan.
printing_not_ready=Kɔkɔbɔ: Wɔnntwee PDF fael no nyinara mmbaee ama wo ɛ tumi aprente.
web_fonts_disabled=Ɔedum wɛb-mfɔnt: nntumi mmfa PDF mfɔnt a wɔhyɛ mu nndi dwuma.
document_colors_not_allowed=Wɔmma ho kwan PDF adɔkomɛnt de wɔn ara wɔn ahosu bɛdi dwuma: adum 'Ma ho kwan ma nkrataafa mpaw wɔn ara wɔn ahosu' brawsa yi mu.

View File

@@ -1,167 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=পূৰ্বৱৰ্ত পৃষ্ঠ
previous_label=পূৰ্বৱৰ্ত
next.title=পৰৱৰ্ত পৃষ্ঠ
next_label=পৰৱৰ্ত
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title=জুম আউট
zoom_out_label=জুম আউট
zoom_in.title=জুম ইন
zoom_in_label=জুম ইন
zoom.title=জুম কৰক
presentation_mode.title=উপস্থপন অৱস্থ ওক
presentation_mode_label=উপস্থপন অৱস্থ
open_file.title=ইল লক
open_file_label=লক
print.title=প্ৰিন্ট কৰক
print_label=প্ৰিন্ট কৰক
download.title=উনল' কৰক
download_label=উনল' কৰক
bookmark.title=বৰ্তম দৃশ্য (কপি কৰক অথব নতুন উইন্ড লক)
bookmark_label=বৰ্তম দৃশ্য
# Secondary toolbar and context menu
tools.title=সঁজুলিসমূহ
tools_label=সঁজুলিসমূহ
first_page.title=প্ৰথম পৃষ্ঠ ওক
first_page.label=প্ৰথম পৃষ্ঠ ওক
first_page_label=প্ৰথম পৃষ্ঠ ওক
last_page.title=সৰ্বশ পৃষ্ঠ ওক
last_page.label=সৰ্বশ পৃষ্ঠ ওক
last_page_label=সৰ্বশ পৃষ্ঠ ওক
page_rotate_cw.title=ঘড় িশত ঘুৰওক
page_rotate_cw.label=ঘড় িশত ঘুৰওক
page_rotate_cw_label=ঘড় িশত ঘুৰওক
page_rotate_ccw.title=ঘড় ওল িশত ঘুৰওক
page_rotate_ccw.label=ঘড় ওল িশত ঘুৰওক
page_rotate_ccw_label=ঘড় ওল িশত ঘুৰওক
# Document properties dialog box
document_properties.title=দস্তজৰ িষ্ট্যসমূহ
document_properties_label=দস্তজৰ িষ্ট্যসমূহ
document_properties_file_name=ইল :
document_properties_file_size=ইলৰ আক:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} bytes)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=ৰ্ষক:
document_properties_author=খক:
document_properties_subject=িষয়:
document_properties_keywords=িৰ্ডসমূহ:
document_properties_creation_date=সৃষ্টি ি:
document_properties_modification_date=পৰিবৰ্তনৰ ি:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=সৃষ্টিকৰ্ত:
document_properties_producer=PDF উৎপদক:
document_properties_version=PDF স্কৰণ:
document_properties_page_count=পৃষ্ঠ গণন:
document_properties_close=বন্ধ কৰক
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=ষব টগল কৰক
toggle_sidebar_label=ষব টগল কৰক
document_outline_label=দস্ত আউটলইন
attachments.title=এটচমন্টসমূহ খুৱওক
attachments_label=এটচমন্টসমূহ
thumbs.title=ম্বনইলসমূহ খুৱওক
thumbs_label=ম্বনইলসমূহ
findbar.title=দস্তজত সন্ধ কৰক
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=পৃষ্ঠ {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=পৃষ্ঠ ম্বনইল {{page}}
# Find panel button title and messages
find_previous.title=ক্যশৰ পূৰ্বৱৰ্ত উপস্থিি সন্ধ কৰক
find_previous_label=পূৰ্বৱৰ্ত
find_next.title=ক্যশৰ পৰৱৰ্ত উপস্থিি সন্ধ কৰক
find_next_label=পৰৱৰ্ত
find_highlight=সকল উজ্জ্বল কৰক
find_match_case_label=ফল িওক
find_reached_top=তলৰ পৰ আৰম্ভ কৰি, দস্তজৰ ওপৰল অহ
find_reached_bottom=ওপৰৰ পৰ আৰম্ভ কৰি, দস্তজৰ তলল অহ
find_not_found=ক্য নগল
# Error panel labels
error_more_info=অধি তথ্য
error_less_info=কম তথ্য
error_close=বন্ধ কৰক
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=ৰ্ত: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=স্ট: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=ইল: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=: {{line}}
rendering_error=এই পৃষ্ঠ ণ্ড কৰ এট ত্ৰুটি ি
# Predefined zoom values
page_scale_width=পৃষ্ঠ প্ৰস্থ
page_scale_fit=পৃষ্ঠ
page_scale_auto=স্বচি জুম
page_scale_actual=প্ৰকৃত আক
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=ত্ৰুটি
loading_error=PDF ' কৰ এট ত্ৰুটি ি
invalid_file_error=অব অথব ক্ষতিগ্ৰস্থ PDF file
missing_file_error=সন্ধনহি PDF ইল
unexpected_response_error=অপ্ৰত্যি ৰ্ভ প্ৰতিক্ৰি
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} ]
password_label=এই PDF ইল িবল ছৱৰ্ড সুমুৱওক
password_invalid=অব ছৱৰ্ড অনুগ্ৰহ কৰি পুনৰ ষ্ট কৰক
password_ok=ি আছ
printing_not_supported=সতৰ্কবৰ্ত: প্ৰিন্টি এই ব্ৰউছ দ্ব সম্পূৰ্ণভ সমৰ্থি নহয়
printing_not_ready=সতৰ্কবৰ্ত: PDF প্ৰিন্টি সম্পূৰ্ণভ ' নহয়
web_fonts_disabled= ফন্টসমূহ অসমৰ্থব কৰ আছ: অন্তৰ্ভুক্ত PDF ফন্টসমূহ ব্যৱহ কৰিবল অক্ষম
document_colors_not_allowed=PDF দস্তজসমূহৰ িহতৰ িজস্ব ৰঙ ব্যৱহ কৰ অনুমতি : ব্ৰউছৰত 'পৃষ্ঠসমূহক িহতৰ িজস্ব ৰঙ িৰ্বচন কৰ অনুমতি িয়ক' অসমৰ্থব কৰ আছ

View File

@@ -1,177 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=পূর্ববর্ত পৃষ্ঠ
previous_label=পূর্ববর্ত
next.title=পরবর্ত পৃষ্ঠ
next_label=পরবর্ত
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
page.title=
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
of_pages={{pagesCount}}
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pagesCount}} এর {{pageNumber}})
zoom_out.title= প্রদর্শন
zoom_out_label= প্রদর্শন
zoom_in.title=বড় প্রদর্শন
zoom_in_label=বড় প্রদর্শন
zoom.title=প্রদর্শন
presentation_mode.title=উপস্থপন স্যুইচ করুন
presentation_mode_label=উপস্থপন
open_file.title=ইল খুলুন
open_file_label=খুলুন
print.title=প্রিন্ট করুন
print_label=প্রিন্ট করুন
download.title=উনল করুন
download_label=উনল করুন
bookmark.title=বর্তম প্রদর্শন (কপি করুন অথব নতুন উইন্ড খুলুন)
bookmark_label=বর্তম প্রদর্শন
# Secondary toolbar and context menu
tools.title=সরঞ্জ
tools_label=সরঞ্জ
first_page.title=প্রথম পৃষ্ঠ চলুন
first_page.label=প্রথম পৃষ্ঠ চলুন
first_page_label=প্রথম পৃষ্ঠ চলুন
last_page.title=সর্বশ পৃষ্ঠ চলুন
last_page.label=সর্বশ পৃষ্ঠ চলুন
last_page_label=সর্বশ পৃষ্ঠ চলুন
page_rotate_cw.title=নদি হব
page_rotate_cw.label=নদি হব
page_rotate_cw_label=নদি হব
page_rotate_ccw.title=ঁদি হব
page_rotate_ccw.label=ঁদি হব
page_rotate_ccw_label=ঁদি হব
# Document properties dialog box
document_properties.title=নথি িষ্ট্য
document_properties_label=নথি িষ্ট্য
document_properties_file_name=ইল :
document_properties_file_size=ইল :
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} bytes)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} ইট ({{size_b}} bytes)
document_properties_title=ি:
document_properties_author=খক:
document_properties_subject=িষয়:
document_properties_keywords=ির্দশক শব্দ:
document_properties_creation_date=ির্ম ি:
document_properties_modification_date=পরিবর্তন ি:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=ির্ম:
document_properties_producer=PDF ির্ম:
document_properties_version=PDF স্করণ:
document_properties_page_count= পৃষ্ঠ:
document_properties_close=বন্ধ করুন
print_progress_message=ডকুমন্ট প্রিন্টি- জন্য ি কর হচ্ছ...
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_percent={{progress}}%
print_progress_close=ি
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=ইডব টগল করুন
toggle_sidebar_label=ইডব টগল করুন
document_outline.title=ডকুমন্ট আউটলইন (দুব ক্লি করুন //collapse সমস্ত আইটেম)
document_outline_label=ডকুমন্ট আউটলইন
attachments.title=যুক্তিসমূহ
attachments_label=যুক্ত বস্তু
thumbs.title=ম্ব-ইল প্রদর্শন
thumbs_label=ম্ব-ইল প্রদর্শন
findbar.title=নথি খুঁজুন
findbar_label=অনুসন্ধ করুন
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=পৃষ্ঠ {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=পৃষ্ঠ {{page}}- ম্ব-ইল
# Find panel button title and messages
find_previous.title=িহ্নি ক্তি পূর্ববর্ত উপস্থিি অনুসন্ধ করুন
find_previous_label=পূর্ববর্ত
find_next.title=িহ্নি ক্তি পরবর্ত উপস্থিি অনুসন্ধ করুন
find_next_label=পরবর্ত
find_highlight=সমগ্র উজ্জ্বল করুন
find_match_case_label=হরফ ঁদ হব
find_reached_top=পৃষ্ঠ প্ররম্ভ , আরম্ভ কর হব
find_reached_bottom=পৃষ্ঠ অন্তি প্রন্ত , প্রথম আরম্ভ কর হব
find_not_found=ক্তি ওয় য়নি
# Error panel labels
error_more_info=অতিিক্ত তথ্য
error_less_info=কম তথ্য
error_close=বন্ধ করুন
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Message: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Stack: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=File: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Line: {{line}}
rendering_error=পৃষ্ঠ প্রদর্শনক একটি সমস্য ি
# Predefined zoom values
page_scale_width=পৃষ্ঠ প্রস্থ অনুয
page_scale_fit=পৃষ্ঠ অনুয
page_scale_auto=স্বয়ক্রি ির্ধরণ
page_scale_actual=প্রকৃত
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=ত্রুটি
loading_error=PDF কর সময় সমস্য ি
invalid_file_error=অব ক্ষতিগ্রস্ত িিএফ ইল
missing_file_error=অনুপস্থি PDF ইল
unexpected_response_error=র্ভ অপ্রত্যি ওয়
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Annotation]
password_label=এই PDF ইল জন্য সওয়র্ড ি
password_invalid=সওয়র্ড সঠি নয় অনুগ্রহ কর পুনর প্রচষ্ট করুন
password_ok=OK
password_cancel=ি করুন
printing_not_supported=সতর্কবর্ত: এই ব্রউজ দ্ব প্রিন্ট ব্যবস্থ সম্পূর্ণরূপ সমর্থি নয়
printing_not_ready=সতর্কব: িিএফ সম্পূর্ণরূপ মুদ্রণ জন্য কর হয় .
web_fonts_disabled=ওয় ফন্ট িষ্ক্রিয় কর হয়: এমব িিএফ ফন্ট ব্যবহ করত অক্ষম.
document_colors_not_allowed=িিএফ নথি িজস্ব ব্যবহ কর জন্য অনুমতিপ্রপ্ত নয়: ব্রউজ িষ্ক্রিয় কর হয় ' িজস্ব ির্বচন কর অনুমতি প্রদ কর '

View File

@@ -1,134 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Pòprzédnô strona
previous_label=Pòprzédnô
next.title=Nôslédnô strona
next_label=Nôslédnô
# LOCALIZATION NOTE (page_label, page_of):
# These strings are concatenated to form the "Page: X of Y" string.
# Do not translate "{{pageCount}}", it will be substituted with a number
# representing the total number of pages.
page_label=Strona:
page_of=z {{pageCount}}
zoom_out.title=Zmniészë
zoom_out_label=Zmniészë
zoom_in.title=Zwikszë
zoom_in_label=Wiôlgòsc
zoom.title=Wiôlgòsc
print.title=Drëkùjë
print_label=Drëkùjë
presentation_mode.title=Przéńdzë w trib prezentacje
presentation_mode_label=Trib prezentacje
open_file.title=Òtemkni lopk
open_file_label=Òtemkni
download.title=Zladënk
download_label=Zladënk
bookmark.title=Spamiãtôj wëzdrzatk (kòpérëje, abò òtemkni w nowim òknnie)
bookmark_label=Aktualny wëzdrzatk
find_label=Szëkôj:
find_previous.title=Biéj do pòprzédnégò wënikù szëkbë
find_previous_label=Pòprzédny
find_next.title=Biéj do nôslédnégò wënikù szëkbë
find_next_label=Nôslédny
find_highlight=Pòdszkrzëni wszëtczé
find_match_case_label=Rozeznôwôj miarã lëterów
find_not_found=Nie nalôzł tekstu
find_reached_bottom=Doszedł do kùńca dokùmentu, zaczinającë òd górë
find_reached_top=Doszedł do pòczątkù dokùmentu, zaczinającë òd dołù
toggle_sidebar.title=Pòsuwk wëbiérkù
toggle_sidebar_label=Pòsuwk wëbiérkù
outline.title=Wëskrzëni òbcéch dokùmentu
outline_label=Òbcéch dokùmentu
thumbs.title=Wëskrzëni miniaturë
thumbs_label=Miniaturë
findbar.title=Przeszëkôj dokùment
findbar_label=Nalezë
tools_label=Nôrzãdła
first_page.title=Biéj do pierszi stronë
first_page.label=Biéj do pierszi stronë
last_page.label=Biéj do òstatny stronë
invalid_file_error=Lëchi ôrt, abò pòpsëti lopk PDF.
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Strona {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Miniatura stronë {{page}}
# Error panel labels
error_more_info=Wicy infòrmacje
error_less_info=Mni infòrmacje
error_close=Close
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Message: {{wiadło}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Stack: {{stóg}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=File: {{lopk}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Line: {{line}}
rendering_error=Pòkôza fela przë renderowanim stronë.
# Predefined zoom values
page_scale_width=Szérzawa stronë
page_scale_fit=Dopasëje stronã
page_scale_auto=Aùtomatnô wiôlgòsc
page_scale_actual=Naturalnô wiôlgòsc
# Loading indicator messages
# LOCALIZATION NOTE (error_line): "{{[percent}}" will be replaced with a percentage
loading_error_indicator=Fela
loading_error=Pòkôza fela przë wczëtiwanim PDFù.
# LOCALIZATION NOTE (text_annotation_type): This is used as a tooltip.
# "{{[type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
request_password=PDF je zabezpieczony parolą:
printing_not_supported = Òstrzéga: przezérnik nie je do kùńca wspieróny przez drëkôrze
# Context menu
page_rotate_cw.label=Òbkrãcë w prawò
page_rotate_ccw.label=Òbkrãcë w lewò
last_page.title=Biéj do pòprzédny stronë
last_page_label=Biéj do pòprzédny stronë
page_rotate_cw.title=Òbkrãcë w prawò
page_rotate_cw_label=Òbkrãcë w prawò
page_rotate_ccw.title=Òbkrãcë w lewò
page_rotate_ccw_label=Òbkrãcë w lewò
web_fonts_disabled=Sécowé czconczi wëłączoné: włączë je, móc ùżiwac òsadzonëch czconków w lopkach PDF.
missing_file_error=Felëje lopka PDF.
printing_not_ready = Òstrzéga: lopk mùszi do kùńca wczëtac zanim mòże drëkòwac
document_colors_disabled=Dokùmentë PDF nie mògą ù swòjich farwów: \'Pòzwòlë stronóm wëbierac swòje farwë\' je wëłączoné w przezérnikù.
invalid_password=Lëchô parola.
text_annotation_type.alt=[Adnotacjô {{type}}]
tools.title=Tools
first_page_label=Go to First Page

View File

@@ -1,117 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
previous.title = Página anterior
previous_label = Anterior
next.title = Página siguiente
next_label = Siguiente
page.title = Página
of_pages = de {{pagesCount}}
page_of_pages = ({{pageNumber}} de {{pagesCount}})
zoom_out.title = Reducir
zoom_out_label = Reducir
zoom_in.title = Aumentar
zoom_in_label = Aumentar
zoom.title = Tamaño
presentation_mode.title = Cambiar al modo presentación
presentation_mode_label = Modo presentación
open_file.title = Abrir archivo
open_file_label = Abrir
print.title = Imprimir
print_label = Imprimir
download.title = Descargar
download_label = Descargar
bookmark.title = Vista actual (copiar o abrir en una nueva ventana)
bookmark_label = Vista actual
tools.title = Herramientas
tools_label = Herramientas
first_page.title = Ir a la primera página
first_page.label = Ir a la primera página
first_page_label = Ir a la primera página
last_page.title = Ir a la última página
last_page.label = Ir a la última página
last_page_label = Ir a la última página
page_rotate_cw.title = Rotar en sentido horario
page_rotate_cw.label = Rotar en sentido horario
page_rotate_cw_label = Rotar en sentido horario
page_rotate_ccw.title = Rotar en sentido antihorario
page_rotate_ccw.label = Rotar en sentido antihorario
page_rotate_ccw_label = Rotar en sentido antihorario
cursor_text_select_tool.title = Activar herramienta de selección de texto
cursor_text_select_tool_label = Herramienta de selección de texto
cursor_hand_tool.title = Activar herramienta de mano
cursor_hand_tool_label = Herramienta de mano
document_properties.title = Propiedades del documento
document_properties_label = Propiedades del documento
document_properties_file_name = Nombre de archivo:
document_properties_file_size = Tamaño de archivo:
document_properties_kb = {{size_kb}} KB ({{size_b}} bytes)
document_properties_mb = {{size_mb}} MB ({{size_b}} bytes)
document_properties_title = Título:
document_properties_author = Autor:
document_properties_subject = Asunto:
document_properties_keywords = Palabras clave:
document_properties_creation_date = Fecha de creación:
document_properties_modification_date = Fecha de modificación:
document_properties_date_string = {{date}}, {{time}}
document_properties_creator = Creador:
document_properties_producer = Productor PDF:
document_properties_version = Versión PDF:
document_properties_page_count = Número de páginas:
document_properties_close = Cerrar
print_progress_message = Preparando documento para impresión
print_progress_percent = {{progress}}%
print_progress_close = Cancelar
toggle_sidebar.title = Cambiar barra lateral
toggle_sidebar_notification.title = Alternar panel lateral (el documento contiene un esquema o adjuntos)
toggle_sidebar_label = Cambiar barra lateral
document_outline.title = Mostrar resumen del documento (doble clic para expandir/contraer todos los elementos)
document_outline_label = Resumen de documento
attachments.title = Mostrar adjuntos
attachments_label = Adjuntos
thumbs.title = Mostrar miniaturas
thumbs_label = Miniaturas
findbar.title = Buscar en el documento
findbar_label = Buscar
thumb_page_title = Página {{page}}
thumb_page_canvas = Miniatura de la página {{page}}
find_input.title = Buscar
find_input.placeholder = Buscar en el documento
find_previous.title = Encontrar la anterior aparición de la frase
find_previous_label = Anterior
find_next.title = Encontrar la siguiente aparición de esta frase
find_next_label = Siguiente
find_highlight = Resaltar todos
find_match_case_label = Coincidencia de mayús./minús.
find_reached_top = Se alcanzó el inicio del documento, se continúa desde el final
find_reached_bottom = Se alcanzó el final del documento, se continúa desde el inicio
find_not_found = Frase no encontrada
error_more_info = Más información
error_less_info = Menos información
error_close = Cerrar
error_version_info = PDF.js v{{version}} (build: {{build}})
error_message = Mensaje: {{message}}
error_stack = Pila: {{stack}}
error_file = Archivo: {{file}}
error_line = Línea: {{line}}
rendering_error = Ocurrió un error al renderizar la página.
page_scale_width = Anchura de la página
page_scale_fit = Ajuste de la página
page_scale_auto = Tamaño automático
page_scale_actual = Tamaño real
page_scale_percent = {{scale}}%
loading_error_indicator = Error
loading_error = Ocurrió un error al cargar el PDF.
invalid_file_error = Fichero PDF no válido o corrupto.
missing_file_error = No hay fichero PDF.
unexpected_response_error = Respuesta inesperada del servidor.
text_annotation_type.alt = [Anotación {{type}}]
password_label = Introduzca la contraseña para abrir este archivo PDF.
password_invalid = Contraseña no válida. Vuelva a intentarlo.
password_ok = Aceptar
password_cancel = Cancelar
printing_not_supported = Advertencia: Imprimir no está totalmente soportado por este navegador.
printing_not_ready = Advertencia: Este PDF no se ha cargado completamente para poder imprimirse.
web_fonts_disabled = Las tipografías web están desactivadas: es imposible usar las tipografías PDF embebidas.
document_colors_not_allowed = Los documentos PDF no tienen permitido usar sus propios colores: 'Permitir a las páginas elegir sus propios colores' está desactivado en el navegador.

View File

@@ -1,146 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Rûpela berê
previous_label=Paşve
next.title=Rûpela pêş
next_label=Pêş
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title=Dûr bike
zoom_out_label=Dûr bike
zoom_in.title=Nêzîk bike
zoom_in_label=Nêzîk bike
zoom.title=Nêzîk Bike
presentation_mode.title=Derbasî mûda pêşkêşkariyê bibe
presentation_mode_label=Moda Pêşkêşkariyê
open_file.title=Pelî veke
open_file_label=Veke
print.title=Çap bike
print_label=Çap bike
download.title=Jêbar bike
download_label=Jêbar bike
bookmark.title=Xuyakirina niha (kopî yan di pencereyeke de veke)
bookmark_label=Xuyakirina niha
# Secondary toolbar and context menu
tools.title=Amûr
tools_label=Amûr
first_page.title=Here rûpela yekemîn
first_page.label=Here rûpela yekemîn
first_page_label=Here rûpela yekemîn
last_page.title=Here rûpela dawîn
last_page.label=Here rûpela dawîn
last_page_label=Here rûpela dawîn
page_rotate_cw.title=Bi aliyê saetê ve bizivirîne
page_rotate_cw.label=Bi aliyê saetê ve bizivirîne
page_rotate_cw_label=Bi aliyê saetê ve bizivirîne
page_rotate_ccw.title=Berevajî aliyê saetê ve bizivirîne
page_rotate_ccw.label=Berevajî aliyê saetê ve bizivirîne
page_rotate_ccw_label=Berevajî aliyê saetê ve bizivirîne
# Document properties dialog box
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_title=Sernav:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Darikê kêlekê veke/bigire
toggle_sidebar_label=Darikê kêlekê veke/bigire
document_outline_label=Şemaya belgeyê
thumbs.title=Wênekokan nîşan bide
thumbs_label=Wênekok
findbar.title=Di belgeyê de bibîne
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Rûpel {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Wênekoka rûpelê {{page}}
# Find panel button title and messages
find_previous.title=Peyva berê bibîne
find_previous_label=Paşve
find_next.title=Peyya pêş bibîne
find_next_label=Pêşve
find_highlight=Tevî beloq bike
find_match_case_label=Ji bo tîpên hûrdek-girdek bihîstyar
find_reached_top=Gihîşt serê rûpelê, ji dawiya rûpelê bidomîne
find_reached_bottom=Gihîşt dawiya rûpelê, ji serê rûpelê bidomîne
find_not_found=Peyv nehat dîtin
# Error panel labels
error_more_info=Zêdetir agahî
error_less_info=Zêdetir agahî
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js versiyon {{version}} (avanî: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Peyam: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Komik: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Pel: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Rêzik: {{line}}
rendering_error=Di vehûrandina rûpelê de çewtî çêbû.
# Predefined zoom values
page_scale_width=Firehiya rûpelê
page_scale_fit=Di rûpelê de bicî bike
page_scale_auto=Xweber nêzîk bike
page_scale_actual=Mezinahiya rastîn
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=Xeletî
loading_error=Dema ku PDF dihat barkirin çewtiyek çêbû.
invalid_file_error=Pelê PDFê nederbasdar yan xirabe ye.
missing_file_error=Pelê PDFê kêm e.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[Nîşaneya {{type}}ê]
password_label=Ji bo PDFê vekî şîfreyê binivîse.
password_invalid=Şîfre çewt e. Tika ye dîsa biceribîne.
password_ok=Temam
printing_not_supported=Hişyarî: Çapkirin ji hêla gerokê ve bi temamî nayê destekirin.
printing_not_ready=Hişyarî: PDF bi temamî nehat barkirin û ji bo çapê ne amade ye.
web_fonts_disabled=Fontên Webê neçalak in: Fontên PDFê yên veşartî nayên bikaranîn.
document_colors_not_allowed=Destûr tune ye ku belgeyên PDFê rengên xwe bi kar bînin: Di gerokê de 'destûrê bide rûpelan ku rengên xwe bi kar bînin' nehatiye çalakirin.

View File

@@ -1,168 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=पछि पृष्ठ
previous_label=पछि
next.title=अगि पृष्ठ
next_label=आग
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title= करू
zoom_out_label= करू
zoom_in.title=पैघ करू
zoom_in_label=जूम इन
zoom.title=-पैघ करू\u0020
presentation_mode.title=प्रस्तुति अवस्थमे
presentation_mode_label=प्रस्तुति अवस्थ
open_file.title=इल लू
open_file_label=लू
print.title=पू
print_label=पू
download.title=उनल
download_label=उनल
bookmark.title=जुद दृश्य (नव िंडमे नकल ि अथव लू)
bookmark_label=वर्तम दृश्य
# Secondary toolbar and context menu
tools.title=अओज
tools_label=अओज
first_page.title=प्रथम पृष्ठ पर
first_page.label=प्रथम पृष्ठ पर
first_page_label=प्रथम पृष्ठ पर
last_page.title=अंति पृष्ठ पर
last_page.label=अंति पृष्ठ पर
last_page_label=अंति पृष्ठ पर
page_rotate_cw.title=घड़ ि मे घुम
page_rotate_cw.label=घड़ ि मे घुम
page_rotate_cw_label=घड़ ि मे घुम
page_rotate_ccw.title=घड़ ि सँ उनट घुम
page_rotate_ccw.label=घड़ ि सँ उनट घुम
page_rotate_ccw_label=घड़ ि सँ उनट घुम
# Document properties dialog box
document_properties.title=दस्तवेज़ िशेषत...
document_properties_label=दस्तवेज़ िशेषत...
document_properties_file_name=इल :
document_properties_file_size=फ़इल आक:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} इट)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}} इट)
document_properties_title=र्षक:
document_properties_author=लेखक
document_properties_subject=िषय
document_properties_keywords=जशब्द
document_properties_creation_date=िर्म िि:
document_properties_modification_date=संशधन िंक:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=सृजक:
document_properties_producer=PDF उत्पदक:
document_properties_version=PDF संस्करण:
document_properties_page_count=पृष्ठ िनत:
document_properties_close=बन्न करू
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=स्लइडर गल
toggle_sidebar_label=स्लइडर गल
document_outline_label=दस्तवेज
attachments.title=संलग्नक देखबू
attachments_label=संलग्नक
thumbs.title=लघु-छवि देख
thumbs_label=लघु छवि
findbar.title=दस्तवेजमे ढूँढू
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=पृष्ठ {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=पृष्ठ {{page}} लघु-ित्र
# Find panel button title and messages
find_previous.title=जक पछि उपस्थिि कू
find_previous_label=पछि
find_next.title=जक अगि उपस्थिि कू
find_next_label=आग
find_highlight=सभट आलि करू
find_match_case_label=ि स्थिि
find_reached_top=पृष्ठक र्ष पहुँचल, तल सँ
find_reached_bottom=पृष्ठक तल मे पहुँचल, र्ष सँ
find_not_found=ंश नहि भेटल
# Error panel labels
error_more_info=बेस सूचन
error_less_info=कम सूचन
error_close=बन्न करू
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=संदेश: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=स्टैक: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=फ़इल: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=पंक्ति: {{line}}
rendering_error=पृष्ठ रेंडरिंगक समय त्रुटि आएल.
# Predefined zoom values
page_scale_width=पृष्ठ चओड़
page_scale_fit=पृष्ठ ि
page_scale_auto=स्वचि जूम
page_scale_actual=सह आक
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=त्रुटि
loading_error=एफ करैत समय एकट त्रुटि भेल.
invalid_file_error=अमन्य अथव भ्रष्ट PDF इल.
missing_file_error=अनुपस्थि PDF इल.
unexpected_response_error=सर्वर सँ अप्रत्यि प्रतिक्रि.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Annotation]
password_label=एहि एफ फ़इल केँ लब लेल कृपय कूटशब्द भरू.
password_invalid=अवैध कूटशब्द, कृपय िनु ि करू.
password_ok=बेस
printing_not_supported=चेतवन: ब्रउजर पर छप पूर्ण तरह सँ समर्थि नहि अछि.
printing_not_ready=चेतवन: एफ छपइक लेल पूर्ण तरह सँ नहि अछि.
web_fonts_disabled=वेब न्ट्स िष्क्रि अछि: अंतस्थि PDF न्टसक उपयगमे असमर्थ.
document_colors_not_allowed=PDF दस्तवेज़ हुकर अपन रंग केँ उपय करब लेल अनुमति प्रप्त नहि अछि: 'पृष्ठ केँ हुकर अपन रंग केँ चुनब लेल स्वकृति ि जे ओहि ब्रउज़र मे िष्क्रि अछि.

View File

@@ -1,168 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=മുമ്പുള്ള ള്‍
previous_label=മുമ്പു്
next.title=അടുത്ത ള്‍
next_label=അടുത്തതു്
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title=റുതക്കുക
zoom_out_label=റുതക്കുക
zoom_in.title=വലുതക്കുക
zoom_in_label=വലുതക്കുക
zoom.title=വ്യപ്തി റ്റുക
presentation_mode.title=പ്രസന്റഷന്‍ ിിക്കു് റ്റുക
presentation_mode_label=പ്രസന്റഷന്‍ ി
open_file.title=ഫയല്‍ തുറക്കുക
open_file_label=തുറക്കുക
print.title=പ്രിന്റ് യ്യുക
print_label=പ്രിന്റ് യ്യുക
download.title=ണ്‍ലഡ് യ്യുക
download_label=ണ്‍ലഡ് യ്യുക
bookmark.title=ിലവിലുള്ള ഴ്ച (പുതി ലകത്തില്‍ പകര്‍ത്തുക അല്ലങ്കില്‍ തുറക്കുക)
bookmark_label=ിലവിലുള്ള ഴ്ച
# Secondary toolbar and context menu
tools.title=ഉപകരണങ്ങള്‍
tools_label=ഉപകരണങ്ങള്‍
first_page.title=ആദ്യത്ത ിയ്ക്കു് കുക
first_page.label=ആദ്യത്ത ിയ്ക്കു് കുക
first_page_label=ആദ്യത്ത ിയ്ക്കു് കുക
last_page.title=അവസ ിയ്ക്കു് കുക
last_page.label=അവസ ിയ്ക്കു് കുക
last_page_label=അവസ ിയ്ക്കു് കുക
page_rotate_cw.title=ഘടിരദിശയില്‍ കറക്കുക
page_rotate_cw.label=ഘടിരദിശയില്‍ കറക്കുക
page_rotate_cw_label=ഘടിരദിശയില്‍ കറക്കുക
page_rotate_ccw.title=ഘടി ിശയ്ക്കു് ിപരതമി കറക്കുക
page_rotate_ccw.label=ഘടി ിശയ്ക്കു് ിപരതമി കറക്കുക
page_rotate_ccw_label=ഘടി ിശയ്ക്കു് ിപരതമി കറക്കുക
# Document properties dialog box
document_properties.title=ഖയുട ിഷതകള്‍...
document_properties_label=ഖയുട ിഷതകള്‍...
document_properties_file_name=ഫയലിന്റ ര്‌:
document_properties_file_size=ഫയലിന്റ വലിപ്പ:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} ി ({{size_b}} റ്റുകള്‍)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} ി ({{size_b}} റ്റുകള്‍)
document_properties_title=തലക്കട്ട്‌\u0020
document_properties_author=രചയിവ്:
document_properties_subject=ിഷയ:
document_properties_keywords=ര്‍ഡുകള്‍:
document_properties_creation_date=പൂര്‍ത്തികുന്ന യതി:
document_properties_modification_date=റ്റ വരുത്തി യതി:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=സൃഷ്ടികര്‍ത്തവ്:
document_properties_producer=ിിഎഫ് പ്രഡ്യൂസര്‍:
document_properties_version=ിിഎഫ് പതിപ്പ്:
document_properties_page_count=ിന്റ എണ്ണ:
document_properties_close=അടയ്ക്കുക
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=ഡ് ിക്കു് റ്റുക
toggle_sidebar_label=ഡ് ിക്കു് റ്റുക
document_outline_label=ഖയുട ഔട്ട്ലന്‍
attachments.title=അറ്റച്മന്റുകള്‍ ിയ്ക്കുക
attachments_label=അറ്റച്മന്റുകള്‍
thumbs.title=ബ്നിലുകള്‍ ിയ്ക്കുക
thumbs_label=ബ്നിലുകള്‍
findbar.title=ഖയില്‍ കണ്ടുപിിയ്ക്കുക
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=ള്‍ {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas={{page}} ിനുള്ള ബ്നില്‍
# Find panel button title and messages
find_previous.title=ചക ഇതിനു മുന്‍പ്‌ ആവര്‍ത്തിച്ചത്‌ കണ്ടത്തുക\u0020
find_previous_label=മുമ്പു്
find_next.title=ചക ണ്ടു ആവര്‍ത്തിക്കുന്നത്‌ കണ്ടത്തുക\u0020
find_next_label=അടുത്തതു്
find_highlight=എല്ല എടുത്തുകിയ്ക്കുക
find_match_case_label=അക്ഷരങ്ങള്‍ ഒത്തുനക്കുക
find_reached_top=ഖയുട മുകളില്‍ എത്തിിിക്കുന്നു, ിന്നു തുടരുന്നു
find_reached_bottom=ഖയുട അവസ വര എത്തിിിക്കുന്നു, മുകളില്‍ ിന്നു തുടരുന്നു\u0020
find_not_found=ചക കണ്ടത്തില്ല\u0020
# Error panel labels
error_more_info=കൂടുതല്‍ ിവര
error_less_info=കുറച്ച് ിവര
error_close=അടയ്ക്കുക
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=സന്ദ: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=സ്റ്റക്ക്: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=ഫയല്‍: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=വരി: {{line}}
rendering_error=ള്‍ ണ്ടര്‍ യ്യുമ്പള്‍‌ ിശകുണ്ടിിയ്ക്കുന്നു.
# Predefined zoom values
page_scale_width=ിന്റ ി
page_scale_fit=ള്‍ കത്തിക്കുക
page_scale_auto=സ്വയമി വലുതക്കുക
page_scale_actual=യഥര്‍ത്ഥ വ്യപ്തി
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
page_scale_percent={{scale}}%
# Loading indicator messages
loading_error_indicator=ിശക്
loading_error=ിിഎഫ് ലഭ്യമക്കുമ്പള്‍ ിശക് ഉണ്ടിിയ്ക്കുന്നു.
invalid_file_error=റ്റ അല്ലങ്കില്‍ തകരറുള്ള ിിഎഫ് ഫയല്‍.
missing_file_error=ിിഎഫ് ഫയല്‍ ലഭ്യമല്ല.
unexpected_response_error=പ്രതക്ഷിക്കത്ത ര്‍വര്‍ മറുപടി.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Annotation]
password_label= ിിഎഫ് ഫയല്‍ തുറക്കുന്നതിനു് രഹസ്യവക്ക് നല്‍കുക.
password_invalid=റ്റ രഹസ്യവക്ക്, ദയവി ണ്ടു ശ്രമിയ്ക്കുക.
password_ok=ശരി
printing_not_supported=മുന്നറിിപ്പു്: ബ്രസര്‍ പൂര്‍ണ്ണമി പ്രിന്റിങ് ിന്തുണയ്ക്കുന്നില്ല.
printing_not_ready=മുന്നറിിപ്പു്: പ്രിന്റ് യ്യുന്നതിനു് ിിഎഫ് പൂര്‍ണ്ണമി ലഭ്യമല്ല.
web_fonts_disabled=ിനുള്ള അക്ഷരസഞ്ചയങ്ങള്‍ പ്രവര്‍ത്തന രഹി: ബഡ്ഡ് യ്ത ിിഎഫ് അക്ഷരസഞ്ചയങ്ങള്‍ ഉപയിയ്ക്കുവന്‍ ധ്യമല്ല.
document_colors_not_allowed=സ്വന്ത ിറങ്ങള്‍ ഉപയിയ്ക്കുവന്‍ ിിഎഫ് ഖകള്‍ക്കു് അനുവദമില്ല: 'സ്വന്ത ിറങ്ങള്‍ ഉപയിയ്ക്കുവന്‍ ളുകള അനുവദിയ്ക്കുക' എന്നതു് ബ്രസറില്‍ ിര്‍ജവമണു്.

View File

@@ -1,82 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom.title=Тэлэлт
open_file.title=Файл нээ
open_file_label=Нээ
# Secondary toolbar and context menu
# Document properties dialog box
document_properties_file_name=Файлын нэр:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_title=Гарчиг:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
# Find panel button title and messages
find_previous.title=Хайлтын өмнөх олдцыг харуулна
find_next.title=Хайлтын дараагийн олдцыг харуулна
find_not_found=Олдсонгүй
# Error panel labels
error_more_info=Нэмэлт мэдээлэл
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
# Predefined zoom values
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=Алдаа
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
password_ok=OK

View File

@@ -1,130 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Letlakala le fetilego
previous_label=Fetilego
next.title=Letlakala le latelago
next_label=Latelago
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title=Bušetša ka gare
zoom_out_label=Bušetša ka gare
zoom_in.title=Godišetša ka ntle
zoom_in_label=Godišetša ka ntle
zoom.title=Godiša
presentation_mode.title=Fetogela go mokgwa wa tlhagišo
presentation_mode_label=Mokgwa wa tlhagišo
open_file.title=Bula faele
open_file_label=Bula
print.title=Gatiša
print_label=Gatiša
download.title=Laolla
download_label=Laolla
bookmark.title=Pono ya bjale (kopiša le go bula lefasetereng le leswa)
bookmark_label=Tebelelo ya gona bjale
# Secondary toolbar and context menu
# Document properties dialog box
document_properties_file_name=Leina la faele:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_title=Thaetlele:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Šielanya para ya ka thoko
toggle_sidebar_label=Šielanya para ya ka thoko
document_outline_label=Kakaretšo ya tokumente
thumbs.title=Laetša dikhutšofatšo
thumbs_label=Dikhutšofatšo
findbar.title=Hwetša go tokumente
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Letlakala {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Khutšofatšo ya letlakala {{page}}
# Find panel button title and messages
find_previous.title=Hwetša tiragalo e fetilego ya sekafoko
find_previous_label=Fetilego
find_next.title=Hwetša tiragalo e latelago ya sekafoko
find_next_label=Latelago
find_highlight=Bonagatša tšohle
find_match_case_label=Swantšha kheisi
find_reached_top=Fihlile godimo ga tokumente, go tšwetšwe pele go tloga tlase
find_reached_bottom=Fihlile mafelelong a tokumente, go tšwetšwe pele go tloga godimo
find_not_found=Sekafoko ga sa hwetšwa
# Error panel labels
error_more_info=Tshedimošo e oketšegilego
error_less_info=Tshedimošo ya tlasana
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Molaetša: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Mokgobo: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Faele: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Mothaladi: {{line}}
rendering_error=Go diregile phošo ge go be go gafelwa letlakala.
# Predefined zoom values
page_scale_width=Bophara bja letlakala
page_scale_fit=Go lekana ga letlakala
page_scale_auto=Kgodišo ya maitirišo
page_scale_actual=Bogolo bja kgonthe
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=Phošo
loading_error=Go diregile phošo ge go hlahlelwa PDF.
invalid_file_error=Faele ye e sa šomego goba e senyegilego ya PDF.
missing_file_error=Faele yeo e sego gona ya PDF.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Tlhaloso]
password_ok=LOKILE
printing_not_supported=Temošo: Go gatiša ga go thekgwe ke praosara ye ka botlalo.
printing_not_ready=Temošo: PDF ga ya hlahlelwa ka botlalo bakeng sa go gatišwa.
web_fonts_disabled=Difonte tša wepe di šitišitšwe: ga e kgone go diriša difonte tša PDF tše khutišitšwego.

View File

@@ -1,167 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=ପୂର୍ବ ପୃଷ୍ଠ
previous_label=ପୂର୍ବ
next.title=ପର ପୃଷ୍ଠ
next_label=ପର
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title= କରନ୍ତୁ
zoom_out_label= କରନ୍ତୁ
zoom_in.title=ବଡ଼ କରନ୍ତୁ
zoom_in_label=ବଡ଼ କରନ୍ତୁ
zoom.title= ବଡ଼ କରନ୍ତୁ
presentation_mode.title=ଉପସ୍ଥପନ କୁ ବଦଳନ୍ତୁ
presentation_mode_label=ଉପସ୍ଥପନ
open_file.title=ଇଲ ଲନ୍ତୁ
open_file_label=ଲନ୍ତୁ
print.title=ମୁଦ୍ରଣ
print_label=ମୁଦ୍ରଣ
download.title=ଆହରଣ
download_label=ଆହରଣ
bookmark.title=ପ୍ରଚଳିତ ଦୃଶ୍ୟ (ନକଲ କରନ୍ତୁ କିମ୍ବ ଏକ ନୂତନ ୱିଣ୍ଡ ଲନ୍ତୁ)
bookmark_label=ପ୍ରଚଳିତ ଦୃଶ୍ୟ
# Secondary toolbar and context menu
tools.title=ଧନଗୁଡ଼ିକ
tools_label=ଧନଗୁଡ଼ିକ
first_page.title=ପ୍ରଥମ ପୃଷ୍ଠକୁ ଆନ୍ତୁ
first_page.label=ପ୍ରଥମ ପୃଷ୍ଠକୁ ଆନ୍ତୁ
first_page_label=ପ୍ରଥମ ପୃଷ୍ଠକୁ ଆନ୍ତୁ
last_page.title= ପୃଷ୍ଠକୁ ଆନ୍ତୁ
last_page.label= ପୃଷ୍ଠକୁ ଆନ୍ତୁ
last_page_label= ପୃଷ୍ଠକୁ ଆନ୍ତୁ
page_rotate_cw.title=ଦକ୍ଷିଣବର୍ତ୍ତ ଘୁରନ୍ତୁ
page_rotate_cw.label=ଦକ୍ଷିଣବର୍ତ୍ତ ଘୁରନ୍ତୁ
page_rotate_cw_label=ଦକ୍ଷିଣବର୍ତ୍ତ ଘୁରନ୍ତୁ
page_rotate_ccw.title=ବର୍ତ୍ତ ଘୁରନ୍ତୁ
page_rotate_ccw.label=ବର୍ତ୍ତ ଘୁରନ୍ତୁ
page_rotate_ccw_label=ବର୍ତ୍ତ ଘୁରନ୍ତୁ
# Document properties dialog box
document_properties.title=ଦଲିଲ ଗୁଣଧର୍ମ
document_properties_label=ଦଲିଲ ଗୁଣଧର୍ମ
document_properties_file_name=ଇଲ :
document_properties_file_size=ଇଲ ଆକ:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} KB ({{size_b}} bytes)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} MB ({{size_b}} bytes)
document_properties_title=ର୍ଷକ:
document_properties_author=ଖକ:
document_properties_subject=ବିଷୟ:
document_properties_keywords=ସୂଚକ ଶବ୍ଦ:
document_properties_creation_date=ନିର୍ମ ରିଖ:
document_properties_modification_date=ପରିବର୍ତ୍ତନ ରିଖ:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_creator=ନିର୍ମ:
document_properties_producer=PDF ପ୍ରଯଜକ:
document_properties_version=PDF ସ୍କରଣ:
document_properties_page_count=ପୃଷ୍ଠ ଗଣନ:
document_properties_close=ବନ୍ଦ କରନ୍ତୁ
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=ର୍ଶ୍ୱପଟିକୁ ଆଗପଛ କରନ୍ତୁ
toggle_sidebar_label=ର୍ଶ୍ୱପଟିକୁ ଆଗପଛ କରନ୍ତୁ
document_outline_label=ଦଲିଲ
attachments.title=ଲଗ୍ନକଗୁଡ଼ିକୁ ଦର୍ଶନ୍ତୁ
attachments_label=ସଲଗ୍ନକଗୁଡିକ
thumbs.title=କ୍ଷିପ୍ତ ବିବରଣ ଦର୍ଶନ୍ତୁ
thumbs_label=କ୍ଷିପ୍ତ ବିବରଣ
findbar.title=ଦଲିଲର ଜନ୍ତୁ
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=ପୃଷ୍ଠ {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=ପୃଷ୍ଠ କ୍ଷିପ୍ତ ବିବରଣ {{page}}
# Find panel button title and messages
find_previous.title=ଏହି କ୍ୟଶର ପୂର୍ବ ଉପସ୍ଥିତିକୁ ଜନ୍ତୁ
find_previous_label=ପୂର୍ବବର୍ତ୍ତ
find_next.title=ଏହି କ୍ୟଶର ପରବର୍ତ୍ତ ଉପସ୍ଥିତିକୁ ଜନ୍ତୁ
find_next_label=ପରବର୍ତ୍ତ\u0020
find_highlight=ସମସ୍ତଙ୍କୁ ଆଲକିତ କରନ୍ତୁ
find_match_case_label=ଅକ୍ଷର ନ୍ତୁ
find_reached_top=ତଳୁ ଉପରକୁ ଗତି କରି ଦଲିଲର ଉପର ଗର ପହଞ୍ଚି ଇଛି
find_reached_bottom=ଉପରୁ ତଳକୁ ଗତି କରି ଦଲିଲର ଗର ପହଞ୍ଚି ଇଛି
find_not_found=କ୍ୟ ମିଳିଲ ହିଁ
# Error panel labels
error_more_info=ଅଧିକ ସୂଚନ
error_less_info=ସ୍ୱଳ୍ପ ସୂଚନ
error_close=ବନ୍ଦ କରନ୍ତୁ
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=ସନ୍ଦ: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=ଷ୍ଟ: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=ଇଲ: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=ଡ଼ି: {{line}}
rendering_error=ପୃଷ୍ଠ ଚିତ୍ରଣ କରିବ ସମୟର ତ୍ରୁଟି ଘଟିଲ
# Predefined zoom values
page_scale_width=ପୃଷ୍ଠ ଓସ
page_scale_fit=ପୃଷ୍ଠ ଳନ
page_scale_auto=ସ୍ୱୟଳିତ ବର ଟବଡ଼ କରିବ
page_scale_actual=ପ୍ରକୃତ ଆକ
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=ତ୍ରୁଟି
loading_error=PDF ରଣ କରିବ ସମୟର ଏକ ତ୍ରୁଟି ଘଟିଲ
invalid_file_error=ଅବ କିମ୍ବ ତ୍ରୁଟିଯୁକ୍ତ PDF ଇଲ
missing_file_error=ହଜିଯଇଥିବ PDF ଇଲ
unexpected_response_error=ଅପ୍ରତ୍ୟଶିତ ସର୍ଭର ଉତ୍ତର
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Annotation]
password_label=ଏହି PDF ଇଲକୁ ଲିବ ଇଁ ପ୍ରବ ଭରଣ କରନ୍ତୁ
password_invalid=ଭୁଲ ପ୍ରବ ଦୟକରି ପୁଣି ଷ୍ଟ କରନ୍ତୁ
password_ok=ଠିକ ଅଛି
printing_not_supported=ବନ: ଏହି ବ୍ରଉଜର ଦ୍ୱ ମୁଦ୍ରଣ କ୍ରିୟ ସମ୍ପୂର୍ଣ୍ଣ ବର ସହୟତ ପ୍ରପ୍ତ ନୁହଁ
printing_not_ready=ବନ: PDF ଟି ମୁଦ୍ରଣ ଇଁ ସମ୍ପୂର୍ଣ୍ଣ ବର ରଣ ହିଁ
web_fonts_disabled= ଅକ୍ଷରରୂପଗୁଡ଼ିକୁ ନିଷ୍କ୍ରିୟ କରଇଛି: ସନ୍ନିହିତ PDF ଅକ୍ଷରରୂପଗୁଡ଼ିକୁ ବ୍ୟବହ କରିବ ଅସମର୍ଥ
document_colors_not_allowed=PDF ଦଲିଲଗୁଡ଼ିକ ନଙ୍କର ନିଜର ରଙ୍ଗ ବ୍ୟବହ କରିବ ଇଁ ଅନୁମତି ପ୍ରପ୍ତ ନୁହଁ: 'ନଙ୍କର ନିଜ ରଙ୍ଗ ଛିବ ଇଁ ପୃଷ୍ଠଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ' କୁ ବ୍ରଉଜରର ନିଷ୍କ୍ରିୟ କରଇଛି

View File

@@ -1,131 +0,0 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
previous.title=Poprzednia strona
previous_label=Poprzednia
next.title=Następna strona
next_label=Następna
page.title==Strona:
of_pages=z {{pagesCount}}
page_of_pages=({{pageNumber}} z {{pagesCount}})
zoom_out.title=Pomniejszenie
zoom_out_label=Pomniejsz
zoom_in.title=Powiększenie
zoom_in_label=Powiększ
zoom.title=Skala
presentation_mode.title=Przełącz na tryb prezentacji
presentation_mode_label=Tryb prezentacji
open_file.title=Otwieranie pliku
open_file_label=Otwórz
print.title=Drukowanie
print_label=Drukuj
download.title=Pobieranie
download_label=Pobierz
bookmark.title=Bieżąca pozycja (skopiuj lub otwórz jako odnośnik w nowym oknie)
bookmark_label=Bieżąca pozycja
tools.title=Narzędzia
tools_label=Narzędzia
first_page.title=Przechodzenie do pierwszej strony
first_page.label=Przejdź do pierwszej strony
first_page_label=Przejdź do pierwszej strony
last_page.title=Przechodzenie do ostatniej strony
last_page.label=Przejdź do ostatniej strony
last_page_label=Przejdź do ostatniej strony
page_rotate_cw.title=Obracanie zgodnie z ruchem wskazówek zegara
page_rotate_cw.label=Obróć zgodnie z ruchem wskazówek zegara
page_rotate_cw_label=Obróć zgodnie z ruchem wskazówek zegara
page_rotate_ccw.title=Obracanie przeciwnie do ruchu wskazówek zegara
page_rotate_ccw.label=Obróć przeciwnie do ruchu wskazówek zegara
page_rotate_ccw_label=Obróć przeciwnie do ruchu wskazówek zegara
cursor_text_select_tool.title=Włącza narzędzie zaznaczania tekstu
cursor_text_select_tool_label=Narzędzie zaznaczania tekstu
cursor_hand_tool.title=Włącza narzędzie rączka
cursor_hand_tool_label=Narzędzie rączka
document_properties.title=Właściwości dokumentu
document_properties_label=Właściwości dokumentu
document_properties_file_name=Nazwa pliku:
document_properties_file_size=Rozmiar pliku:
document_properties_kb={{size_kb}} KB ({{size_b}} b)
document_properties_mb={{size_mb}} MB ({{size_b}} b)
document_properties_title=Tytuł:
document_properties_author=Autor:
document_properties_subject=Temat:
document_properties_keywords=Słowa kluczowe:
document_properties_creation_date=Data utworzenia:
document_properties_modification_date=Data modyfikacji:
document_properties_date_string={{date}}, {{time}}
document_properties_creator=Utworzony przez:
document_properties_producer=PDF wyprodukowany przez:
document_properties_version=Wersja PDF:
document_properties_page_count=Liczba stron:
document_properties_close=Zamknij
print_progress_message=Przygotowywanie dokumentu do druku
print_progress_percent={{progress}}%
print_progress_close=Anuluj
toggle_sidebar.title=Przełączanie panelu bocznego
toggle_sidebar_notification.title=Przełączanie panelu bocznego (dokument zawiera konspekt/załączniki)
toggle_sidebar_label=Przełącz panel boczny
document_outline.title=Wyświetlanie zarysu dokumentu (podwójne kliknięcie rozwija lub zwija wszystkie pozycje)
document_outline_label=Zarys dokumentu
attachments.title=Wyświetlanie załączników
attachments_label=Załączniki
thumbs.title=Wyświetlanie miniaturek
thumbs_label=Miniaturki
findbar.title=Znajdź w dokumencie
findbar_label=Znajdź
thumb_page_title=Strona {{page}}
thumb_page_canvas=Miniaturka strony {{page}}
find_input.title=Wyszukiwanie
find_input.placeholder=Szukaj w dokumencie
find_previous.title=Znajdź poprzednie wystąpienie tekstu
find_previous_label=Poprzednie
find_next.title=Znajdź następne wystąpienie tekstu
find_next_label=Następne
find_highlight=Podświetl wszystkie
find_match_case_label=Rozróżniaj wielkość znaków
find_reached_top=Osiągnięto początek dokumentu, kontynuacja od końca
find_reached_bottom=Osiągnięto koniec dokumentu, kontynuacja od początku
find_not_found=Tekst nieznaleziony
error_more_info=Więcej informacji
error_less_info=Mniej informacji
error_close=Zamknij
error_version_info=PDF.js v{{version}} (kompilacja: {{build}})
error_message=Wiadomość: {{message}}
error_stack=Stos: {{stack}}
error_file=Plik: {{file}}
error_line=Wiersz: {{line}}
rendering_error=Podczas renderowania strony wystąpił błąd.
page_scale_width=Szerokość strony
page_scale_fit=Dopasowanie strony
page_scale_auto=Skala automatyczna
page_scale_actual=Rozmiar rzeczywisty
page_scale_percent={{scale}}%
loading_error_indicator=Błąd
loading_error=Podczas wczytywania dokumentu PDF wystąpił błąd.
invalid_file_error=Nieprawidłowy lub uszkodzony plik PDF.
missing_file_error=Brak pliku PDF.
unexpected_response_error=Nieoczekiwana odpowiedź serwera.
text_annotation_type.alt=[Adnotacja: {{type}}]
password_label=Wprowadź hasło, aby otworzyć ten dokument PDF.
password_invalid=Nieprawidłowe hasło. Proszę spróbować ponownie.
password_ok=OK
password_cancel=Anuluj
printing_not_supported=Ostrzeżenie: Drukowanie nie jest w pełni obsługiwane przez przeglądarkę.
printing_not_ready=Ostrzeżenie: Dokument PDF nie jest całkowicie wczytany, więc nie można go wydrukować.
web_fonts_disabled=Czcionki sieciowe wyłączone: nie można użyć osadzonych czcionek PDF.
document_colors_not_allowed=Dokumenty PDF nie mogą używać własnych kolorów: Opcja Pozwalaj stronom stosować inne kolory w przeglądarce jest nieaktywna.

View File

@@ -1,81 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom.title=Ihindurangano
open_file.title=Gufungura Dosiye
open_file_label=Gufungura
# Secondary toolbar and context menu
# Document properties dialog box
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_title=Umutwe:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
# Find panel button title and messages
find_previous.title=Gushaka aho uyu murongo ugaruka mbere y'aha
find_next.title=Gushaka aho uyu murongo wongera kugaruka
find_not_found=Umurongo ntubonetse
# Error panel labels
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
# Predefined zoom values
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=Ikosa
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
password_invalid=Ijambo ry'ibanga ridahari. Wakongera ukagerageza
password_ok=YEGO

View File

@@ -1,166 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Инники сирэй
previous_label=Иннинээҕи
next.title=Аныгыскы сирэй
next_label=Аныгыскы
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title=Куччат
zoom_out_label=Куччат
zoom_in.title=Улаатыннар
zoom_in_label=Улаатыннар
zoom.title=Улаатыннар
presentation_mode.title=Көрдөрөр эрэсиимҥэ
presentation_mode_label=Көрдөрөр эрэсиим
open_file.title=Билэни арый
open_file_label=Ас
print.title=Бэчээт
print_label=Бэчээт
download.title=Хачайдааһын
download_label=Хачайдааһын
bookmark.title=Билиҥҥи көстүүтэ (хатылаа эбэтэр саҥа түннүккэ арый)
bookmark_label=Билиҥҥи көстүүтэ
# Secondary toolbar and context menu
tools.title=Тэриллэр
tools_label=Тэриллэр
first_page.title=Бастакы сирэйгэ көс
first_page.label=Бастакы сирэйгэ көс
first_page_label=Бастакы сирэйгэ көс
last_page.title=Тиһэх сирэйгэ көс
last_page.label=Тиһэх сирэйгэ көс
last_page_label=Тиһэх сирэйгэ көс
page_rotate_cw.title=Чаһы хоту эргит
page_rotate_cw.label=Чаһы хоту эргит
page_rotate_cw_label=Чаһы хоту эргит
page_rotate_ccw.title=Чаһы утары эргит
page_rotate_ccw.label=Чаһы утары эргит
page_rotate_ccw_label=Чаһы утары эргит
# Document properties dialog box
document_properties.title=Докумуон туруоруулара...
document_properties_label=Докумуон туруоруулара...\u0020
document_properties_file_name=Билэ аата:
document_properties_file_size=Билэ кээмэйэ:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
document_properties_kb={{size_kb}} КБ ({{size_b}} баайт)
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_mb={{size_mb}} МБ ({{size_b}} баайт)
document_properties_title=Баһа:
document_properties_author=Ааптар:
document_properties_subject=Тиэмэ:
document_properties_keywords=Күлүүс тыл:
document_properties_creation_date=Оҥоһуллубут кэмэ:
document_properties_modification_date=Уларытыллыбыт кэмэ:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
document_properties_date_string={{date}}, {{time}}
document_properties_producer=PDF оҥорооччу:
document_properties_version=PDF барыла:
document_properties_page_count=Сирэй ахсаана:
document_properties_close=Сап
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Ойоҕос хапталы арый/сап
toggle_sidebar_label=Ойоҕос хапталы арый/сап
document_outline_label=Дөкүмүөн иһинээҕитэ
attachments.title=Кыбытыктары көрдөр
attachments_label=Кыбытык
thumbs.title=Ойуучааннары көрдөр
thumbs_label=Ойуучааннар
findbar.title=Дөкүмүөнтэн бул
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Сирэй {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Сирэй ойуучаана {{page}}
# Find panel button title and messages
find_previous.title=Этии тиэкискэ бу иннинээҕи киириитин бул
find_previous_label=Иннинээҕи
find_next.title=Этии тиэкискэ бу кэннинээҕи киириитин бул
find_next_label=Аныгыскы
find_highlight=Барытын сырдатан көрдөр
find_match_case_label=Буукуба улаханын-кыратын араар
find_reached_top=Сирэй үрдүгэр тиийдиҥ, салгыыта аллара
find_reached_bottom=Сирэй бүттэ, үөһэ салҕанна
find_not_found=Этии көстүбэтэ
# Error panel labels
error_more_info=Сиһилии
error_less_info=Сиһилиитин кистээ
error_close=Сап
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (хомуйуута: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Этии: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Стeк: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Билэ: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Устуруока: {{line}}
rendering_error=Сирэйи айарга алҕас таҕыста.
# Predefined zoom values
page_scale_width=Сирэй кэтитинэн
page_scale_fit=Сирэй кээмэйинэн
page_scale_auto=Аптамаатынан
page_scale_actual=Дьиҥнээх кээмэйэ
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=Алҕас
loading_error=PDF-билэни хачайдыырга алҕас таҕыста.
invalid_file_error=Туох эрэ алҕастаах эбэтэр алдьаммыт PDF-билэ.
missing_file_error=PDF-билэ суох.
unexpected_response_error=Сиэрбэр хоруйдаабат.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} туһунан]
password_label=Бу PDF-билэни арыйарга көмүскэл тылы киллэриэхтээхин.
password_invalid=Киирии тыл алҕастаах. Бука диэн, хатылаан көр.
password_ok=СӨП
printing_not_supported=Сэрэтии: Бу браузер бэчээттиири толору өйөөбөт.
printing_not_ready=Сэрэтии: PDF бэчээттииргэ толору хачайдана илик.
web_fonts_disabled=Ситим-бичиктэр араарыллыахтара: PDF бичиктэрэ кыайан көстүбэттэр.
document_colors_not_allowed=PDF-дөкүмүөүннэргэ бэйэлэрин өҥнөрүн туттар көҥүллэммэтэ: "Ситим-сирдэр бэйэлэрин өҥнөрүн тутталларын көҥүллүүргэ" диэн браузерга арахса сылдьар эбит.

View File

@@ -1,128 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Ukurasa Uliotangulia
previous_label=Iliyotangulia
next.title=Ukurasa Ufuatao
next_label=Ifuatayo
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title=Kuza Nje
zoom_out_label=Kuza Nje
zoom_in.title=Kuza Ndani
zoom_in_label=Kuza Ndani
zoom.title=Kuza
presentation_mode.title=Badili kwa Hali ya Uwasilishaji
presentation_mode_label=Hali ya Uwasilishaji
open_file.title=Fungua Faili
open_file_label=Fungua
print.title=Chapisha
print_label=Chapisha
download.title=Pakua
download_label=Pakua
bookmark.title=Mwonekano wa sasa (nakili au ufungue katika dirisha mpya)
bookmark_label=Mwonekano wa Sasa
# Secondary toolbar and context menu
# Document properties dialog box
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_title=Kichwa:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=Kibiano cha Upau wa Kando
toggle_sidebar_label=Kibiano cha Upau wa Kando
document_outline_label=Ufupisho wa Waraka
thumbs.title=Onyesha Kijipicha
thumbs_label=Vijipicha
findbar.title=Pata katika Waraka
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Ukurasa {{ukurasa}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Kijipicha cha ukurasa {{ukurasa}}
# Find panel button title and messages
find_previous.title=Tafuta tukio kabla ya msemo huu
find_previous_label=Iliyotangulia
find_next.title=Tafuta tukio linalofuata la msemo
find_next_label=Ifuatayo
find_highlight=Angazia yote
find_match_case_label=Linganisha herufi
find_reached_top=Imefika juu ya waraka, imeendelea kutoka chini
find_reached_bottom=Imefika mwisho wa waraka, imeendelea kutoka juu
find_not_found=Msemo hukupatikana
# Error panel labels
error_more_info=Maelezo Zaidi
error_less_info=Maelezo Kidogo
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (jenga: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Ujumbe: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Panganya: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Faili: {{faili}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Laini: {{laini}}
rendering_error=Hitilafu lilitokea wajati wa kutoa ukurasa
# Predefined zoom values
page_scale_width=Upana wa Ukurasa
page_scale_fit=Usawa wa Ukurasa
page_scale_auto=Ukuzaji wa Kiotomatiki
page_scale_actual=Ukubwa Halisi
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=Hitilafu
loading_error=Hitilafu lilitokea wakati wa kupakia PDF.
invalid_file_error=Faili ya PDF isiyohalali au potofu.
missing_file_error=Faili ya PDF isiyopo.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[{{type}} Ufafanuzi]
password_ok=SAWA
printing_not_supported=Onyo: Uchapishaji hauauniwi kabisa kwa kivinjari hiki.
web_fonts_disabled=Fonti za tovuti zimelemazwa: haziwezi kutumia fonti za PDF zilizopachikwa.

View File

@@ -1,77 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom.title=அளவ
open_file.title=ப்பித் ிறக்க
open_file_label=ிறக்க
# Secondary toolbar and context menu
# Document properties dialog box
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
# Find panel button title and messages
find_previous.title=இந்த ற்றடரின் ன்ன ிகழ்வ
find_next.title=இந்த ற்றடரின் அடத்த ிகழ்வத்
# Error panel labels
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
# Predefined zoom values
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
password_ok=ஆம்

View File

@@ -1,105 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Naunang Pahina
next.title=Sunod na Pahina
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
page.title=Pahina
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
of_pages=ng {{pagesCount}}
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
page_of_pages=({{pageNumber}} ng {{pagesCount}})
zoom_out.title=Mag-zom Out
open_file.title=Magbukas ng file
open_file_label=Buksan
print.title=i-Print
print_label=i-Print
download.title=Download
download_label=Download
bookmark.title=Kasalukuyang tingin (kopyahin o buksan sa bagong window)
bookmark_label=Kasalukuyang tingin
# Secondary toolbar and context menu
tools.title=Mga Tool
tools_label=Mga Tool
# Document properties dialog box
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_title=Pamagat:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
print_progress_close=Kanselahin
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
thumbs.title=Ipakita ang mga Thumbnails
findbar_label=Hanapin
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Pahina {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Thumbnail ng Pahina {{page}}
# Find panel button title and messages
find_highlight=I-highlight lahat
# Error panel labels
error_more_info=Maraming Inpormasyon
error_less_info=Maikling Inpormasyon
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Mensahe: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Linya: {{line}}
rendering_error=May naganap na pagkakamali habang pagsasalin sa pahina.
# Predefined zoom values
page_scale_width=Haba ng Pahina
page_scale_fit=ang pahina ay angkop
page_scale_auto=awtomatikong pag-imbulog
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error=May maling nangyari habang kinakarga ang PDF.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
password_ok=OK
password_cancel=Kanselahin

View File

@@ -1,83 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom.title=Zuma/gogela
open_file.title=Bula Faele
open_file_label=Bula
# Secondary toolbar and context menu
# Document properties dialog box
document_properties_file_name=Leina la faele:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_title=Leina:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
# Find panel button title and messages
find_previous.title=Batla tiragalo e e fetileng ya setlhopha sa mafoko
find_next.title=Batla tiragalo e e latelang ya setlhopha sa mafoko
find_not_found=Setlhopha sa mafoko ga se a bonwa
# Error panel labels
error_more_info=Tshedimosetso e Nngwe
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
# Predefined zoom values
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=Phoso
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
password_ok=Siame
web_fonts_disabled=Mefutatlhaka ya Webo ga e dire: ga e kgone go dirisa mofutatlhaka wa PDF o tsentsweng.

View File

@@ -1,131 +0,0 @@
# Copyright 2012 Mozilla Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Main toolbar buttons (tooltips and alt text for images)
previous.title=Ikhasi eledlule
previous_label=Okudlule
next.title=Ikhasi elilandelayo
next_label=Okulandelayo
# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
# representing the total number of pages in the document.
# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
# will be replaced by a number representing the currently visible page,
# respectively a number representing the total number of pages in the document.
zoom_out.title=Hlehlisela emuva
zoom_out_label=Hlehlisela emuva
zoom_in.title=Sondeza eduze
zoom_in_label=Sondeza eduze
zoom.title=Lwiza
presentation_mode.title=Guqulela kwindlela yesethulo
presentation_mode_label=Indlelo yesethulo
open_file.title=Vula ifayela
open_file_label=Vula
print.title=Phrinta
print_label=Phrinta
download.title=Landa
download_label=Landa
bookmark.title=Ukubuka kwamanje (kopisha noma vula kwifasitela elisha)
bookmark_label=Ukubuka kwamanje
# Secondary toolbar and context menu
# Document properties dialog box
document_properties_file_name=Igama lefayela:
# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
# will be replaced by the PDF file size in kilobytes, respectively in bytes.
# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
# will be replaced by the PDF file size in megabytes, respectively in bytes.
document_properties_title=Isihloko:
# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
# will be replaced by the creation/modification date, and time, of the PDF file.
# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
# a numerical per cent value.
# Tooltips and alt text for side panel toolbar buttons
# (the _label strings are alt text for the buttons, the .title strings are
# tooltips)
toggle_sidebar.title=I-toggle yebha yaseceleni
toggle_sidebar_label=i-toggle yebha yaseceleni
document_outline_label=Umugqa waseceleni wedokhumenti
thumbs.title=Bonisa izithombe ezincane
thumbs_label=Izithonjana
findbar.title=Thola kwidokhumenti
# Thumbnails panel item (tooltip and alt text for images)
# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
# number.
thumb_page_title=Ikhasi {{page}}
# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
# number.
thumb_page_canvas=Isithonjana sekhasi {{page}}
# Find panel button title and messages
find_previous.title=Thola indawo eyandulelayo okuvela kuyo lomshwana
find_previous_label=Okudlulile
find_next.title=Thola enye indawo okuvela kuyo lomshwana
find_next_label=Okulandelayo
find_highlight=Gqamisa konke
find_match_case_label=Fanisa ikheyisi
find_reached_top=Finyelele phezulu kwidokhumenti, qhubeka kusukaphansi
find_reached_bottom=Ifinyelele ekupheleni kwedokhumenti, qhubeka kusukaphezulu
find_not_found=Umshwana awutholakali
# Error panel labels
error_more_info=Ukwaziswa Okwengeziwe
error_less_info=Ukwazi okuncane
# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
# replaced by the PDF.JS version and build ID.
error_version_info=PDF.js v{{version}} (build: {{build}})
# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
# english string describing the error.
error_message=Umlayezo: {{message}}
# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
# trace.
error_stack=Isitaki: {{stack}}
# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
error_file=Ifayela: {{file}}
# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
error_line=Umugqa: {{line}}
rendering_error=Iphutha lenzekile uma kunikwa ikhasi.
# Predefined zoom values
page_scale_width=Ububanzi bekhasi
page_scale_fit=Ukulingana kwekhasi
page_scale_auto=Ukulwiza okuzenzekalelayo
page_scale_actual=Usayizi Wangempela
# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
# numerical scale value.
# Loading indicator messages
loading_error_indicator=Iphutha
loading_error=Kwenzeke iphutha uma kulayishwa i-PDF.
invalid_file_error=Ifayela le-PDF elingavumelekile noma elonakele.
missing_file_error=Ifayela le-PDF elilahlekile.
# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
# "{{type}}" will be replaced with an annotation type from a list defined in
# the PDF spec (32000-1:2008 Table 169 Annotation types).
# Some common types are e.g.: "Check", "Text", "Comment", "Note"
text_annotation_type.alt=[Amazwibela e-{{type}}]
password_ok=Kulungile
printing_not_supported=Isixwayiso: Ukuphrinta akuxhasiwe yilesisiphequluli ngokugcwele.
printing_not_ready=Isixwayiso: I-PDF ayikalayishwa ngokuphelele yiPhrinta.
web_fonts_disabled=Amafonti e-webhu akutshaziwe: ayikwazi ukusebenzisa amafonti abekiwe e-PDF.\u0020
document_colors_not_allowed=Amadokhumenti we-PDF awavumelekile ukusebenzisa imibalo yayo: 'Vumela amakhasi ukukhetha imibala yayo' ayisebenzi kusiphequluli.

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<body>
${doc}
</body>
</html>

View File

@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<body>
${docxConvert}
</body>
</html>

View File

@@ -1,26 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<style type="text/css">
body{
margin: 0;
padding:0;
border:0;
}
</style>
</head>
<body>
<iframe src="${pdfUrl}" width="100%" frameborder="0"></iframe>
</body>
<script type="text/javascript">
document.getElementsByTagName('iframe')[0].height = document.documentElement.clientHeight-10;
/**
* 页面变化调整高度
*/
window.onresize = function(){
var fm = document.getElementsByTagName("iframe")[0];
fm.height = window.document.documentElement.clientHeight-10;
}
</script>
</html>

View File

@@ -1,220 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>图片预览图</title>
<link rel="stylesheet" href="css/viewer.min.css">
<link rel="stylesheet" href="css/loading.css">
<link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.1/bootstrap-table.css" />
<style type="text/css">
</style>
</head>
<body>
<h1>文件预览项目接入和测试界面</h1>
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion"
href="#collapseOne">
接入说明
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse">
<div class="panel-body">
<div>
如果你的项目需要接入文件预览项目达到对docx、excel、ppt、jpg等文件的预览效果那么通过在你的项目中加入下面的代码就可以
成功实现:
<pre style="background-color: #2f332a;color: #cccccc">
$scope.openWin = function (fileUrl) {
var url = configuration.previewUrl + encodeURIComponent(fileUrl);
var winHeight = window.document.documentElement.clientHeight-10;
$window.open(url, "_blank", "height=" + winHeight
+ ",top=80,left=80,toolbar=no, menubar=no, scrollbars=yes, resizable=yes");
};
</pre>
</div>
<div>
新增多图片同时预览功能,接口如下:
<pre style="background-color: #2f332a;color: #cccccc">
var fileUrl =url1+"|"+"url2";//多文件使用“|”字符隔开
var url = "http://localhost:8012/picturesPreview?urls" + encodeURIComponent(fileUrl);
var winHeight = window.document.documentElement.clientHeight-10;
$window.open(url, "_blank", "height=" + winHeight
+ ",top=80,left=80,toolbar=no, menubar=no, scrollbars=yes, resizable=yes");
</pre>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion"
href="#collapseTwo">
预览测试
</a>
</h4>
</div>
<div id="collapseTwo" class="panel-collapse collapse">
<div class="panel-body">
<p style="color: red;">因为是测试所以一种文件只允许上传一个</p>
<div style="padding: 10px">
<form enctype="multipart/form-data" id="fileUpload">
<input type="file" name="file" />
<input type="button" id="btnsubmit" value=" " />
</form>
</div>
<div>
<table id="table" data-pagination="true"></table>
</div>
</div>
</div>
</div>
<div class="panel">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion"
href="#collapseThree">
更新记录
</a>
</h4>
</div>
<div id="collapseThree" class="panel-collapse collapse in">
<div class="panel-body">
<div>
2018年01月15日 <br>
1.首页新增社会化评论框<br><br>
2018年01月12日 <br>
1.新增多图片同时预览<br>
2.支持压缩包内图片轮番预览<br><br>
2018年01月02日 <br>
1.修复txt等文本编码问题导致预览乱码<br>
2.修复项目模块依赖引入不到的问题<br>
3.新增spring boot profile支持多环境配置<br>
4.引入pdf.js预览doc等文件支持doc标题生成pdf预览菜单支持手机端预览<br><br>
2017年12月12日<br>
1.项目osc开源:<a href="https://gitee.com/kekingcn/file-online-preview" target="_blank">https://gitee.com/kekingcn/file-online-preview</a><br>
2.项目github开源:<a href="https://github.com/kekingcn/kkFileView" target="_blank">https://github.com/kekingcn/kkFileView</a>
</div>
</div>
</div>
<div class="panel-body">
<div style="width: 80%">
<!-- 多说评论框 start -->
<div id="SOHUCS" sid="kkfileView"></div>
<script charset="utf-8" type="text/javascript" src="https://changyan.sohu.com/upload/changyan.js" ></script>
<script type="text/javascript">
window.changyan.api.config({
appid: 'cytx6wU4N',
conf: 'prod_c53858654f21b8f813c14b7681f5405a'
});
</script>
<!-- 多说评论框 end -->
</div>
</div>
</div>
</div>
<div class="loading_container">
<div class="spinner">
<div class="spinner-container container1">
<div class="circle1"></div>
<div class="circle2"></div>
<div class="circle3"></div>
<div class="circle4"></div>
</div>
<div class="spinner-container container2">
<div class="circle1"></div>
<div class="circle2"></div>
<div class="circle3"></div>
<div class="circle4"></div>
</div>
<div class="spinner-container container3">
<div class="circle1"></div>
<div class="circle2"></div>
<div class="circle3"></div>
<div class="circle4"></div>
</div>
</div>
</div>
<script src="js/jquery-3.0.0.min.js" type="text/javascript"></script>
<script src="https://cdn.bootcss.com/jquery.form/3.09/jquery.form.min.js" type="text/javascript"></script>
<script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-table/1.11.1/bootstrap-table.js"></script>
<script>
function deleteFile(fileName) {
$.ajax({
url: '${baseUrl}deleteFile?fileName=' + encodeURIComponent(fileName),
success: function (data) {
// 删除完成刷新table
if (1 == data.code) {
alert(data.msg);
}else{
$('#table').bootstrapTable('refresh', {});
}
},
error: function (data) {
console.log(data);
}
})
}
$(function () {
$('#table').bootstrapTable({
url: 'listFiles',
columns: [{
field: 'fileName',
title: '文件名'
}, {
field: 'action',
title: '操作'
},]
}).on('pre-body.bs.table', function (e,data) {
// 每个data添加一列用来操作
$(data).each(function (index, item) {
item.action = "<a class='btn btn-default' target='_blank' href='${baseUrl}onlinePreview?url="
+ encodeURIComponent('${baseUrl}' + item.fileName ) +"'>预览</a>" +
"<a class='btn btn-default' target='_blank' href='javascript:void(0);' onclick='deleteFile(\""+item.fileName+"\")'>删除</a>";
});
return data;
}).on('post-body.bs.table', function (e,data) {
return data;
});
/**
*
*/
function showLoadingDiv() {
var height = window.document.documentElement.clientHeight - 1;
$(".loading_container").css("height", height).show();
}
$("#btnsubmit").click(function () {
showLoadingDiv();
$("#fileUpload").ajaxSubmit({
success: function (data) {
// 上传完成刷新table
if (1 == data.code) {
alert(data.msg);
}else{
$('#table').bootstrapTable('refresh', {});
}
$(".loading_container").hide();
},
error: function (error) { alert(error); $(".loading_container").hide();},
url: 'fileUpload', /*设置post提交到的页面*/
type: "post", /*设置表单以post方法提交*/
dataType: "json" /*设置返回值类型为文本*/
});
});
});
</script>
</body>
</html>

View File

@@ -1,24 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>多媒体文件预览</title>
<link rel="stylesheet" href="plyr/plyr.css">
</head>
<style>
body{background-color: #262626}
.m{ margin-left: auto; margin-right: auto; width:640px; margin-top: 100px; }
</style>
<body>
<div class="m">
<video controls>
<source src="${mediaUrl}">
</video>
</div>
<script src="plyr/plyr.js"></script>
<script>
plyr.setup();
</script>
</body>
</html>

View File

@@ -1,47 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>office图片预览</title>
<link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script src="js/lazyload.js"></script>
<style>
.container{
width: 100%;
height: 100%;
}
.img-area{
text-align: center
}
</style>
</head>
<body bgcolor="#404040">
<div class="container">
<#list imgurls as img>
<div class="img-area">
<img class="my-photo" alt="loading" title="查看大图" style="cursor: pointer;" data-src="${img}" src="images/loading.gif" onclick="changePreviewType('allImages')">
</div>
</#list>
</div>
<#--<img src="images/right.png" style="position: fixed; cursor: pointer; top: 40%; right: 60px; z-index: 999;" alt="使用PDF预览" title="使用PDF预览" onclick="changePreviewType('pdf')"/>-->
<span class="fa fa-file-pdf-o fa-5x" style="position: fixed; cursor: pointer; top: 40%; right: 50px; z-index: 999;" title="使用PDF预览" onclick="changePreviewType('pdf')"></span>
<script>
window.onload=checkImgs;
window.onscroll = throttle(checkImgs);
function changePreviewType(previewType) {
var url = window.location.href;
if (url.indexOf("officePreviewType=image") != -1) {
url = url.replace("officePreviewType=image", "officePreviewType="+previewType);
} else {
url = url + "&officePreviewType="+previewType;
}
if ('allImages' == previewType) {
window.open(url)
} else {
window.location.href = url;
}
}
</script>
</body>
</html>

View File

@@ -1,47 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<style type="text/css">
body{
margin: 0;
padding:0;
border:0;
}
</style>
</head>
<body>
<#if pdfUrl?contains("http://")>
<#assign finalUrl="${pdfUrl}">
<#else>
<#assign finalUrl="${baseUrl}${pdfUrl}">
</#if>
<iframe src="/pdfjs/web/viewer.html?file=${finalUrl}" width="100%" frameborder="0"></iframe>
<#-- <img src="images/left.png" style="position: fixed; cursor: pointer; top: 40%; right: 60px; z-index: 999;" alt="使用图片预览" title="使用图片预览" onclick="goForImage()"/>-->
<span class="fa fa-file-image-o fa-5x" style="position: fixed; cursor: pointer; top: 40%; right: 50px; z-index: 999;" title="使用图片预览" onclick="goForImage()"></span>
</body>
<script type="text/javascript">
document.getElementsByTagName('iframe')[0].height = document.documentElement.clientHeight-10;
/**
* 页面变化调整高度
*/
window.onresize = function(){
var fm = document.getElementsByTagName("iframe")[0];
fm.height = window.document.documentElement.clientHeight-10;
}
function goForImage() {
var url = window.location.href;
if (url.indexOf("officePreviewType=pdf") != -1) {
url = url.replace("officePreviewType=pdf", "officePreviewType=image");
} else {
url = url + "&officePreviewType=image";
}
window.location.href=url;
}
</script>
</html>

View File

@@ -1,18 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>普通文件预览</title>
</head>
<body>
<script language="javascript" type="text/javascript">
window.location.href="${ordinaryUrl}";
</script>
</body>
</html>

View File

@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.keking</groupId>
<artifactId>jodconverter-core</artifactId>
<artifactId>office-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<properties>

Some files were not shown because too many files have changed in this diff Show More