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



这是「进击的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

及时收看更多好文

↓↓↓

点个

在看

认真看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值