mirror of
https://github.com/kekingcn/kkFileView.git
synced 2026-03-30 19:33:55 +00:00
Compare commits
125 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ec4e7b398 | ||
|
|
7c963193ef | ||
|
|
bce9a624d7 | ||
|
|
dac3606b4e | ||
|
|
eb00385d76 | ||
|
|
986f562266 | ||
|
|
11d0441ed4 | ||
|
|
ef46e2c51e | ||
|
|
0a3c03f18b | ||
|
|
7a7e1a1855 | ||
|
|
f530f441d5 | ||
|
|
10160e8104 | ||
|
|
602e80ee9e | ||
|
|
9c83860e1b | ||
|
|
1f1970232b | ||
|
|
594bd895ec | ||
|
|
486c09b24a | ||
|
|
aaf396fbc8 | ||
|
|
4e01d6f5f3 | ||
|
|
342c391a9b | ||
|
|
f2d929e6fa | ||
|
|
41cdc227b3 | ||
|
|
0f4f1d580b | ||
|
|
37c37868a3 | ||
|
|
01218e4a5c | ||
|
|
f6d54902e9 | ||
|
|
5a559aa868 | ||
|
|
9b0f381c06 | ||
|
|
c1802b2487 | ||
|
|
d4b11a4056 | ||
|
|
da1553920b | ||
|
|
d787813bc6 | ||
|
|
4a3886e41a | ||
|
|
cf1f833d60 | ||
|
|
cb21952155 | ||
|
|
3498df0491 | ||
|
|
e3ebf1979f | ||
|
|
fb09a8c00f | ||
|
|
4c708f3cbd | ||
|
|
e1035510df | ||
|
|
c466d0399c | ||
|
|
8b33a233dd | ||
|
|
9e2962bb62 | ||
|
|
fc73deb3fd | ||
|
|
40ac4b1eb9 | ||
|
|
3d6da5f5a0 | ||
|
|
7c4fc42247 | ||
|
|
0c2a92080e | ||
|
|
b1fd13bcbb | ||
|
|
cd37ff4b41 | ||
|
|
215e9f0f4a | ||
|
|
26e147b426 | ||
|
|
c7318c2b17 | ||
|
|
c16116c7cd | ||
|
|
1a4748bbec | ||
|
|
c0f7d60213 | ||
|
|
bf83a0847d | ||
|
|
7601d49795 | ||
|
|
1edf4d83f1 | ||
|
|
f620c00785 | ||
|
|
180e7bcb8a | ||
|
|
8a52450629 | ||
|
|
a535ebfe1d | ||
|
|
3e80590a82 | ||
|
|
5196536bb4 | ||
|
|
59ac8effc1 | ||
|
|
9cc0267619 | ||
|
|
a21f35c2b0 | ||
|
|
fde31cb327 | ||
|
|
9c096605bb | ||
|
|
b90e326eec | ||
|
|
66e2acd063 | ||
|
|
44165d655d | ||
|
|
c9a6956b0d | ||
|
|
9288564195 | ||
|
|
9b8e7f812c | ||
|
|
3908f1be7e | ||
|
|
15bd035304 | ||
|
|
e0b1cd76ca | ||
|
|
2144b776b1 | ||
|
|
a8022df1d9 | ||
|
|
a5d92bf905 | ||
|
|
81a18d07c3 | ||
|
|
86e5dcb23b | ||
|
|
1339c09382 | ||
|
|
01e310a6e7 | ||
|
|
a07c962867 | ||
|
|
09b6964c0e | ||
|
|
461030d34f | ||
|
|
c1a7cd8c46 | ||
|
|
5888c56f1d | ||
|
|
0798b8d8a0 | ||
|
|
ae93d48b44 | ||
|
|
506a3ba2b3 | ||
|
|
12f197b623 | ||
|
|
2001b241ee | ||
|
|
7911edec4b | ||
|
|
7ea70bf422 | ||
|
|
b1fdbd26a3 | ||
|
|
fa7241bd4e | ||
|
|
8fdf462c6c | ||
|
|
f7c7411bcf | ||
|
|
845cb2e657 | ||
|
|
a4bfde68bd | ||
|
|
19d1ba6cf9 | ||
|
|
1060bdd00f | ||
|
|
8c2fb2bdee | ||
|
|
0fe75387eb | ||
|
|
fbea49e54f | ||
|
|
41a72798d9 | ||
|
|
03cc185085 | ||
|
|
bfbd8ee25e | ||
|
|
f3f36169ff | ||
|
|
2df88544d3 | ||
|
|
6b744d77c7 | ||
|
|
ba57dedebb | ||
|
|
affd5b3057 | ||
|
|
30c3128995 | ||
|
|
b003a05775 | ||
|
|
98ec3d7dab | ||
|
|
69e23dbb99 | ||
|
|
47bda1023a | ||
|
|
fd538a74af | ||
|
|
300d213a7a | ||
|
|
4c0a70f300 |
5
.gitattributes
vendored
Normal file
5
.gitattributes
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
*.css linguist-language=java
|
||||
*.less linguist-language=java
|
||||
*.js linguist-language=java
|
||||
*.html linguist-language=java
|
||||
*.* linguist-language=java
|
||||
22
.gitignore
vendored
22
.gitignore
vendored
@@ -17,26 +17,14 @@ target/
|
||||
|
||||
### NetBeans ###
|
||||
nbproject/private/
|
||||
build/
|
||||
nbbuild/
|
||||
dist/
|
||||
nbdist/
|
||||
.nb-gradle/
|
||||
/*.iml
|
||||
|
||||
**/target/
|
||||
.classpath
|
||||
.project
|
||||
**/.settings
|
||||
**/build/
|
||||
**/.externalToolBuilders/
|
||||
*.iml
|
||||
**/.idea/
|
||||
**/disconf
|
||||
**/rpc.properties
|
||||
/producer/tmp
|
||||
/.temfile
|
||||
.temfile
|
||||
convertedFile/
|
||||
jodconverter-web/src/main/cache/
|
||||
jodconverter-web/src/main/file/
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
server/src/main/cache/
|
||||
server/src/main/file/
|
||||
|
||||
57
Dockerfile
57
Dockerfile
@@ -1,31 +1,32 @@
|
||||
FROM centos:centos7.6.1810
|
||||
FROM ubuntu:20.04
|
||||
MAINTAINER chenjh "842761733@qq.com"
|
||||
ADD jodconverter-web/target/kkFileView-*.tar.gz /opt/
|
||||
COPY fonts/* /usr/share/fonts/
|
||||
RUN yum install -y kde-l10n-Chinese &&\
|
||||
yum install -y glibc-common &&\
|
||||
yum install -y fontconfig &&\
|
||||
yum install -y mkfontscale &&\
|
||||
localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 &&\
|
||||
export LANG=zh_CN.UTF-8 &&\
|
||||
echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf &&\
|
||||
LANG="zh_CN.UTF-8" &&\
|
||||
yum install -y java-1.8.0-openjdk.x86_64 &&\
|
||||
yum install -y wget &&\
|
||||
yum install -y libXext.x86_64 &&\
|
||||
yum groupinstall -y "X Window System" &&\
|
||||
cd /tmp &&\
|
||||
wget https://iweb.dl.sourceforge.net/project/openofficeorg.mirror/4.1.6/binaries/zh-CN/Apache_OpenOffice_4.1.6_Linux_x86-64_install-rpm_zh-CN.tar.gz -cO openoffice_rpm.tar.gz &&\
|
||||
tar zxf /tmp/openoffice_rpm.tar.gz &&\
|
||||
cd /tmp/zh-CN/RPMS &&\
|
||||
rpm -Uvih *.rpm &&\
|
||||
rpm -Uvih desktop-integration/openoffice4.1.6-redhat-menus-4.1.6-9790.noarch.rpm &&\
|
||||
rm -f /tmp/openoffice_rpm.tar.gz &&\
|
||||
rm -rf /tmp/zh-CN &&\
|
||||
cd /usr/share/fonts &&\
|
||||
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
|
||||
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-2.1.2/bin
|
||||
ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider","-Dspring.config.location=/opt/kkFileView-2.1.2/conf/application.properties","-jar","/opt/kkFileView-2.1.2/bin/kkFileView-2.1.2.jar"]
|
||||
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"]
|
||||
84
README.en.md
84
README.en.md
@@ -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.
|
||||
|
||||
URL:http://file.keking.cn/
|
||||
URL:[https://file.keking.cn](https://file.keking.cn)
|
||||
|
||||
### Documentation
|
||||
1. Full wiki document:https://gitee.com/kekingcn/file-online-preview/wikis/pages
|
||||
1. 中文文档:https://gitee.com/kekingcn/file-online-preview/blob/master/README.md
|
||||
1. English document:https://github.com/kekingcn/kkFileView/blob/master/README.en.md
|
||||
1. English document:https://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 group:613025121
|
||||
|
||||
### 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
|
||||

|
||||
|
||||

|
||||
> doc
|
||||
#### 2. Picture preview
|
||||
Support jpg, jpeg, png, gif and other picture previews (flip, zoom, mirror). The preview effect is as follows
|
||||

|
||||
|
||||

|
||||
#### 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
|
||||

|
||||
The preview effect of PDF preview mode is as follows
|
||||

|
||||
|
||||
> 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
|
||||

|
||||
The preview effect of PDF preview mode is as follows
|
||||

|
||||
|
||||

|
||||
#### 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
|
||||

|
||||
The preview effect of PDF preview mode is as follows
|
||||

|
||||
|
||||
> 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
|
||||

|
||||
|
||||

|
||||
#### 7. Compressed file Preview
|
||||
Support zip, rar, jar, tar, gzip and other compressed packages. The preview effect is as follows
|
||||

|
||||
Click the file name in the compressed package to preview the file directly. The preview effect is as follows
|
||||

|
||||
|
||||
#### 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
|
||||

|
||||
The audio preview effect is as follows
|
||||

|
||||
|
||||
#### 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
|
||||

|
||||
The preview effect of PDF preview mode is as follows
|
||||

|
||||
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
|
||||
@@ -67,6 +114,23 @@ If everything is ok,you will see the picture below.
|
||||

|
||||
|
||||
### 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
|
||||
|
||||
111
README.md
111
README.md
@@ -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. 支持office,pdf等办公文档
|
||||
1. 支持office,pdf, cad等办公文档
|
||||
1. 支持txt,java,php,py,md,js,css等所有纯文本
|
||||
1. 支持zip,rar,jar,tar,gzip等压缩包
|
||||
1. 支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像)
|
||||
@@ -11,37 +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 document:https://github.com/kekingcn/kkFileView/blob/master/README.en.md
|
||||
1. English document:https://gitee.com/kekingcn/file-online-preview/blob/master/README.en.md
|
||||
|
||||
### 联系我们,加入组织
|
||||
> 我们会用心回答解决大家在项目使用中的问题,也请大家在提问前至少Google或baidu过,珍爱生命远离无效的交流沟通
|
||||
|
||||

|
||||
QQ群号:613025121
|
||||

|
||||
|
||||
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
|
||||
文本预览效果如下
|
||||

|
||||
|
||||

|
||||
> doc预览效果
|
||||
#### 2. 图片预览
|
||||
支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像),预览效果如下
|
||||

|
||||
|
||||

|
||||
#### 3. word文档预览
|
||||
支持doc,docx文档预览,word预览有两种模式:一种是每页word转为图片预览,另一种是整个word文档转成pdf,再预览pdf。两种模式的适用场景如下
|
||||
* 图片预览:word文件大,前台加载整个pdf过慢
|
||||
* pdf预览:内网访问,加载pdf快
|
||||
图片预览模式预览效果如下
|
||||

|
||||
pdf预览模式预览效果如下
|
||||

|
||||
|
||||
> zip,rar压缩预览效果
|
||||
#### 4. ppt文档预览
|
||||
支持ppt,pptx文档预览,和word文档一样,有两种预览模式
|
||||
图片预览模式预览效果如下
|
||||

|
||||
pdf预览模式预览效果如下
|
||||

|
||||
|
||||

|
||||
#### 5. pdf文档预览
|
||||
支持pdf文档预览,和word文档一样,有两种预览模式
|
||||
图片预览模式预览效果如下
|
||||

|
||||
pdf预览模式预览效果如下
|
||||

|
||||
|
||||
> png,jpeg,jpg等图片预览效果,支持滚轮缩放,旋转,倒置等
|
||||
#### 6. excel文档预览
|
||||
支持xls,xlsx文档预览,预览效果如下
|
||||

|
||||
|
||||

|
||||
#### 7. 压缩文件预览
|
||||
支持zip,rar,jar,tar,gzip等压缩包,预览效果如下
|
||||

|
||||
可点击压缩包中的文件名,直接预览文件,预览效果如下
|
||||

|
||||
|
||||
#### 8. 多媒体文件预览
|
||||
理论上支持所有的视频、音频文件,由于无法枚举所有文件格式,默认开启的类型如下
|
||||
mp3,wav,mp4,flv
|
||||
视频预览效果如下
|
||||

|
||||
音频预览效果如下
|
||||

|
||||
|
||||
#### 9. CAD文档预览
|
||||
支持CAD dwg文档预览,和word文档一样,有两种预览模式
|
||||
图片预览模式预览效果如下
|
||||

|
||||
pdf预览模式预览效果如下
|
||||

|
||||
考虑说明篇幅原因,就不贴其他格式文件的预览效果了,感兴趣的可以参考下面的实例搭建下
|
||||
|
||||
### 快速开始
|
||||
@@ -62,6 +109,44 @@ QQ群号:613025121
|
||||
|
||||
### 历史更新记录
|
||||
|
||||
> 2020年12月27日 :
|
||||
|
||||
2020年年终大版本更新,架构全面设计,代码全面重构,代码质量全面提升,二次开发更便捷,欢迎拉源码品鉴,提issue、pr共同建设
|
||||
|
||||
1. 架构模块调整,大量的代码重构,代码质量提升N个等级,欢迎品鉴
|
||||
2. 增强XML文件预览效果,新增XML文档数结构预览
|
||||
3. 新增markdown文件预览支持,预览支持md渲染和源文本切换支持
|
||||
4. 切换底层web server为jetty,解决这个issue:https://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. 移除guava、hutool等非必须的工具包,减少代码体积
|
||||
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文件预览
|
||||
|
||||
BIN
doc/KK开源技术交流2群群聊二维码.png
Normal file
BIN
doc/KK开源技术交流2群群聊二维码.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
BIN
doc/kk开源技术交流群聊二维码.png
Normal file
BIN
doc/kk开源技术交流群聊二维码.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.5 KiB |
@@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
kill 15 `ps -ef|grep kkFileView|awk '{print $2}'`
|
||||
@@ -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.1.2.jar -> ..\log\kkFileView.log
|
||||
@@ -1,48 +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
|
||||
#缓存自动清理(每晚3点自动清理) true 为开启,注释掉或其他值都为关闭
|
||||
cache.clean = true
|
||||
|
||||
#######################################可在运行时动态配置#######################################
|
||||
#文本类型,默认如下,可自定义添加
|
||||
#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
|
||||
|
||||
#预览源为FTP时 FTP用户名,可在ftp url后面加参数ftp.username=ftpuser指定,不指定默认用配置的
|
||||
ftp.username = ftpuser
|
||||
#预览源为FTP时 FTP密码,可在ftp url后面加参数ftp.password=123456指定,不指定默认用配置的
|
||||
ftp.password = 123456
|
||||
#预览源为FTP时, FTP连接默认ControlEncoding(根据FTP服务器操作系统选择,Linux一般为UTF-8,Windows一般为GBK),可在ftp url后面加参数ftp.control.encoding=UTF-8指定,不指定默认用配置的
|
||||
ftp.control.encoding = UTF-8
|
||||
@@ -1,96 +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 ftpUsername;
|
||||
private static String ftpPassword;
|
||||
private static String ftpControlEncoding;
|
||||
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 getFtpUsername() {
|
||||
return ftpUsername;
|
||||
}
|
||||
|
||||
public static void setFtpUsername(String ftpUsername) {
|
||||
ConfigConstants.ftpUsername = ftpUsername;
|
||||
}
|
||||
|
||||
public static String getFtpPassword() {
|
||||
return ftpPassword;
|
||||
}
|
||||
|
||||
public static String getFtpControlEncoding() {
|
||||
return ftpControlEncoding;
|
||||
}
|
||||
|
||||
public static void setFtpControlEncoding(String ftpControlEncoding) {
|
||||
ConfigConstants.ftpControlEncoding = ftpControlEncoding;
|
||||
}
|
||||
|
||||
public static void setFtpPassword(String ftpPassword) {
|
||||
ConfigConstants.ftpPassword = ftpPassword;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,83 +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";
|
||||
public static final String DEFAULT_CONVERTER_CHARSET = System.getProperty("sun.jnu.encoding");
|
||||
public static final String DEFAULT_FTP_USERNAME = null;
|
||||
public static final String DEFAULT_FTP_PASSWORD = null;
|
||||
public static final String DEFAULT_FTP_CONTROL_ENCODING = "UTF-8";
|
||||
|
||||
|
||||
@PostConstruct
|
||||
void refresh() {
|
||||
Thread configRefreshThread = new Thread(new ConfigRefreshThread());
|
||||
configRefreshThread.start();
|
||||
}
|
||||
|
||||
class ConfigRefreshThread implements Runnable {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
Properties properties = new Properties();
|
||||
String text;
|
||||
String media;
|
||||
String[] textArray;
|
||||
String[] mediaArray;
|
||||
String convertedFileCharset;
|
||||
String officePreviewType;
|
||||
String ftpUsername;
|
||||
String ftpPassword;
|
||||
String ftpControlEncoding;
|
||||
String configFilePath = OfficeUtils.getCustomizedConfigPath();
|
||||
while (true) {
|
||||
FileReader fileReader = new FileReader(configFilePath);
|
||||
BufferedReader bufferedReader = new BufferedReader(fileReader);
|
||||
properties.load(bufferedReader);
|
||||
text = properties.getProperty("simText", DEFAULT_TXT_TYPE);
|
||||
media = properties.getProperty("media", DEFAULT_MEDIA_TYPE);
|
||||
convertedFileCharset = properties.getProperty("converted.file.charset", DEFAULT_CONVERTER_CHARSET);
|
||||
officePreviewType = properties.getProperty("office.preview.type", OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_IMAGE);
|
||||
ftpUsername = properties.getProperty("ftp.username", DEFAULT_FTP_USERNAME);
|
||||
ftpPassword = properties.getProperty("ftp.password", DEFAULT_FTP_PASSWORD);
|
||||
ftpControlEncoding = properties.getProperty("ftp.control.encoding", DEFAULT_FTP_CONTROL_ENCODING);
|
||||
textArray = text.split(",");
|
||||
mediaArray = media.split(",");
|
||||
ConfigConstants.setSimText(textArray);
|
||||
ConfigConstants.setMedia(mediaArray);
|
||||
ConfigConstants.setConvertedFileCharset(convertedFileCharset);
|
||||
ConfigConstants.setOfficePreviewType(officePreviewType);
|
||||
ConfigConstants.setFtpUsername(ftpUsername);
|
||||
ConfigConstants.setFtpPassword(ftpPassword);
|
||||
ConfigConstants.setFtpControlEncoding(ftpControlEncoding);
|
||||
bufferedReader.close();
|
||||
fileReader.close();
|
||||
Thread.sleep(1000L);
|
||||
}
|
||||
} catch (IOException | InterruptedException e) {
|
||||
LOGGER.error("读取配置文件异常", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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(fileAttribute);
|
||||
filePreview.filePreviewHandle(url, new ExtendedModelMap(), fileAttribute);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
Thread.sleep(1000*10);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
package cn.keking.service;
|
||||
|
||||
import cn.keking.model.FileAttribute;
|
||||
import org.springframework.ui.Model;
|
||||
|
||||
/**
|
||||
* Created by kl on 2018/1/17.
|
||||
* Content :
|
||||
*/
|
||||
public interface FilePreview {
|
||||
String filePreviewHandle(String url, Model model, FileAttribute fileAttribute);
|
||||
}
|
||||
@@ -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) {
|
||||
String fileName=fileAttribute.getName();
|
||||
String suffix=fileAttribute.getSuffix();
|
||||
String fileTree = null;
|
||||
// 判断文件名是否存在(redis缓存读取)
|
||||
if (!StringUtils.hasText(fileUtils.getConvertedFile(fileName))) {
|
||||
ReturnResponse<String> response = downloadUtils.downLoad(fileAttribute, 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);
|
||||
} else if ("7z".equalsIgnoreCase(suffix)) {
|
||||
fileTree = zipReader.read7zFile(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";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,32 +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;
|
||||
/**
|
||||
* @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, FileAttribute fileAttribute) {
|
||||
model.addAttribute("mediaUrl", url);
|
||||
String suffix=fileAttribute.getSuffix();
|
||||
if ("flv".equalsIgnoreCase(suffix)) {
|
||||
return "flv";
|
||||
}
|
||||
return "media";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,98 +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.stereotype.Service;
|
||||
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, FileAttribute fileAttribute) {
|
||||
// 预览Type,参数传了就取参数的,没传取系统默认
|
||||
String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString();
|
||||
String originUrl = (String) model.asMap().get("originUrl");
|
||||
String suffix=fileAttribute.getSuffix();
|
||||
String fileName=fileAttribute.getName();
|
||||
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(fileAttribute, 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 && originUrl != null && (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";
|
||||
}
|
||||
}
|
||||
@@ -1,26 +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) {
|
||||
model.addAttribute("fileType",fileAttribute.getSuffix());
|
||||
model.addAttribute("msg", "系统还不支持该格式文件的在线预览," +
|
||||
"如有需要请按下方显示的邮箱地址联系系统维护人员");
|
||||
return "fileNotSupported";
|
||||
}
|
||||
}
|
||||
@@ -1,72 +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) {
|
||||
String suffix=fileAttribute.getSuffix();
|
||||
String fileName=fileAttribute.getName();
|
||||
String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : 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(fileAttribute, 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";
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
package cn.keking.service.impl;
|
||||
|
||||
import cn.keking.model.FileAttribute;
|
||||
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, FileAttribute fileAttribute) {
|
||||
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";
|
||||
}
|
||||
}
|
||||
@@ -1,39 +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){
|
||||
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";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,80 +0,0 @@
|
||||
package cn.keking.utils;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public class DeleteFileUtil {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(DeleteFileUtil.class);
|
||||
|
||||
/**
|
||||
* 删除单个文件
|
||||
*
|
||||
* @param fileName
|
||||
* 要删除的文件的文件名
|
||||
* @return 单个文件删除成功返回true,否则返回false
|
||||
*/
|
||||
public static boolean deleteFile(String fileName) {
|
||||
File file = new File(fileName);
|
||||
// 如果文件路径所对应的文件存在,并且是一个文件,则直接删除
|
||||
if (file.exists() && file.isFile()) {
|
||||
if (file.delete()) {
|
||||
LOGGER.info("删除单个文件" + fileName + "成功!");
|
||||
return true;
|
||||
} else {
|
||||
LOGGER.info("删除单个文件" + fileName + "失败!");
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
LOGGER.info("删除单个文件失败:" + 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())) {
|
||||
LOGGER.info("删除目录失败:" + 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) {
|
||||
LOGGER.info("删除目录失败!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,221 +0,0 @@
|
||||
package cn.keking.utils;
|
||||
|
||||
import cn.keking.config.ConfigConstants;
|
||||
import cn.keking.model.FileAttribute;
|
||||
import cn.keking.model.ReturnResponse;
|
||||
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.*;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author yudian-it
|
||||
*/
|
||||
@Component
|
||||
public class DownloadUtils {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(DownloadUtils.class);
|
||||
|
||||
private String fileDir = ConfigConstants.getFileDir();
|
||||
|
||||
@Autowired
|
||||
private FileUtils fileUtils;
|
||||
|
||||
private static final String URL_PARAM_FTP_USERNAME = "ftp.username";
|
||||
private static final String URL_PARAM_FTP_PASSWORD = "ftp.password";
|
||||
private static final String URL_PARAM_FTP_CONTROL_ENCODING = "ftp.control.encoding";
|
||||
|
||||
/**
|
||||
* 一开始测试的时候发现有些文件没有下载下来,而有些可以;当时也是郁闷了好一阵,但是最终还是不得解
|
||||
* 再次测试的时候,通过前台对比url发现,原来参数中有+号特殊字符存在,但是到后之后却变成了空格,突然恍然大悟
|
||||
* 应该是转义出了问题,url转义中会把+号当成空格来计算,所以才会出现这种情况,遂想要通过整体替换空格为加号,因为url
|
||||
* 中的参数部分是不会出现空格的,但是文件名中就不好确定了,所以只对url参数部分做替换
|
||||
* 注: 针对URLEncoder.encode(s,charset)会将空格转成+的情况需要做下面的替换工作
|
||||
* @param fileAttribute
|
||||
* @return
|
||||
*/
|
||||
public ReturnResponse<String> downLoad(FileAttribute fileAttribute, String fileName) {
|
||||
String urlAddress = fileAttribute.getDecodedUrl();
|
||||
String type = fileAttribute.getSuffix();
|
||||
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 {
|
||||
if ("ftp".equals(url.getProtocol())) {
|
||||
String ftpUsername = fileUtils.getUrlParameterReg(fileAttribute.getUrl(), URL_PARAM_FTP_USERNAME);
|
||||
String ftpPassword = fileUtils.getUrlParameterReg(fileAttribute.getUrl(), URL_PARAM_FTP_PASSWORD);
|
||||
String ftpControlEncoding = fileUtils.getUrlParameterReg(fileAttribute.getUrl(), URL_PARAM_FTP_CONTROL_ENCODING);
|
||||
FtpUtils.download(fileAttribute.getUrl(), realPath, ftpUsername, ftpPassword, ftpControlEncoding);
|
||||
} else {
|
||||
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) {
|
||||
LOGGER.error("文件下载失败", e);
|
||||
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
|
||||
* http://192.168.2.111:8013/download?id=1&filename=中文.zip
|
||||
* @return
|
||||
*/
|
||||
|
||||
private String encodeUrlParam(String urlAddress){
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for (int i = 0; i < urlAddress.length(); i++) {
|
||||
char c = urlAddress.charAt(i);
|
||||
if (c >= 0 && c <= 255) {
|
||||
sb.append(c);
|
||||
} else {
|
||||
byte[] b;
|
||||
try {
|
||||
//指定需要的编码类型
|
||||
b = String.valueOf(c).getBytes("utf-8");
|
||||
} catch (Exception ex) {
|
||||
System.out.println(ex);
|
||||
b = new byte[0];
|
||||
}
|
||||
for (int j = 0; j < b.length; j++) {
|
||||
int k = b[j];
|
||||
if (k < 0) {
|
||||
k += 256;
|
||||
}
|
||||
sb.append("%" + Integer.toHexString(k).toUpperCase());
|
||||
}
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 因为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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 文件编码,eg:UTF-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 + "]";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,353 +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 org.springframework.util.StringUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URLDecoder;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
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 nonPramStr = url.substring(0, url.indexOf("?") != -1 ? url.indexOf("?") : url.length());
|
||||
String fileName = nonPramStr.substring(nonPramStr.lastIndexOf("/") + 1);
|
||||
return typeFromFileName(fileName);
|
||||
}
|
||||
|
||||
private FileType typeFromFileName(String fileName) {
|
||||
String[] simText = ConfigConstants.getSimText();
|
||||
String[] media = ConfigConstants.getMedia();
|
||||
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, "utf-8"))) {
|
||||
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);
|
||||
return suffixFromFileName(fileName);
|
||||
}
|
||||
|
||||
private String suffixFromFileName(String fileName) {
|
||||
String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
|
||||
return fileType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取url中的参数
|
||||
* @param url
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
public String getUrlParameterReg(String url, String name) {
|
||||
Map<String, String> mapRequest = new HashMap();
|
||||
String strUrlParam = truncateUrlPage(url);
|
||||
if (strUrlParam == null) {
|
||||
return "";
|
||||
}
|
||||
//每个键值为一组
|
||||
String[] arrSplit=strUrlParam.split("[&]");
|
||||
for(String strSplit:arrSplit) {
|
||||
String[] arrSplitEqual= strSplit.split("[=]");
|
||||
//解析出键值
|
||||
if(arrSplitEqual.length > 1) {
|
||||
//正确解析
|
||||
mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);
|
||||
} else if (!arrSplitEqual[0].equals("")) {
|
||||
//只有参数没有值,不加入
|
||||
mapRequest.put(arrSplitEqual[0], "");
|
||||
}
|
||||
}
|
||||
return mapRequest.get(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* 去掉url中的路径,留下请求参数部分
|
||||
* @param strURL url地址
|
||||
* @return url请求参数部分
|
||||
*/
|
||||
private String truncateUrlPage(String strURL) {
|
||||
String strAllParam = null;
|
||||
strURL = strURL.trim();
|
||||
String[] arrSplit = strURL.split("[?]");
|
||||
if(strURL.length() > 1) {
|
||||
if(arrSplit.length > 1) {
|
||||
if(arrSplit[1] != null) {
|
||||
strAllParam=arrSplit[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
return strAllParam;
|
||||
}
|
||||
|
||||
|
||||
public FileAttribute getFileAttribute(String url) {
|
||||
String decodedUrl = null;
|
||||
try {
|
||||
decodedUrl = URLDecoder.decode(url, "utf-8");
|
||||
} catch (UnsupportedEncodingException e){
|
||||
log.error("url解码失败");
|
||||
}
|
||||
String fileName;
|
||||
FileType type;
|
||||
String suffix;
|
||||
|
||||
String fullFileName = getUrlParameterReg(decodedUrl, "fullfilename");
|
||||
if (!StringUtils.isEmpty(fullFileName)) {
|
||||
fileName = fullFileName;
|
||||
type = typeFromFileName(fileName);
|
||||
suffix = suffixFromFileName(fileName);
|
||||
} else {
|
||||
fileName = getFileNameFromURL(decodedUrl);
|
||||
type = typeFromUrl(url);
|
||||
suffix = suffixFromUrl(url);
|
||||
}
|
||||
return new FileAttribute(type,suffix,fileName,url,decodedUrl);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -1,34 +0,0 @@
|
||||
package cn.keking.utils;
|
||||
|
||||
import cn.keking.config.ConfigConstants;
|
||||
import cn.keking.service.cache.CacheService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @auther: chenjh
|
||||
* @since: 2019/6/11 7:45
|
||||
*/
|
||||
@Component
|
||||
@ConditionalOnExpression("'${cache.clean:false}'.equals('true')")
|
||||
public class ShedulerClean {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(ShedulerClean.class);
|
||||
|
||||
@Autowired
|
||||
private CacheService cacheService;
|
||||
|
||||
private String fileDir = ConfigConstants.getFileDir();
|
||||
|
||||
@Scheduled(cron = "0 0 3 * * ?") //每晚3点执行一次
|
||||
public void clean() {
|
||||
LOGGER.info("Cache clean start");
|
||||
cacheService.cleanCache();
|
||||
DeleteFileUtil.deleteDirectory(fileDir);
|
||||
LOGGER.info("Cache clean end");
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
package cn.keking.utils;
|
||||
|
||||
import cn.keking.config.ConfigConstants;
|
||||
import cn.keking.model.FileAttribute;
|
||||
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 {
|
||||
@Autowired
|
||||
private FileUtils fileUtils;
|
||||
@Autowired
|
||||
private DownloadUtils downloadUtils;
|
||||
|
||||
public ReturnResponse<String> readSimText(String url, String fileName){
|
||||
FileAttribute fileAttribute = fileUtils.getFileAttribute(url);
|
||||
ReturnResponse<String> response = downloadUtils.downLoad(fileAttribute, fileName);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -1,124 +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();
|
||||
//判断是否为IE浏览器的文件名,IE浏览器下文件名会带有盘符信息
|
||||
// Check for Unix-style path
|
||||
int unixSep = fileName.lastIndexOf('/');
|
||||
// Check for Windows-style path
|
||||
int winSep = fileName.lastIndexOf('\\');
|
||||
// Cut off at latest possible point
|
||||
int pos = (winSep > unixSep ? winSep : unixSep);
|
||||
if (pos != -1) {
|
||||
fileName = fileName.substring(pos + 1);
|
||||
}
|
||||
|
||||
// 判断该文件类型是否有上传过,如果上传过则提示不允许再次上传
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -1,137 +0,0 @@
|
||||
package cn.keking.web.controller;
|
||||
|
||||
import cn.keking.model.FileAttribute;
|
||||
import cn.keking.service.FilePreview;
|
||||
import cn.keking.service.FilePreviewFactory;
|
||||
|
||||
import cn.keking.service.cache.CacheService;
|
||||
import cn.keking.utils.FileUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
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.*;
|
||||
import java.net.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author yudian-it
|
||||
*/
|
||||
@Controller
|
||||
public class OnlinePreviewController {
|
||||
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(OnlinePreviewController.class);
|
||||
|
||||
@Autowired
|
||||
FilePreviewFactory previewFactory;
|
||||
|
||||
@Autowired
|
||||
CacheService cacheService;
|
||||
|
||||
@Autowired
|
||||
private FileUtils fileUtils;
|
||||
|
||||
/**
|
||||
* @param url
|
||||
* @param model
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value = "onlinePreview", method = RequestMethod.GET)
|
||||
public String onlinePreview(String url, Model model, HttpServletRequest req) {
|
||||
FileAttribute fileAttribute = fileUtils.getFileAttribute(url);
|
||||
req.setAttribute("fileKey", req.getParameter("fileKey"));
|
||||
model.addAttribute("officePreviewType", req.getParameter("officePreviewType"));
|
||||
model.addAttribute("originUrl", req.getRequestURL().toString());
|
||||
FilePreview filePreview = previewFactory.get(fileAttribute);
|
||||
return filePreview.filePreviewHandle(url, model, fileAttribute);
|
||||
}
|
||||
|
||||
/**
|
||||
* 多图片切换预览
|
||||
*
|
||||
* @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(new URI(strUrl).toASCIIString());
|
||||
//打开请求连接
|
||||
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 | URISyntaxException e) {
|
||||
LOGGER.error("下载pdf文件失败", e);
|
||||
} finally {
|
||||
if (inputStream != null) {
|
||||
IOUtils.closeQuietly(inputStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过api接口入队
|
||||
* @param url 请编码后在入队
|
||||
*/
|
||||
@GetMapping("/addTask")
|
||||
@ResponseBody
|
||||
public String addQueueTask(String url) {
|
||||
cacheService.addQueueTask(url);
|
||||
return "success";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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 |
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
@@ -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 kɔ mu
|
||||
zoom_in_label=Zuum kɔ mu
|
||||
zoom.title=Zuum
|
||||
presentation_mode.title=Sesa kɔ 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 wɔ 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=Sɔ anaaso dum saedbaa
|
||||
toggle_sidebar_label=Sɔ anaaso dum saedbaa
|
||||
document_outline_label=Dɔkomɛnt bɔbea
|
||||
thumbs.title=Kyerɛ mfoniwaa
|
||||
thumbs_label=Mfoniwaa
|
||||
findbar.title=Hu wɔ 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 wɔ ekyiri baako
|
||||
find_previous_label=Ekyiri baako
|
||||
find_next.title=San hu fres no wɔ 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 wɔ bere a wɔ 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 wɔ 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 sɛ PDF adɔkomɛnt de wɔn ara wɔn ahosu bɛdi dwuma: wɔ adum 'Ma ho kwan ma nkrataafa mpaw wɔn ara wɔn ahosu' wɔ brawsa yi mu.
|
||||
@@ -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 দস্তাবেজসমূহৰ সিহতৰ নিজস্ব ৰঙ ব্যৱহাৰ কৰাৰ অনুমতি নাই: ব্ৰাউছাৰত 'পৃষ্ঠাসমূহক সিহতৰ নিজস্ব ৰঙ নিৰ্বাচন কৰাৰ অনুমতি দিয়ক' অসামৰ্থবান কৰা আছে।
|
||||
@@ -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=পিডিএফ নথি তাদের নিজস্ব রং ব্যবহার করার জন্য অনুমতিপ্রাপ্ত নয়: ব্রাউজারে নিষ্ক্রিয় করা হয়েছে য়েন 'পেজ তাদের নিজস্ব রং নির্বাচন করার অনুমতি প্রদান করা য়ায়।'
|
||||
@@ -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 sã 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 sã 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 są wëłączoné: włączë je, bë 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 sã do kùńca wczëtac zanim gò 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
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -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 jî di pencereyeke nû 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 jî 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 vê 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.
|
||||
@@ -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 दस्तावेज़ हुकर अपन रंग केँ उपयोग करबाक लेल अनुमति प्राप्त नहि अछि: 'पृष्ठ केँ हुकर अपन रंग केँ चुनबाक लेल स्वीकृति दिअ जे ओ ओहि ब्राउज़र मे निष्क्रिय अछि.
|
||||
@@ -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=സ്വന്തം നിറങ്ങള് ഉപയോഗിയ്ക്കുവാന് പിഡിഎഫ് രേഖകള്ക്കു് അനുവാദമില്ല: 'സ്വന്തം നിറങ്ങള് ഉപയോഗിയ്ക്കുവാന് താളുകളെ അനുവദിയ്ക്കുക' എന്നതു് ബ്രൌസറില് നിര്ജീവമാണു്.
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
@@ -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 ଦଲିଲଗୁଡ଼ିକ ସେମାନଙ୍କର ନିଜର ରଙ୍ଗ ବ୍ୟବହାର କରିବା ପାଇଁ ଅନୁମତି ପ୍ରାପ୍ତ ନୁହଁ: 'ସେମାନଙ୍କର ନିଜ ରଙ୍ଗ ବାଛିବା ପାଇଁ ପୃଷ୍ଠାଗୁଡ଼ିକୁ ଅନୁମତି ଦିଅନ୍ତୁ' କୁ ବ୍ରାଉଜରରେ ନିଷ୍କ୍ରିୟ କରାଯାଇଛି।
|
||||
@@ -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 są 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.
|
||||
@@ -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
|
||||
|
||||
@@ -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-дөкүмүөүннэргэ бэйэлэрин өҥнөрүн туттар көҥүллэммэтэ: "Ситим-сирдэр бэйэлэрин өҥнөрүн тутталларын көҥүллүүргэ" диэн браузерга арахса сылдьар эбит.
|
||||
@@ -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.
|
||||
@@ -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=ஆம்
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
@@ -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
@@ -1,9 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
${doc}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,11 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
|
||||
<body>
|
||||
|
||||
${docxConvert}
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -1,30 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>多媒体文件预览</title>
|
||||
</head>
|
||||
<style>
|
||||
body{background-color: #262626}
|
||||
.m{ margin-left: auto; margin-right: auto; width:1024px; margin-top: 100px; }
|
||||
</style>
|
||||
<body>
|
||||
<div class="m">
|
||||
<video width="1024" id="videoElement"></video>
|
||||
</div>
|
||||
<script src="js/flv.min.js"></script>
|
||||
<script>
|
||||
if (flvjs.isSupported()) {
|
||||
var videoElement = document.getElementById('videoElement');
|
||||
var flvPlayer = flvjs.createPlayer({
|
||||
type: 'flv',
|
||||
url: '${mediaUrl}'
|
||||
});
|
||||
flvPlayer.attachMediaElement(videoElement);
|
||||
flvPlayer.load();
|
||||
flvPlayer.play();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -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>
|
||||
@@ -1,228 +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">
|
||||
var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
|
||||
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(url));
|
||||
</pre>
|
||||
</div>
|
||||
<div>
|
||||
新增多图片同时预览功能,接口如下:
|
||||
<pre style="background-color: #2f332a;color: #cccccc">
|
||||
var fileUrl =url1+"|"+"url2";//多文件使用“|”字符隔开
|
||||
window.open('http://127.0.0.1:8012/picturesPreview?urls='+encodeURIComponent(fileUrl));
|
||||
</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>
|
||||
2019年06月18日 :<br>
|
||||
1. 支持自动清理缓存及预览文件<br>
|
||||
2. 支持http/https下载流url文件预览<br>
|
||||
3. 支持FTP url文件预览<br>
|
||||
4. 加入Docker构建<br><br>
|
||||
|
||||
2019年04月08日 :<br>
|
||||
1. 缓存及队列实现抽象,提供JDK和REDIS两种实现(REDIS成为可选依赖)<br>
|
||||
2. 打包方式提供zip和tar.gz包,并提供一键启动脚本<br><br>
|
||||
|
||||
2018年01月19日 :<br>
|
||||
1. 大文件入队提前处理<br>
|
||||
1. 新增addTask文件转换入队接口<br>
|
||||
1. 采用redis队列,支持kkFIleView接口和异构系统入队两种方式<br><br>
|
||||
|
||||
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.项目gitee开源:<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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -1,48 +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://") || pdfUrl?contains("https://")>
|
||||
<#assign finalUrl="${pdfUrl}">
|
||||
<#else>
|
||||
<#assign finalUrl="${baseUrl}${pdfUrl}">
|
||||
</#if>
|
||||
<iframe src="" 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].src = "/pdfjs/web/viewer.html?file="+encodeURIComponent('${finalUrl}');
|
||||
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>
|
||||
@@ -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>
|
||||
@@ -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
Reference in New Issue
Block a user