当前位置:首页 > 软件开放 > 正文内容

代码怎么转成网页(代码怎么转成网页格式)

软件开放8个月前 (05-17)343

作者: qikqiak

来源:https://blog.qikqiak.com/post/python-convert-pdf-images/

作者: qikqiak

来源:https://blog.qikqiak.com/post/python-convert-pdf-images/

之前收集了很多优秀的 PDF文档,但是需要看的时候不是很方便,需要去找到这个文件,如果是在手机上的话往往还需要下载 PDF相关的插件才行,而且最大的问题是不便于资料的整理和分享。如果能够将 PDF转换成网页,岂不是就能解决这些问题了?还能直接分享出去。

这里利用 PyPDF包来处理 PDF文件,为了方便快捷,我这里直接将一个页面转换成图片,就不需要去识别页面中的每一个 PDF元素了,这是没必要的。

转换

核心代码很简单,就是将 PDF文件读取出来,转换成 PdfFileReader,然后就可以根据 PyPDF2的API去获得每一个页面的二进制数据,拿到二进制数据过后,就能很方便的进行图片处理了,这里用 wand包来进行图片处理。

# -*- coding: utf-8 -*-

importio

fromwand.image importImage

fromwand.color importColor

fromPyPDF2importPdfFileReader,PdfFileWriter

展开全文

memo ={}

defgetPdfReader(filename):

reader =memo.get(filename,None)

ifreader isNone:

reader =PdfFileReader(filename,strict=False)

memo[filename]=reader

returnreader

def_run_convert(filename,page,res=120):

idx =page +1

pdfile =getPdfReader(filename)

代码怎么转成网页(代码怎么转成网页格式)

pageObj =pdfile.getPage(page)

dst_pdf =PdfFileWriter()

dst_pdf.addPage(pageObj)

pdf_bytes =io.BytesIO()

dst_pdf.write(pdf_bytes)

pdf_bytes.seek(0)

img =Image(file=pdf_bytes,resolution=res)

img.format ='png'

img.compression_quality =90

img.background_color =Color("white")

img_path ='%s%d.png'%(filename[:filename.rindex('.')],idx)

img.save(filename=img_path)

img.destroy()

需要注意的是一般PDF文件较大,如果一次性转换整个PDF文件需要小心内存溢出的问题,我们这里将第一次载入的整个PDF文件保存到内存,避免每次读取的时候都重新载入。

需要注意的是一般PDF文件较大,如果一次性转换整个PDF文件需要小心内存溢出的问题,我们这里将第一次载入的整个PDF文件保存到内存,避免每次读取的时候都重新载入。

上面已经完成了一个 PDF页面的转换,要完成整个文件的转换就很简单了,只需要拿到文件的总页码,然后循环执行就行。考虑到转换比较耗时,可以使用异步处理的方式加快速度。比如可以使用 celery来搭配处理,一定注意小心内存泄露。

核心代码已经整理放到github上去了,好了,等有时间的时候准备做一个公共的 PDF转成 H5的服务,开放给大众使用。

花了点时间,做成了一个独立的服务:https://pdfh5.com,欢迎大家试用

花了点时间,做成了一个独立的服务:https://pdfh5.com,欢迎大家试用

扫描二维码推送至手机访问。

版权声明:本文由飞速云SEO网络优化推广发布,如需转载请注明出处。

本文链接:http://hon-tex.cn/post/114991.html

分享给朋友:

“代码怎么转成网页(代码怎么转成网页格式)” 的相关文章

西安软件开发培训(西安软件开发培训机构排行榜)

西安软件开发培训(西安软件开发培训机构排行榜)

本篇文章给大家谈谈西安软件开发培训,以及西安软件开发培训机构排行榜对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、西安的计算机培训学校有哪些? 2、西安软件编程培训学校排名榜有哪些? 3、西安软件开发培训学校有哪些? 4、西安最好的计算机培训机构是哪个? 西...

英雄联盟手游账号交易平台b(英雄联盟账号购买交易平台)

英雄联盟手游账号交易平台b(英雄联盟账号购买交易平台)

本篇文章给大家谈谈英雄联盟手游账号交易平台b,以及英雄联盟账号购买交易平台对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、在哪卖英雄联盟账号? 2、英雄联盟手游在哪里可以租号?gg租号可以租到吗? 3、什么交易平台可以卖英雄联盟账号?? 4、《英雄联盟手游》在...

一对一软件怎么样(一对一软件的哪个好)

一对一软件怎么样(一对一软件的哪个好)

本篇文章给大家谈谈一对一软件怎么样,以及一对一软件的哪个好对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、一对一视频聊天软件 2、一对一辅导软件哪个用起来比较好? 3、思学通家教1对1好不好 4、国外一对一视频聊天软件哪个好用 一对一视频聊天软件 1、Sky...

个人简历网页设计思路(个人简历页面设计)

个人简历网页设计思路(个人简历页面设计)

今天给各位分享个人简历网页设计思路的知识,其中也会对个人简历页面设计进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、Html网页简历如何制作 2、网上求职简历制作技巧 3、求DreamWeaver网页的形式制作一份个人简历 4、如何制作比较炫酷的...

手机浏览器显示不全网页内容(手机浏览器不能显示全部网页内容)

手机浏览器显示不全网页内容(手机浏览器不能显示全部网页内容)

本篇文章给大家谈谈手机浏览器显示不全网页内容,以及手机浏览器不能显示全部网页内容对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、手机网页显示不完整怎么办? 2、手机浏览电脑版网页显示不全 手机浏览电脑版网页显示不全怎么办 3、存龙网站手机打开不全 4、手机网页...

微信怎样制作生日祝福(微信怎样制作生日祝福表情)

微信怎样制作生日祝福(微信怎样制作生日祝福表情)

今天给各位分享微信怎样制作生日祝福的知识,其中也会对微信怎样制作生日祝福表情进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、给好朋友生日快乐微信祝福语 2、怎么用微信表情符号拼出生日快乐花样的图案 3、微信怎么自动零点发生日祝福 给好朋友生日快乐微...