上篇文章中我们讲了怎么利用腾讯轻量云服务器搭建一个PDF在线压缩工具,今天我们来搭建一个更强大的工具,不仅支持PDF在线压缩,还支持PDF OCR文字识别

前言

前两天需要压缩一个pdf文件,由于pdf中涉及到了一些个人信息,不想使用在线的网站的压缩。下载了几个离线的压缩工具,大部分居然都需要收费,虽然后来找到了一个免费的工具搞定了这件事,不过想到后面可能还会碰到这样的事情,因此萌生了自己做一个在线压缩pdf的网站的想法。查阅了相关资料,最后借助ghostscript 实现了我的需求。不过有小伙伴觉得网站功能太单调了,还有小伙伴想要OCR的功能,我看了一下ghostscript的文档,发现ghostscript是支持OCR的,那还等什么,集成就完事了。如果小伙伴们觉得有用的话,给我的仓库https://github.com/lixiaofei123/pdftoolbox点一个star吧。由于新的工具网站不仅仅是只支持pdf压缩,现在也支持OCR,后面可能还会增加别的功能,因此我将原来的pdfcomress名字改成了pdftoolbox。

下面是网站的首页,可以看到,是非常简洁的。

下面讲一下怎么在腾讯云轻量服务器部署这个pdf在线工具箱,有兴趣的小伙伴可以玩一下

购买腾讯云轻量服务器

既然要在轻量服务器上部署,那么就需要先购买一个轻量服务器。现在轻量服务器在做活动,2核4G的配置一年只需要74元,详情可以点击这个链接了解。如下图所示,点击购买即可

然后选择【地域】和【镜像】,地域的话选择距离自己最近的地域,我们后面要使用Docker进行安装,因此这里直接选择【Docker基础镜像】,下面系统可以选一个自己熟悉的,如果无所谓的话,就保持默认好了。

然后提交订单并付款,稍等一会,我们的轻量服务器实例就创建成功了。为了方便操作,需要用终端来连接服务器,这个涉及到一些配置,官方文档讲的很清楚,可以自己看着操作一下。后面的步骤默认在终端上操作。

启动Docker容器

部署一个应用最简单的方法,当然使用docker镜像了。今天的教程也不例外,我将pdf工具箱直接做成了镜像,里面已经封装好了相应的环境。因此,就不需要那么麻烦的配置环境了。只需要一行命令就可以搞定。

mkdir -p /data/pdftoolbox/input
mkdir -p /data/pdftoolbox/output
docker run -d --name pdftoolbox --restart=always -p 8082:8082 -v /data/pdftoolbox/input:/opt/pdftoolbox/input  -v /data/pdftoolbox/output:/opt/pdftoolbox/output  mrlee326/pdftoolbox

其中//opt/pdftoolbox/input是用来放置用户上传文件的目录,/opt/pdftoolbox/output是用来放转换后的文件的目录,建议将其挂载在宿主机上,这样就方便后面清理文件了。有能力的话,可以自己写一个定时脚本来清理过期的文件。

启动完毕后,就可以通过浏览器来访问我们的pdf在线工具箱了。目前提供了两个功能,一个是pdf压缩、一个是pdf OCR

PDF压缩

先来试用一下pdf压缩功能。在低质量模式下,可以将pdf的体积压缩到原来的1/4大小。

pdf压缩主要针对的是包含图片比较多的pdf,如果原pdf中基本上都是文字的话,那么压缩的效果就不太理想。因为基本上没压缩的空间了。

PDF OCR

然后就来试一下pdf的文字提取吧。这个功能同样是基于ghostscript来实现的。激活【PDF文字提取】选项,然后根据需要来选择额外支持的语言,目前内部默认支持简体中文和英文,因此基本上不需要选择。点击上传文件,就会自动进行转换,如果机器的性能比较低的话,这一步可能会比较慢,请耐心等待几分钟。等下面的进度条全部走完,并出现【点击下载】按钮,说明转换完毕,这时候点击下载即可。

证书配置

如果想要https证书的话,可以使用acme-companion容器来进行证书的自动颁发。这个操作起来也很简单。只需要额外启动两个容器即可

docker run --detach \--name nginx-proxy \--publish 80:80 \--publish 443:443 \--volume certs:/etc/nginx/certs \--volume vhost:/etc/nginx/vhost.d \--volume html:/usr/share/nginx/html \--volume /var/run/docker.sock:/tmp/docker.sock:ro \nginxproxy/nginx-proxy
 docker run --detach \--name nginx-proxy-acme \--volumes-from nginx-proxy \--volume /var/run/docker.sock:/var/run/docker.sock:ro \--volume acme:/etc/acme.sh \--env "DEFAULT_EMAIL=mail@yourdomain.tld" \nginxproxy/acme-companion

最后启动pdftoolbox。注意多了几个环境变量VIRTUAL_HOST、VIRTUAL_PORT、ETSENCRYPT_HOST,同时需要提前将pdf.bar.foo解析到轻量服务器的ip上。

docker run --detach \--restart=always --name pdftoolbox \-v /data/pdftoolbox/input:/opt/pdftoolbox/input \-v  /data/pdftoolbox/output:/opt/pdftoolbox/output \--env "VIRTUAL_HOST=pdf.bar.foo"  \--env "VIRTUAL_PORT=8082"   \--env "LETSENCRYPT_HOST=pdf.bar.foo" \mrlee326/pdftoolbox

然后通过浏览器访问https://pdf.bar.foo,就可以看到绿色的小锁了,表示我们的网站是安全的了。

