Loading... # 搭建自己的pdf在线预览工具 ## 1、前言 在日常工作学习过程中,我们常常将自己的学习笔记和成果记录下来, 之后想通过网络将这些资料分享给其他人.如果你有个人博客,那么可以将你的总结用markdown写下来然后发布在你的网站上. 但是如果你没有自己的博客, 或者有些资料内容markdown并不能完整的表达出来, 又或者你的资料是word、ppt等格式的文件, 又或者你的你需要将你的简历以pdf的格式放在网上, 此时你可能突然有想要将以上提到的这些资料都转为pdf的格式,然后放在网络上让别人访问.然而找了一圈发现并没有一个好用的线上工具可以实现这个效果. 那么,恭喜你, 通过阅读并且按照本文的内容你将拥有属于你自己的pdf在线预览服务器,可以将你自己的pdf通过网络分享出去,让更多人看到你的内容. ## 2、使用gitee和pdf.js搭建pdf在线浏览工具 `码云Pages(gitee pages)`是一个免费的静态网页托管服务, 除此之外你还可以使用gitee pages托管博客、项目官网等. 之后我们将使用gitee pages来托管pdf.js. (使用Github Pages也可以达到同样的效果, 但是Github的访问速度也是.....) `pdf.js`是一款使用HTML5 Canvas安全地渲染pdf文件以及遵从网页标准的网页浏览器渲染pdf文件的javascript库.该插件不需要任何本地支持,对浏览器的兼容性也比较好. ### 2.1 注册gitee并创建仓库 [使用Gitee - 廖雪峰的官方网站](https://www.liaoxuefeng.com/wiki/896043488029600/1163625339727712) ### 2.2 连接gitee远程仓库并上传pdf.js 在本地创建空项目`Npdf`,并初始化git ```shell mkdir Npdf cd Npdf git init ``` 在gitee创建名为`Npdf`的仓库, 本地连接到远程仓库 ```shell git config --global user.name "xxxxx" git config --global user.email "xxxxx@gmail.com" git remote add origin https://gitee.com/xxxx/npdf.git ``` 下载[pdf.js](https://mozilla.github.io/pdf.js/getting_started/#download)的源码,并解压到本地`Npdf`仓库下.  将你自己要展示的pdf文件放入`web`文件夹下  将文件上传到gitee的仓库 ```shell git add * git commit -m "add pdf.js" git push origin master ``` gitee的`Npdf`仓库中选择`Service`下的`Gitee Pages`.进入选择创建Pages.  最终可以生成如下内容(部署成功)  之后,你可以使用如下链接, 打开之前放入`web`文件夹下的pdf文件 `https://lucasnan.gitee.io/npdf/web/viewer.html?file=robot-handle.pdf` - `https://lucasnan.gitee.io/npdf` 你的Npdf仓库Gitee Pages主页 - `web/viewer.html` - `?file=` 后接pdf的名称  ## 3、自动更新Gitee Pages 免费用户` Gitee Pages `服务不能像` Github Pages` 一样自动发布, 每次更新内容都需要进入`Gitee Pages`进行UPDATE,但刷新 Gitee Pages 是点击按钮的简单任务,使用python脚本就可以完成。 > 使用Python开源自动化工具Playwright。Playwright是一个强大的Python库,仅用一个API即可自动执行Chromium、Firefox、WebKit等主流浏览器自动化操作,并同时支持以无头模式、有头模式运行。(playwright库需要依赖**Python3.7+**以上) [参考这篇文章安装Playwright](http://www.51ste.com/share/det-5936.html) ```python from playwright.sync_api import sync_playwright import time # 改为你的Gitee用户名 USERNAME = 'xxx' # 改为你的Gitee密码 PASSWORD = 'xxx' # 改为你的pages地址(UPDATE按钮所在的页面) GITEE_PAGES_URL = 'https://gitee.com/lucasnan/npdf/pages' def main(): with sync_playwright() as p: for browser_type in [p.chromium]: browser = browser_type.launch(headless=False) page = browser.new_page() page.goto('https://gitee.com/login') page.click('input[name="user<div class="hideContent">该部分仅登录用户可见</div>"]'); page.fill('input[name="user<div class="hideContent">该部分仅登录用户可见</div>"]', USERNAME); page.click('input[name="user<div class="hideContent">该部分仅登录用户可见</div>"]'); page.fill('input[name="user[password]"]', PASSWORD); page.click("input[value='登 录']") time.sleep(3) page.goto(GITEE_PAGES_URL) page.on("dialog", lambda dialog: dialog.accept()) page.click(".update_deploy") #page.waitForSelector('span:text("已开启 Gitee Pages 服务")', timeout=60 * 1000, state='visible') browser.close() if __name__ == '__main__': main() ``` ## 4、参考资料 [1] [virtualenv安装并指定python版本](https://zhuanlan.zhihu.com/p/38457004) [2] [自动更新 Gitee Pages](https://kaffa.im/update-gitee-pages-with-playwright.html) Last modification:May 11th, 2021 at 07:05 pm © 允许规范转载