将PDF文件中按页截取,并以流的形势返回给客户端
#需要用到pyPdf库 from pyPdf import PdfFileWriter,PdfFileReader from django.http import HttpResponse try: from cStringIO import StringIO except: from io import BytesIo as StringIo def split_pdf(request): pdf_file = u'C:/Users/admin/Desktop/xxxx.pdf' page = 1 #返回的页码 try: currentPage = int(page) except:pass pdfFile = file(pdf_file, 'rb') #打开pdf pdf_input = PdfFileReader(pdfFile) #创建对象 #获取当前PDF的总页数 pageCount = pdf_input.getNumPages() if currentPage: if currentPage < 0 or currentPage >pageCount: currentPage = 1 #获取指定PDF指定页面,以流的形式返回给客户端 out = StringIO() # 获取管道 p = PdfFileWriter() #创建写入对象 p.addPage(pdf_input.getPage(currentPage)) #将当前页对象添加到创建的pdf最后面 p.write(out) #将pdf写入流 out.seek(0) #移动文件指针到第0个位置 response = HttpResponse(content_type='application/pdf') response.write(out.read()) return response