全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python处理PDF及生成多层PDF实例代码

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小时内与您取得联系。