Здесь есть два варианта: напечатать html-страницу или предоставить файл PDF.
Примечание. Изначально не было ясно, что распечатки должны выполняться автоматически, а это означает, что ответ не является непосредственно полезным для OP.
HTML + "Print Me"
Показать квитанцию в виде html-страницы, затем создайте таблицу стилей media="print"
CSS, которую браузер будет использовать при печати квитанции. можно многое сказать о таблицах стилей печати CSS , но важно то, что вы должны удалить все навигационные элементы и изображения, которые будут дорогими для печати.
Когда вы сделаете это,пользователь просто должен будет распечатать страницу сам.Вы также можете добавить кнопку «Распечатать меня», которая покажет вашему пользователю диалоговое окно принтера.Это делается с помощью JavaScript:
<a href="javascript:window.print()">Print this page</a>
(Это немного навязчиво для ваших клиентов, у которых нет JS, проверьте этот урок о печати JS для лучшего способа.)
PDF
Создайте PDF в Django и покажите его пользователю.Он сможет распечатать его или сохранить на своем компьютере позже.Большинство веб-сайтов делают это, так как намного проще контролировать макет PDF-файла, и будет проще сделать его похожим на настоящую квитанцию.
- XSL-FO может помочь вам в этом (он переводит XML в PDF с «таблицей стилей»).
- Кажется, более Pythonic способобъяснено в Django docs
- На приведенных выше страницах перечислены альтернативы, такие как xhtml2pdf (Пиза), который, похоже, часто используется в StackOverflow