由于实习公司安全措施做的太好。。各种转pdf的网站进不去,破解软件也不让安装。
急于整理文献,就找了点办法,图片png转pdf
网上找的py2的 自用python3.7改了一阵
1.库的准备
import os from PIL import Image from reportlab.lib.pagesizes import portrait from reportlab.pdfgen import canvas from PyPDF2 import PdfFileReader,PdfFileWriter
由于不在学校么,文献都下不下来,在爱学术上惊奇的发现,一页一页文档可以右击另存为/新标签页打开,
于是手动存了一下。。(因为不多,要是多,还是想办法爬一爬)
2.单张图片转pdf
def imgtopdf(input_paths, outputpath):
(maxw, maxh) = Image.open(input_paths).size
c = canvas.Canvas(outputpath, pagesize=portrait((maxw, maxh)))
c.drawImage(input_paths, 0, 0, maxw, maxh)
c.showPage()
c.save()3.拼接多张pdf
#遍历一下,放一个list里
def getFileName(filepath):
file_list = []
for root,dirs,files in os.walk(filepath):
for filespath in files:
file_list.append(os.path.join(root,filespath))
return file_list
def MergePDF(filepath,outfile):
output=PdfFileWriter()
outputPages=0
pdf_fileName=getFileName(filepath)
for each in pdf_fileName:
print(each)
# 读取源pdf文件
input = PdfFileReader(open(each, "rb"))
# 获得源pdf文件中页面总数
pageCount = input.getNumPages()
outputPages += pageCount
print(pageCount)
# 分别将page添加到输出output中
for iPage in range(0, pageCount):
output.addPage(input.getPage(iPage))
print('All Pages Number:'+str(outputPages))
outputStream=open(filepath+outfile,"wb")
output.write(outputStream)
outputStream.close()
print('finished')
po下全过程啦
import os
from PIL import Image
from reportlab.lib.pagesizes import portrait
from reportlab.pdfgen import canvas
from PyPDF2 import PdfFileReader,PdfFileWriter
def imgtopdf(input_paths, outputpath):
(maxw, maxh) = Image.open(input_paths).size
c = canvas.Canvas(outputpath, pagesize=portrait((maxw, maxh)))
c.drawImage(input_paths, 0, 0, maxw, maxh)
c.showPage()
c.save()
def getFileName(filepath):
file_list = []
for root,dirs,files in os.walk(filepath):
for filespath in files:
# print(os.path.join(root,filespath))
file_list.append(os.path.join(root,filespath))
return file_list
def MergePDF(filepath,outfile):
output=PdfFileWriter()
outputPages=0
pdf_fileName=getFileName(filepath)
for each in pdf_fileName:
print(each)
# 读取源pdf文件
input = PdfFileReader(open(each, "rb"))
# 获得源pdf文件中页面总数
pageCount = input.getNumPages()
outputPages += pageCount
print(pageCount)
# 分别将page添加到输出output中
for iPage in range(0, pageCount):
output.addPage(input.getPage(iPage))
print('All Pages Number:'+str(outputPages))
outputStream=open(filepath+outfile,"wb")
output.write(outputStream)
outputStream.close()
print('finished')
if __name__ == '__main__':
path = './image'
for file in os.listdir(path):
# print(file)
imgtopdf('./image/%s' % file, "./topdf/%s.pdf" % file)
file_dir = r'./topdf'
out=u"whole.pdf"
MergePDF(file_dir,out)

京公网安备 11010502036488号