由于实习公司安全措施做的太好。。各种转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)