这是「进击的Coder」的第 381 篇技术分享

作者:菜鸟哥

来源:菜鸟学 Python

阅读本文大概需要 4 分钟。

pdf 作为一种便携式的文档格式,在日常生活中具有非常广泛的应用。对于 pdf  的应用,无论是文件打印、文档提交、或者是在线文件的传递。都离不开 PDF 文档的应用。

office 软件中的 word、PPT 或者是 excel 文件等我们日常应用的文件,有时候都会转换成 PDF 文档。

菜鸟哥熬夜给给大家制作一款《最强 PDF 转换器》。力图用最简单最快捷的程序实现 PDF 的转换,一起来看看吧。

01.效果展示

为了方便大家对于程序的应用,小编制作了一个交互界面,利用这个交互界面就可以选择需要转换的文件,并转换成 PDF 文档。首先来看一看程序运行的效果吧。

02.程序讲解

通过上面的视频,可以看到,程序支持 word、PPT 等五种文件类型转换为 PDF 文档。接下来我们来展示一下程序是如何实现的吧。

1).word 转成 pdf

对于 word 文档转换为 pdf 文件,程序利用的是 docx2pdf 库,首先需要运行pip install docx2pdf 命令来安装 docx2pdf 库。程序如下图所示:

将 word 文档转换成 pdf 文件,只需要一行代码即可完成,需要注意的是,为提升程序运行的鲁棒性,可以通过 try...except... 来捕获错误,防止程序因为异常报错而崩溃。

2).excel、PPT 转成 pdf

对于 excel 文件和 PPT 文件转换成 pdf 文档,采用 win32com 库进行转换。程序如下图所示。

程序中对于 excel 文档和 PPT 文档的操作非常的类似,因此这里我们以 excel 文档的操作为例,来进行程序的阐述,首先通过程序xlApp = client.Dispatch("Excel.Application")创建新的进程,进程中所作用的对象是 Excel 文件。

接下来程序通过打开一个 excel 文档,然后通过 ExportAsFixedFormat 函数将 excel 保存为 pdf 文档。函数中第一个参数 “0” 表示的是输出保存为 pdf 文档。程序还需要注意的有两点内容:

-根据不同的操作对象,ExportAsFixedFormat 函数的形参也是不相同的,大家可以参考微软的官方文档进行查询。

-在进程对 excel 或者是 PPT 文档的调用过程中,不能够打开对应的文档,因为在程序执行时,同一个文档不能够被两个进程所占用。

3).markdown 文件转 PDF

对于 md 文件的转换,需要借助 markdown 库和 pdfkit 库来进行实现。程序如下图所示。

程序将 md 文件转换成 pdf 文件需要分为两步来实现,第一步,将 md 文件转换成 html 格式的文件,然后利用 pdfkit 库将 html 文件转换成 pdf 文件即可。

4).html 转 PDF

对于在线的 html 文档转换成 pdf 文档,程序如下图所示:

上述的程序中,首先通过交互界面获取到用户输入的 url 链接,然后通过 pdfkit 库的 from_url 函数,即可将在线的 html 文件转换成 pdf 文件。

03.交互界面

最后我们通过对于交互界面的展示和程序的讲解,来进一步的理解程序的运行过程吧。对于交互界面,程序是利用 tkinter 库进行实现,如下图所示:

界面程序非常的简洁,最为核心的包含了五个按钮控件,用来控制运行不同的函数,而 Entry 控件则是用来获取用户的输入。界面的设计如下:

界面中每个按钮的功能通过它的名字,就能够进行判别,此外,在 Entry 控件中,大家只需要输入需要抓取的 url 链接,然后点击 html2PDF 控件,即可完成在线网页转换成 pdf 文档。

04.如何获取这个软件:

以上就是今天小编为大家带来的 PDF 转换器的分享,需要这个程序的可以在原作者公众号后台输入:小助手,找他获取,备注暗号 (pdf)

End

「进击的Coder」专属学习群已正式成立,搜索「CQCcqc4」添加崔庆才的个人微信或者扫描下方二维码拉您入群交流学习。

看完记得关注@进击的Coder

及时收看更多好文

↓↓↓

点个

在看

认真看

