Скачайте файл к героку, обработайте его и отправьте как вложение - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь сделать следующее:

  1. Загрузить файл pdf из S3 на мою герою.
  2. Обработать pdf.
  3. Отправить письмо в pdfкак вложение.

Возможно ли это?Если да, не могли бы вы дать мне совет, как?Я использую Django, и pdf занимает около 1 МБ.

Это моя часть обработки:

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 впамять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...