from django.core.mail import EmailMessage from django.template.loader import render_to_string import subprocess import os import subprocess import os def generate_invoice_image(html_content, output_path): # Создание временного HTML файла temp_html = "temp_invoice.html" with open(temp_html, "w", encoding='utf-8') as f: f.write(html_content) # Полный путь к исполняемому файлу wkhtmltoimage wkhtmltoimage_path = r"C:\Users\fhjj3\djangoProject1\orders\wkhtmltopdf\bin\wkhtmltoimage.exe" # Команда для преобразования HTML в изображение command = [wkhtmltoimage_path, temp_html, output_path] # Выполнение команды subprocess.call(command) # Удаление временного файла os.remove(temp_html) def send_invoice_via_email(email_to, order): # Генерация HTML для чека order_items = order.items.all() context = {'order': order, 'order_items': order_items} html_content = render_to_string('orders/order/pdf.html', context) # Путь, где будет сохранено изображение чека image_path = "invoice_image.png" # Создание изображения из HTML generate_invoice_image(html_content, image_path) # Создание и отправка письма email = EmailMessage( subject=f'Ваш заказ №{order.id}', body="Детали вашего заказа во вложении. Для оплаты используйте ссылку: [ссылка на оплату]", from_email='from@example.com', to=[email_to] ) # Прикрепление изображения к письму email.attach_file(image_path) # Отправка email.send()