Python提供了众多的PDF支持库,本文是在Python3环境下,试用了两个库来完成PDF的生成的功能。PyPDF对于读取PDF支持较好,但是没找到生成多层PDF的方法。Reportlab看起来更成熟,能够利用Canvas很方便的生成多层PDF,这样就能够实现图片扫描上来的内容也可以进行内容搜索的目标。

Reportlab
生成双层PDF
双层PDF应用PDF中的Canvas概念,先画文字,最后将图片画上去,这样就是两层的PDF。
import os
# import urllib2
import time
from reportlab import platypus
from reportlab.lib.pagesizes import letter
from reportlab.lib.units import inch
from reportlab.platypus import SimpleDocTemplate, Image
from reportlab.pdfgen import canvas
image_file = "./42.png"
# Use Canvas to generate pdf
c = canvas.Canvas('reportlab_canvas.pdf', pagesize=letter)
width, height = letter
c.setFillColorRGB(0,0.77,0.77)
# say hello (note after rotate the y coord needs to be negative!)
c.drawString( 3*inch, 3*inch, "Hello World")
c.drawImage(image_file, 0 , 0)
c.showPage()
c.save()
PyPDF2
读取PDF
from PyPDF2 import PdfFileWriter, PdfFileReader
output = PdfFileWriter()
input1 = PdfFileReader(open("jquery.pdf", "rb"))
# print document info
print(input1.getDocumentInfo())
# print how many pages input1 has:
print ("pdf_document.pdf has %d pages." % input1.getNumPages())
# print page content
page_content = input1.getPage(0).extractText()
print( page_content )
# add page 1 from input1 to output document, unchanged
output.addPage(input1.getPage(0))
# add page 2 from input1, but rotated clockwise 90 degrees
output.addPage(input1.getPage(1).rotateClockwise(90))
# finally, write "output" to document-output.pdf
outputStream = open("PyPDF2-output.pdf", "wb")
output.write(outputStream)
但是PyPDF获取PDF内容有很多问题,可以看这个问题列表。文档中也有说明。
| extractText(self) | ## | # Locate all text drawing commands, in the order they are provided in the | # content stream, and extract the text. This works well for some PDF | # files, but poorly for others, depending on the generator used. This will | # be refined in the future. Do not rely on the order of text coming out of | # this function, as it will change if this function is made more | # sophisticated. | # | # Stability: Added in v1.7, will exist for all future v1.x releases. May | # be overhauled to provide more ordered text in the future. | # @return a unicode string object
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# python
# 生成pdf
# 生成pdf文件
# python3生成pdf
# 浅谈Python处理PDF的方法
# 是在
# 也有
# 有很多
# 这个问题
# 较好
# 后将
# 很方便
# 来完成
# 两层
# 大家多多
# 画上
# 文档
# pdf
# generate
# pagesize
# width
# height
# reportlab_canvas
# output
# setFillColorRGB
相关文章:
西安专业网站制作公司有哪些,陕西省建行官方网站?
建站主机是什么?如何选择适合的建站主机?
h5在线制作网站电脑版下载,h5网页制作软件?
大同网页,大同瑞慈医院官网?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何用搬瓦工VPS快速搭建个人网站?
建站VPS配置与SEO优化指南:关键词排名提升策略
北京专业网站制作设计师招聘,北京白云观官方网站?
高端网站建设与定制开发一站式解决方案 中企动力
Python文件管理规范_工程实践说明【指导】
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
如何用PHP工具快速搭建高效网站?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
如何通过FTP服务器快速搭建网站?
已有域名能否直接搭建网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何通过老薛主机一键快速建站?
建站之星如何实现PC+手机+微信网站五合一建站?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
,网页ppt怎么弄成自己的ppt?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
如何通过虚拟机搭建网站?详细步骤解析
如何自定义建站之星模板颜色并下载新样式?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
高端云建站费用究竟需要多少预算?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
*服务器网站为何频现安全漏洞?
怎么将XML数据可视化 D3.js加载XML
如何在Ubuntu系统下快速搭建WordPress个人网站?
建站之星如何快速更换网站模板?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
建站之星×万网:智能建站系统+自助建站平台一键生成
简单实现Android文件上传
长沙企业网站制作哪家好,长沙水业集团官方网站?
高端建站三要素:定制模板、企业官网与响应式设计优化
,购物网站怎么盈利呢?
建站之星免费模板:自助建站系统与智能响应式一键生成
北京网站制作的公司有哪些,北京白云观官方网站?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
高端企业智能建站程序:SEO优化与响应式模板定制开发
jQuery 常见小例汇总
家具网站制作软件,家具厂怎么跑业务?
电商网站制作公司有哪些,1688网是什么意思?
网站制作说明怎么写,简述网页设计的流程并说明原因?
如何选择网络建站服务器?高效建站必看指南
深圳网站制作的公司有哪些,dido官方网站?
如何通过FTP空间快速搭建安全高效网站?
如何配置支付宝与微信支付功能?
*请认真填写需求信息,我们会在24小时内与您取得联系。