总结

通过上面的过程,我们就有了一个属于自己的在线pdf工具箱网站,这样也不用担心自己的个人信息被别人保存,同时更换电脑的话也不需要重新安装软件。如果小伙伴们觉得有用的话,给我的仓库https://github.com/lixiaofei123/pdftoolbox点一个star吧

用轻量服务器搭建自己的pdf在线工具箱(支持pdf压缩以及pdf OCR)相关推荐

  1. 使用腾讯云轻量服务器搭建CS GO社区服(基于Centos)

    使用腾讯云轻量服务器搭建CS GO社区服(基于Centos) 随着腾讯云轻量服务器的火爆,越来越多轻量服务器的玩法也被各位大佬们开发了出来. ,本次教程是使用腾讯云轻量服务器搭建CS GO 社区服. ...

  2. 用轻量服务器搭建在线协作绘图白板

    WBO是一个自由和开源的在线协作白板.它允许多个用户同时在一个虚拟的大型白板上画图.该白板对所有线上用户实时更新,并且状态始终保持.它可以用于许多不同的目的,包括艺术.娱乐.设计和教学,使用起来也非常 ...

  3. 用轻量服务器搭建自托管的视频会议服务,并集成到自己的项目中

    本文主要面向需要在自己系统中集成视频会议的读者. 客户要求在页面中集成视频会议功能,本来刚开始准备直接用腾讯云的服务来实现,但是客户说他们完全是一个不能访问互联网的局域网的环境,因此需要部署一个自托管 ...

  4. 饥荒腾讯云服务器带宽要求,用腾讯云轻量服务器搭建饥荒联机版专用服务器

    前言 放寒假了,于是又把饥荒捡起来快乐的玩耍. 玩过饥荒联机版的小伙伴应该都遇到过这种情况:房间中的某人延迟飘红,严重的时候直接掉线. 此外,如果房主把游戏关了,那么房间内的其他人也会掉线(因为房主是 ...

  5. 利用腾讯云轻量服务器搭建专属自己网盘

    前言: 是不是有人和我一样受够了,某个网盘的疯狂限制流量,还有莫名其妙东西就没有了.想到前期自己在腾讯云购买的轻量云服务器.购买链接.[腾讯云]轻量应用服务器Lighthouse限时1.2折起,1核1 ...

  6. 使用腾讯云轻量应用服务器搭建gitlab服务器

    使用腾讯云轻量应用服务器搭建gitlab服务器 前言:代码平台托管安全吗? 之前就有某科集团,在网络上面透露,托管在某云公共代码托管平台的源码发生泄漏,造成至少40多家企业200多个项目代码泄漏.所以 ...

  7. 腾讯云4核8G轻量服务器12M支持多少访客同时在线?并发数怎么算?

    腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线?通用型-4核8G-180G-2000G,2000GB月流量,系统盘为180GB SSD盘,12M公网带宽,下载速度峰值为1536KB/s,即1 ...

  8. 腾讯云轻量服务器为什么便宜?轻量和云服务器有什么区别?

    腾讯云轻量应用服务器为什么便宜?轻量应用服务器和云服务器相比性能一样吗?腾讯云服务器网告诉大家轻量应用服务器与同规格的标准型云服务器CVM 相比,轻量应用服务器的CPU.内存性能与其处于同一水准.所以 ...

  9. 搭建个人网站阿里云轻量服务器

    上阿里云官网买了一个便宜的轻量服务器(输入轻量服务器就可以进入产品控制台) 设置了防火墙规则(大致是这些,需要可以再次设置) 在服务器上进行远程连接(不会就点击 帮助文档 查看) 在购买的服务器远程连 ...

最新文章

  1. Java 8中Stream API的这些奇技淫巧!你都Get到了吗?
  2. TCP/IP 网络数据封包和解包
  3. Django之部署NGINX+uWSGI
  4. lucene的丰富的各种查询
  5. [No000014A]Linux简介与shell编程
  6. [POJ3928 Ping pong]
  7. 阿里游戏之心不死?| 畅言
  8. Linux 命令(69)—— objcopy 命令
  9. XmlHttpRequest错误:Access-Control-Allow-Origin不允许使用原点null
  10. Makefile中的@
  11. pr如何跳到关键帧_pr怎么跟踪?pr怎么做运动跟踪怎么用?
  12. DOTween中文详解(持续更新)
  13. 【PyTorch实战】用PyTorch实现基于神经网络的图像风格迁移
  14. 撰写美国作业使用APA与MLA格式的区别是什么?
  15. 用友u8 如何配置文件服务器,用友u8服务器软件配置
  16. 润乾报表学习一:制作最简单的报表
  17. 计算机组成原理微控制器实验报告,计算机组成原理实验报告三
  18. 单人登录-踢下线功能实现
  19. Android挂机 屏幕,游戏蜂窝新版支持全面屏手机 简单几步教你如何设置挂机
  20. 计算两个时间差,单位天、小时、分钟、秒

热门文章

  1. web service 优缺点
  2. ArduPilot之遥控器数据读取
  3. vue获取上一个页面路由地址
  4. cocos2d-x 全面总结--字体描边和制作阴影
  5. xp系统显示无打印机服务器,Xp系统显示“Windows无法打开添加打印机”的处理方法...
  6. 商品订单管理系统java_Javaweb的实例--订单管理系统--设计数据库
  7. mysql 三门课程平均分_平均分
  8. 华为数通HCIE实验考试LAB-C2全记录
  9. 解决K8S节点NotReady状态
  10. 华为云服务之存储服务