Рубрики
Без рубрики

ReportLab: Как создать ландшафтные страницы

Узнайте, как использовать Python и ReportLab, чтобы создать PDF в ландшафтном режиме, а также повернуть страницы назад к портрету

Автор оригинала: Mike Driscoll.

На днях у меня была интересная задача, которую мне нужно было в комплекте с ReportLab. Мне нужно было создать PDF в ландшафтной ориентации, которая должна была быть повернута на 90 градусов, когда я его спас. Чтобы облегчить выложить документ, я создал класс с флагом, который позволяет мне сохранить его в ландшафтной ориентации или перевернуть его в портрет. В этой статье мы посмотрим на мой код, чтобы увидеть, что нужно. Если вы хотите следовать, я бы порекомендовал загрузить копию ReportLab и pypdf (или pypdf2 ).

Ориентация страницы ReportLab

Есть как минимум два способа сообщить REPORTLAB для использования ландшафтной ориентации. Первый – это удобная функция называется Ландшафт что вы можете импортировать из ReportLab.lib.pageies Отказ Вы бы использовали это так:

Другой способ установить пейзаж просто установить размер страницы прямо:

Вы могли бы сделать это более универсальным, делая что-то подобное, хотя:

Это может иметь больше смысла, особенно если вы хотите использовать другие популярные размеры страниц, такие как A4. Теперь давайте найдя момент и посмотрим на полноценный пример:

Если вы запускаете код выше (и у вас есть логотип для использования), вы увидите что-то очень похожее на скриншот в начале статьи. Это облегчает пропустить документ, потому что текст и изображения горизонтальные. Давайте проведем несколько минут, разбирающихся код. В init Мы настроили несколько элементов, такие как логотип, имя файла PDF, следует ли вращать или нет и несколько других элементов. координат Метод – это то, что я нашел на Stackoverflow, который помогает более проще. create_pdf Метод – это большая часть магии. Это называет Ландшафт Функция, которую мы импортировали. Эта функция также рисует логотип, прямоугольник и слова на документе.

Следующий метод – это Сохранить метод. Если мы не сделаем вращение, мы создаем SimpleDoCteMplate, пропустите его имя файла PDF и построить документ. С другой стороны, если мы включаем вращение, то мы создаем файловый объект, используя библиотеку Stringio Python, чтобы мы могли манипулировать PDF в памяти. В основном мы пишем данные в память, то мы стремимся к началу файла FAUX, чтобы мы могли прочитать его с помощью pypdf. Далее мы создаем объект писателя PYPDF. Наконец, мы проходим через PDF, который на странице памяти по странице и поверните каждую страницу, прежде чем написать ее.

Последний способ – это просто удобный метод, который мне дали от группы WXPYPHON, которую я использую для масштабирования изображений. Большое время вы найдете себя с изображениями, которые слишком велики для ваших целей, и вам нужно будет масштабировать их, чтобы соответствовать. Это все этот метод.

Как только у вас есть все, где вы хотите, вы можете изменить код в конце следующего:

Это заставит скрипт сделать вращение, а выход должен выглядеть что-то подобное:

Упаковка

Создание и редактирование PDFS в ландшафтной ориентации на самом деле довольно легко сделать в Python и ReportLab. На данный момент вы должны быть в состоянии сделать это с APLOMB! Удачи и счастливые кодировки!

Статьи по теме

  • ReportLab – О пользователе fonts
  • Простой пошаговый учебник ReportLab
  • ReportLab: Как добавить номера страниц
  • Столы REPORTLAB – Создание таблиц в PDFS с Python
  • ReportLab: Смешивание фиксированного контента и стопов