是程序员,就用python导出pdf
这两天一直在做课件,我个人一直不太喜欢ppt这个东西……能不用就不用,我个人特别崇尚极简风。
谁让我们是程序员呢,所以就爱上了jupyter写课件,讲道理markdown也是个非常不错的写书格式啊。
安装jupyter其实非常简单,你会python就应该会用jupyter,起码简单的 pip install jupyter, jupyter notebook 要会对伐~
好那接下来就是使用jupyter了,启动jupyter后,使用浏览器访问相应ip:port就可以使用了。没错,jupyter就是这么一个可以用网站来写python的地方。
但是发讲义给同学们看,ipynb格式的文件肯定不方便啊,别人还没上课呢,哪知道那么多?再者pdf传阅起来也随时随地能打开啊。所以我就想转换成pdf。
但是打开文件,点击下载,发现出现了error
然后照着这个error,就去谷歌了,发现说的最多的就是要装一个latex环境,mac下完整的安装包要将近3个g!我就为了一个pdf还不需要这么大一个包吧?所以寻思其他方法。
虽然jupyter对pdf支持的不是那么的友善,但是对于html是非常棒的,只不过html是一个html嘛(这不是废话)……不过我可以利用html转换到pdf上啊。
后来了解到python有一个包叫 pdfkit,专门用来转换pdf文件。那我现在只需要在mac上得到pdfkit的支持就好啦?所以接下来就是尝试的过程了。
安装pdfkit,
pip install pdfkit
在这里下载对应系统的安装包 ,这个只有48mb。
最后就是为什么说python是「多膜优秀」的原因了!直接看代码
''' 需要安装pdfkit, pip install pdfkit 自行下载并安装wkhtmltopdf-binary, http://wkhtmltopdf.org/ ''' import sys import subprocess import pdfkit # 获得ipynb文件 inputfile = sys.argv[1].replace(" ", "\ ") # 截取ipynb前面的名字,并保留一份html临时文件 # 这份文件会在转换过程中需要 # 因为我是利用jupyter对于html的支持,使用pdfkit对html文件进行转换 temp_html = inputfile[0:inputfile.rfind('.')]+'.html' # 转换ipynb文件为html # 调用了ipython接口 command = 'ipython nbconvert --to html ' + inputfile # shell端执行command subprocess.call(command, shell=true) print('============success===========') # 拼接一个pdf名字 output_file = inputfile[0:inputfile.rfind('.')]+'.pdf' # 大杀器出场,pdfkit直接将html转换成pdf pdfkit.from_file(temp_html, output_file) # 删除html临时文件 subprocess.call('rm '+temp_html, shell=true)
操作起来也很简单:
至此,ipynb文件已成功转换成pdf文件,并且颜色、格式全都保留!
关注公众号「python专栏」,后台回复「zsxq06」,获取本文全套源码!
上一篇: Django 无名参数与有名参数
下一篇: C++雾中风景13:volatile解惑
推荐阅读
-
是程序员,就用python导出pdf
-
python程序员爬取百套美女写真集,同样是爬虫,他为何如此突出
-
谁说程序员不浪漫?Python导出微信聊天记录生成爱的词云图
-
资深程序员用Python爬取了11万Java程序员!Java原来是这样的呢!
-
搞笑的程序猿:看看你是哪种Python程序员
-
短信轰炸,得罪一个Android转Python的程序员是件多么可怕的事?
-
如果你面试Python程序员时,碰到这十个问题,千万注意,是陷阱!
-
有Java基础的程序员,是如何看待Python这位少女的?
-
拿来就用!Python批量合并PDF的示例代码
-
看资深程序员是如果玩Python的!利用Python实现 FTP弱口令扫描器