将文件下载到heroku进行处理并作为附件发送

时间:2018-10-01 00:55:49

标签: python django heroku amazon-s3

我正在尝试执行以下操作:

  1. 从S3下载pdf文件到我的heroku。
  2. 处理pdf文件。
  3. 通过电子邮件将pdf作为附件发送。

有可能吗?如果可以,请给我小费吗? 我正在运行Django,而pdf约为1MB。

这是我的处理部分:

from PyPDF2 import PdfFileWriter, PdfFileReader 
from reportlab.pdfgen import canvas
from reportlab.lib.colors import HexColor
import os, sys
import requests
from io import BytesIO

URL = "https://domainname.com/sample.pdf"
response=requests.get(URL)
p = BytesIO(response.content)
p.seek(0, os.SEEK_END)

def watermark_product(watermark_text, input_file_path, output_file_path):

    c = canvas.Canvas("watermark.pdf") 
    c.setFont("Helvetica", 24)
    c.setFillGray(0.5,0.5)
    c.saveState() 
    c.translate(500,100) 
    c.rotate(45) 
    c.drawCentredString(0, 300, watermark_text) 
    c.restoreState() 
    c.save() 

    input_file = PdfFileReader(input_file_path) 
    output_writer = PdfFileWriter() 
    total_pages = input_file.getNumPages()

    for single_page in range(total_pages):
        page = input_file.getPage(single_page)
        watermark = PdfFileReader("watermark.pdf")
        page.mergePage(watermark.getPage(0))
        output_writer.addPage(page)

    with open(output_file_path, "wb") as outputStream:
        output_writer.write(outputStream)
    os.remove("watermark.pdf")

watermark_product('testtesatd', p, 'w1.pdf')

编辑:

我设法将pdf文件保存在内存中。

0 个答案:

没有答案