Как распечатать PDF-файл шириной 58 мм с динамической высотой на термопринтере шириной 58 мм

Я создал PDF-файл для приложения для выставления счетов, используя библиотеку reportlab Python. Он создает PDF-файл шириной 58 мм с динамической высотой по мере изменения содержимого. Когда я пытаюсь просмотреть PDF-файл, он показывает мне соответствующий размер. дополнительные пробелы не отображаются. Но когда я пытаюсь распечатать его на термопринтере шириной 58 мм, я не могу распечатать его в соответствии с размером PDF-файла. Это создает больше пробелов, что приводит к значительному расходу термобумаги. Когда я проверил свойства принтера, он показывает размер бумаги только 58 x 210, 58 x 297 и 58 x 3276. Могу ли я распечатать этот PDF-файл, не тратя больше бумаги, поскольку он требует динамической высоты? Есть ли что-то, что я упускаю?

Я пробовал печатать, но он занимает больше места и не получает динамической высоты. Я пробовал портрет и пейзажи, а также размер по размеру, масштаб и т. д., но безрезультатно.

Вместо того, чтобы просто запрашивать печать PDF-файла, почему бы не попробовать сначала создать данные изображения из PDF-файла, а затем запросить печать этих данных изображения?

kunif 04.07.2024 01:13
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
Включение UTF-8 в jsPDF с помощью Angular
Включение UTF-8 в jsPDF с помощью Angular
Привет, разработчики, я предполагаю, что вы уже знаете, как экспортировать pdf через jsPDF. Если ответ отрицательный, то вы можете ознакомиться с моей...
0
1
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я получал некоторый список продуктов из базы данных, а затем находил, какую высоту он будет занимать для данных о продуктах (включая название продукта, цену, количество, количество, а также номер SL впереди). Верхний и нижний колонтитулы я уже сделал, и они будут статичными, поэтому у меня будет с собой высота их обоих. Итак, теперь общая высота PDF-файла будет -> Заголовок (статический) + Данные о продукте (динамический) + Нижний колонтитул (статический). Итак, если общая высота позволяет, скажем, 60 мм для отображения всех трех вещей, то выходной PDF-файл, который я создаю, будет иметь размер 58 x 60 мм.


Но проблема заключалась в том, что когда я пытался распечатать его, на экране печати (на котором показаны все параметры, такие как принтер, книжная или альбомная ориентация, масштаб, страницы), на котором были заданы настройки страницы моего принтера, как я уже упоминал выше, 58 x 210, 58 x 297 и 58. x 3276 мм. Над и под содержимым отображается много пробелов. Я попытался распечатать его, но сверху появилось много пробелов, но не снизу. Итак, я немного поискал и обнаружил, что даже если под содержимым много пробелов, принтер будет печатать только до содержимого + нижнего поля, поэтому он не будет печатать 210, 270 или 3276 мм, а только до содержимого и нижнего поля. .


После всех этих исследований я, наконец, создал PDF-файл в reportlab Python, установив страницу как c.setPageSize((58.00, 270)). Таким образом, на выходе будет PDF-файл высотой 270 мм с содержимым, начинающимся сверху, и большим количеством пробелов до конца (без пробелов над содержимым). Когда я печатаю его, он печатается только до содержимого + нижнего поля. Он не занял всю высоту. Итак, ребята, принтер остановится, когда достигнет высоты содержимого + нижнего поля, а не полной высоты PDF-файла. (Это на термопринтере)


Это был мой первый вопрос о переполнении стека, и я сам ответил на свой вопрос :), и я получил к нему 2 комментария, так что я благодарю и людей, и ребят, счастливого кодирования :)


Другие вопросы по теме