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