肝了一夜,用 90 行代码打造最强 PDF 转换器,word、PPT、excel、markdown、html 一键转换...相关推荐

  1. 90行代码!大一学生自学编程,自创搜题网站,已在GitHub开源

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 大数据文摘出品 作者:Caleb 考试早已不是学生的"特权"了. ...

  2. 通过90行代码学会HTML5 WebSQL的4种基本操作

    Web SQL数据库API是一个独立的规范,在浏览器层面提供了本地对结构化数据的存储,已经被很多现代浏览器支持了. 我们通过一个简单的例子来了解下如何使用Web SQL API在浏览器端创建数据库表并 ...

  3. 90行代码轻松实现!结合 Whisper + Stable-diffusion 的语音生成图像任务!

    本项目将 Whisper 与 Stable Diffusion 模型结合,可以直接完成语音生成图像的任务.用户可以语音输入一个短句,Whisper 会自动将语音转化为文本,接着,Stable Diff ...

  4. 谷歌重磅开源新技术:5行代码打造无限宽神经网络模型,帮助“打开ML黑匣子”...

    鱼羊 假装发自 凹非寺 量子位 报道 | 公众号 QbitAI 只要网络足够宽,深度学习动态就能大大简化,并且更易于理解. 最近的许多研究结果表明,无限宽度的DNN会收敛成一类更为简单的模型,称为高斯 ...

  5. 径向基神经网络_谷歌开源Neural Tangents:5行代码打造无限宽神经网络模型,帮助“打开ML黑匣子”...

    鱼羊 假装发自 凹非寺 量子位 报道 | 公众号 QbitAI 只要网络足够宽,深度学习动态就能大大简化,并且更易于理解. 最近的许多研究结果表明,无限宽度的DNN会收敛成一类更为简单的模型,称为高斯 ...

  6. 几行代码就搞定一个文字识别功能,同时还能转换成语音,畅快!

    前几天想把一篇不错的文章保存下来,无奈是图片的,于是想利用python把图片中的文字识别出来 实现的方式还是挺多的,这里介绍下百度的AI开放平台,毕竟大公司,感觉识别的精度会高点,同时相信他们的算法也 ...

  7. 第一行代码-android-第三版-pdf扫描-思维导图-课件-源码

    第一行代码-android-第三版-pdf扫描-思维导图-课件-源码 一帮公众号各种要你关注, 各种压缩包层层套娃要密码, 还要进群, 真他妈日了gou了,找了半天 分享给大家, 毫无套路! pdf扫 ...

  8. HTML5游戏实战 2 90行代码实现捕鱼达人

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 捕鱼达人 ...

  9. HTML5游戏实战(2):90行代码实现捕鱼达人

    捕鱼达人是一款非常流行的游戏,几年里赚取了数以千万的收入,这里借用它来介绍一下用Gamebuilder+CanTK开发游戏的方法.其实赚钱的游戏未必技术就很难,今天我们就仅用90来行代码来实现这个游戏 ...

最新文章

  1. 13个JavaScript单行式代码
  2. linux软件包安装方式汇总
  3. tgp饥荒服务器mod文件在哪,饥荒联机版中客户端mod文件夹在哪?注意不是服务器mod!...
  4. Linux或者Mac解压乱码问题
  5. flume拦截器及自定义拦截器
  6. VS2013 Codejock 实现 MFC 换肤
  7. UmiJs(v3.x版本)
  8. udp端口转发 Linux,Linux下利用iptables快速实现UDP/TCP端口转发
  9. Dolby与DTS杜比环绕与DTS环绕音响
  10. eCognition软件中ESP2插件的下载与安装
  11. HTTP的options方法作用
  12. android高仿ios11系统,仿ios11状态栏安卓版-2020最新安卓仿iOS11状态栏apk3.0免费版下载_飞翔下载...
  13. Hapi入门--独立路由
  14. c语言辅音字符怎么表示,C 语言实例 - 判断元音/辅音
  15. U-Net深度学习灰度图像的彩色化
  16. 垃圾分类共享网站的设计与实现(SSM)
  17. 情绪识别软件?论程序员对猫的偏爱!
  18. tcpcopy简单用法
  19. 纯css实现div背景色从左到右的刷动效果
  20. Windows 11 即将发布,微软欲“强推” Edge 浏览器?

热门文章

  1. 神奇的工作室这个关键词好优化上首页吗?
  2. 你思考问题的方式,决定你能走多远
  3. 快速判断文件是否存在
  4. 使用python爬虫爬取迅雷侠下载,呵呵,你懂得
  5. Netmask (子网掩码 )的用途与子网络的切分
  6. Xcode模拟iPhone教程!
  7. 动态规划篇——最长公共子序列(c++)
  8. 2020二级c语言成绩查询入口,2020年全国计算机等级考试一本通 二级C语言
  9. 胡莱三国2服务器维护,扫图技巧
  10. 视觉里程计的重定位问题1——SVO的重定位部分