將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
相關文章
相關標籤/搜索