Разделение, объединение и поворот PDF-документов на Python с помощью borb / Хабр
Введение
Формат переносимых документов (PDF) не является форматом WYSIWYG (What You See is What You Get (То, Что Вы Видите, это То, Что Вы Получаете)). Он был разработан, чтобы быть независимым от платформы, независимым от базовой операционной системы и механизмов рендеринга.
Для достижения этой цели PDF был создан для взаимодействия с помощью чего-то более похожего на язык программирования, и для достижения результата полагается ряд инструкций и операций. Фактически, PDF основан на языке сценариев — PostScript, который был первым независимым от устройства языком описания страниц.
В этом руководстве мы будем использовать borb — библиотеку Python, предназначенную для чтения, манипулирования и генерации PDF-документов. Он предлагает как низкоуровневую модель (что позволяет получить доступ к точным координатам и макету), так и высокоуровневую модель (где вы можете делегировать точные расчеты полей, позиций и т. д.).
В этом руководстве мы рассмотрим, как разделить и объединить PDF-документы на Python с помощью borb, а также рассмотрим, как поворачивать страницы в PDF-документе.
Разделение и объединение PDF-документов являются основой для многих сценариев использования:
Обработка счета-фактуры (вам не нужны условия, чтобы вы могли удалить эти страницы)
Добавление сопроводительного письма к документам (отчет об испытаниях, счет-фактура, рекламные материалы)
Агрегирование тестовых результатов из гетерогенных источников
И т.д.
Установка borb
Borb можно загрузить из исходного кода на GitHub или установить через pip:
$ pip install borb
Разделение PDF с помощью borb
Чтобы продемонстрировать разделение, вам понадобится PDF-файл с несколькими страницами.
Мы начнем с создания такого PDF-файла с помощью borb. Этот шаг не является обязательным, вы, конечно, можете просто использовать PDF-файл, который у вас есть вместо этого:
from borb. pdf.canvas.color.color import HexColor from borb.pdf.canvas.layout.page_layout.multi_column_layout import SingleColumnLayout from borb.pdf.canvas.layout.page_layout.page_layout import PageLayout from borb.pdf.canvas.layout.text.paragraph import Paragraph from borb.pdf.document import Document from borb.pdf.page.page import Page from borb.pdf.pdf import PDF from decimal import Decimal def create_document(heading_color: HexColor = HexColor("0b3954"), text_color: HexColor = HexColor("de6449"), file_name: str = "output.pdf"): d: Document = Document() N: int = 10 for i in range(0, N): # Создайте новую страницу и добавьте ее в документ p: Page = Page() d.append_page(p) # Установите отображение страницы на новой странице l: PageLayout = SingleColumnLayout(p) # Добавьте абзац, чтобы идентифицировать страницу l.add(Paragraph("Page %d of %d" % (i+1, N), font_color=heading_color, font_size=Decimal(24))) # Добавьте абзац фиктивного текста l.add(Paragraph(""" Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. """, font_color=text_color)) # Сохраните документ на диске with open(file_name, "wb") as pdf_out_handle: PDF.dumps(pdf_out_handle, d)
Этот пример кода генерирует PDF-документ, состоящий из 10 страниц:
Разделение PDF-документов на Python
Теперь давайте разделим данный PDF.
def split_half_half(): # Читать PDF with open("output.pdf", "rb") as pdf_file_handle: input_pdf = PDF.loads(pdf_file_handle) # Создайте два пустых PDF-файла для хранения каждой половины разделения output_pdf_001 = Document() output_pdf_002 = Document() # Разделение for i in range(0, 10): if i < 5: output_pdf_001.append_page(input_pdf.get_page(i)) else: output_pdf_002.append_page(input_pdf.get_page(i)) # Написать PDF with open("output_001.pdf", "wb") as pdf_out_handle: PDF.dumps(pdf_out_handle, output_pdf_001) # Написать PDF with open("output_002.pdf", "wb") as pdf_out_handle: PDF.dumps(pdf_out_handle, output_pdf_002)
Мы извлекли первые 5 страниц в новый Document, а следующие 5 страниц во второй новый Document, фактически разделив оригинальную на две меньшие сущности.
Может быть упрощен с помощью метода get_page(), так как его возвращаемый тип может быть непосредственно использован для withappendappend_page().
Вы можете проверить полученные PDF-файлы, чтобы убедиться, что код работает должным образом
Объединение PDF-документов в Python
Для работы со следующими примерами нам понадобятся два PDF-файла. Давайте использовать более ранний код для их генерации, если у вас его еще нет:
create_document(HexColor("247B7B"), HexColor("78CDD7"), "output_001.pdf") create_document(file_name="output_002.pdf")
Интуиция, используемая для разделения, очень похожа на слияние — хотя мы можем добавлять целые документы в другие документы, а не только страницы. Однако иногда вам может потребоваться разделить документ (отрезать последнюю страницу), прежде чем объединять его с другой.
Мы можем объединить их полностью (объединяя оба PDF-файла), но мы также можем просто добавить некоторые страницы первого PDF-файла во второй, если предпочтем это таким образом — используя функцию append_page(), как и раньше.
Давайте начнем с их полного объединения :
def concatenate_two_documents(): # Прочитайте первый PDF-файл with open("output_001. pdf", "rb") as pdf_file_handle: input_pdf_001 = PDF.loads(pdf_file_handle) # Прочитайте второй PDF-файл with open("output_002.pdf", "rb") as pdf_file_handle: input_pdf_002 = PDF.loads(pdf_file_handle) # Создайте новый PDF-файл, объединив два входных файла output_document = Document() output_document.append_document(input_pdf_001) output_document.append_document(input_pdf_002) # Написать PDF with open("output.pdf", "wb") as pdf_out_handle: PDF.dumps(pdf_out_handle, output_document)
Поворот страниц в PDF-документах на Python
Страница в PDF-документе может быть повернута на 90 градусов в любую сторону. Этот вид работы позволяет легко переключаться между альбомным и портретным режимами.
В следующем примере вы сможете повернуть страницу одного из входных PDF-файлов, которые мы создали ранее:
def rotate_first_page(): # Чтение PDF with open("output_001.pdf", "rb") as pdf_file_handle: input_pdf_001 = PDF.loads(pdf_file_handle) # Поворот страницы input_pdf_001. get_page(0).rotate_left() # Запись PDF на диск with open("output.pdf", "wb") as pdf_out_handle: PDF.dumps(pdf_out_handle, input_pdf_001)
Настройка отображения страницы
Настройка отображения страницыВыберите пункты «Вид» > «Предварительный просмотр страницы» > Параметры прокрутки и укажите стиль отображения.
Выберите в раскрывающемся списке один из указанных ниже пунктов.
Отдельная страница
Если выбрать этот пункт, на панели документов будет отображаться одна страница за раз.
Протяженная
Если выбрать этот пункт, будут отображаться страницы одна под другой и полоса прокрутки для перемещения между ними.
Обложка
Если выбрать этот пункт, на панели документов будут отображаться две страницы рядом.
Протяженная обложка
Если выбрать этот пункт, пары страниц будут отображаться одна под другой. В случае документов большего объема первая страница помещается справа, чтобы правильно отображались правые и левые страницы.
Показать титульный лист в режиме обложки
Если задать этот параметр при выбранном варианте Обложка, первая страница документа будет отображена отдельно, а остальные страницы — парами.
Важно. В режиме Отдельная страница команда «Правка» > Выбрать все выделяет весь текст на текущей странице. В режимах Протяженная, Обложка, Протяженная обложка и Сборка документа она выделяет весь текст в PDF-документе.
Элементы управления в строке представления
Строка представления находится внизу и содержит элементы, указанные ниже.
- : Повернуть страницу против часовой стрелки
- : Повернуть страницу по часовой стрелке
- : Перейти к первой, предыдущей, следующей или последней странице
- : Поле для ввода номера страницы, которую нужно отобразить
- : Уменьшить
- : Увеличить
- : Стрелка для выбора одного из стандартных значений масштаба и поле для ввода значения вручную
В строке представления также доступны три самых полезных инструмента просмотра, которые объединяют параметры прокрутки с параметрами размещения.
Инструмент По размеру страницы отображает по одной странице за раз («Отдельная страница»), подгоняя каждую из них под размер панели документов, чтобы все содержимое страницы было видно без прокрутки. При изменении размеров панели документов или при переходе к странице с другими размерами изображение масштабируется соответствующим образом.
Инструмент По ширине отображает страницы одну под другой («Протяженная»), подгоняя ширину всех страниц к панели документов, чтобы содержимое было видно без прокрутки по горизонтали. При изменении размеров панели документов изображение масштабируется соответствующим образом. Степень увеличения определяется по ширине самой широкой страницы в документе.
Инструмент Полный экран отображает каждую страницу в полноэкранном режиме и обычно используется для проведения презентаций. С помощью небольшой панели инструментов справа внизу можно перейти к следующей или предыдущей странице или выйти из полноэкранного режима (для этого также можно нажать клавишу Escape или клавиши CTRL+L).
Сборка документа
Если выбрать инструмент Сборка документа в разделе «Домой» > «Страницы», то на экране появится окно с большим количеством страниц. В этом интерфейсе можно выполнять различные действия с группами страниц, а также перемещать, вставлять, извлекать и копировать страницы, выделенные объекты и тестовые блоки на другие страницы в том же или другом документе. См. раздел Сборка документа. Щелкните этот же инструмент еще раз, чтобы выйти из режима «Сборка документа» и вернуться к последнему режиму просмотра, заданному в разделе «Вид» > «Параметры прокрутки».
При выборе этого инструмента появляются два дополнительных инструмента, указанных ниже.
Перенумеровать страницы: Используйте этот инструмент для обновления автоматической нумерации в колонтитулах в соответствии с изменениями, внесенными в режиме «Сборка документа». Этот инструмент становится активным, только если для текущего PDF-документа включена нумерация страниц в верхнем или нижнем колонтитуле.
Компоновка страницы
С помощью этого инструмента можно просматривать и вставлять страницы из одного или нескольких документов с преобразованием в формат PDF, если это требуется. Выполните указанные ниже действия.
-
Выберите показанный выше инструмент «Компоновка страницы».
-
В диалоговом окне «Открыть» выберите один или несколько файлов. Соответствующие страницы появятся в диалоговом окне «Компоновка страницы» с отдельной вкладкой для каждого выбранного документа.
-
При необходимости воспользуйтесь элементами управления масштабом для изменения размеров страницы.
-
Выберите одну, несколько или все страницы и нажмите кнопку Вставить.
-
Укажите номер страницы, после которого нужно вставить страницы.
-
Повторите процесс для страниц из других документов.
-
Нажмите кнопку Закрыть справа вверху, чтобы закрыть диалоговое окно.
При закрытии представления «Сборка документа» два дополнительных инструмента также исчезнут.
Как перевернуть PDF-файлы двумя способами
Маргарет Котти
13.04.2023, 17:06:35 • Подано по адресу: Упорядочить PDF • Проверенные решения
Иногда PDF-документ, отсканированный в перевернутом виде, имеет неправильную ориентацию. В этом случае лучше всего перевернуть страницы PDF так, чтобы они были в правильной ориентации. Но как вы переворачиваете PDF-файлы в правильное положение? Чтобы сделать это легко и быстро, вам нужен инструмент управления PDF, который имеет необходимые функции, чтобы помочь вам в этом. Здесь мы поделимся с вами лучшим инструментом — Wondershare PDFelement — PDF Editor для работы, а также расскажем, как его использовать.
Попробуйте бесплатно Попробуйте бесплатно КУПИТЬ СЕЙЧАС КУПИТЬ СЕЙЧАС
Способ 1.
Переворачивание файлов PDF по страницам Щелкните правой кнопкой мышиPDFelement — это универсальное программное обеспечение для работы с файлами PDF, с помощью которого можно открывать, читать, создавать, преобразовывать, комментировать, печатать и защищать файлы PDF. Он очень прост в использовании, позволяя переворачивать PDF-файлы двумя способами. Вот один из таких способов:
Шаг 1: Откройте PDF-файл
После того, как вы установили PDFelement на свой компьютер, откройте его, а затем нажмите «Открыть файлы» в главном окне, чтобы выбрать PDF-файл, который вы хотите повернуть.
Шаг 2: Нажмите «Повернуть страницы»
Нажмите на опцию «Миниатюра» слева, чтобы отобразить миниатюры страниц. Щелкните правой кнопкой мыши страницу, которую хотите перевернуть, и выберите параметр «Повернуть страницы».
Шаг 3: перевернуть страницы PDF
В появившемся всплывающем окне выберите направление, в котором вы хотите перевернуть страницы PDF, а затем выберите нужный диапазон страниц. Нажмите «ОК», когда вы закончите, и страницы PDF будут перелистываться в соответствии с вашими предпочтениями.
Попробуйте бесплатно Попробуйте бесплатно КУПИТЬ СЕЙЧАС КУПИТЬ СЕЙЧАС
Способ 2. Переворачивание страниц PDF с помощью меню «Страница»
Вместо того, чтобы использовать описанный выше метод эскизов, вы также можете переворачивать страницы PDF из меню «Страница». Вот как использовать этот метод:
Шаг 1: Перейдите в меню «Страница»
Нажмите кнопку «Страница» в главном меню, и PDFelement отобразит все страницы документа.
Шаг 2. Переверните страницы PDF
Нажмите на страницы, которые вы хотите повернуть, чтобы выбрать их, а затем используйте значки по часовой или против часовой стрелки вверху, чтобы перевернуть страницы PDF в нужную ориентацию.
Попробуйте бесплатно Попробуйте бесплатно КУПИТЬ СЕЙЧАС КУПИТЬ СЕЙЧАС
PDFelement, безусловно, лучший инструмент для перелистывания страниц PDF-документа. Но он может сделать гораздо больше с точки зрения управления PDF. Ниже приведены лишь некоторые из функций, которые делают его идеальным инструментом управления PDF:
- Очень легко редактировать многочисленные аспекты вашего документа PDF, включая текст и изображения. Например, вы можете использовать PDFelement для редактирования текста, изменяя шрифт текста, стиль текста и размер текста по желанию. Вы можете сделать то же самое с изображениями, перемещая и изменяя их размер по желанию.
- Его также можно использовать для объединения нескольких документов PDF в один или даже для разделения большого документа PDF на несколько документов.
- PDFelement также поставляется с очень полезными функциями аннотаций, которые позволяют вам комментировать, добавлять штампы и даже выделять и подчеркивать текст. Это идеально, когда группы совместно работают над одним документом.
- Это также одно из лучших решений для создания PDF-документов; все, что вам нужно сделать, это открыть любой документ в любом формате с помощью PDFelement, и он автоматически преобразуется в PDF.
- Вы также можете использовать его для преобразования PDF-документов в различные другие форматы, включая Word, HTML, PowerPoint, TXT, Excel и многие другие.
- Он поставляется с функцией OCR, которую можно использовать для редактирования отсканированных PDF-файлов.
- Вы также можете использовать одну из многих функций безопасности для защиты документа от несанкционированного доступа. К ним относятся добавление подписи, добавление водяного знака или даже редактирование части текста.
Бесплатная загрузка или Купить PDFelement прямо сейчас!
Бесплатная загрузка или Купить PDFelement прямо сейчас!
Купить PDFelement прямо сейчас!
Купить PDFelement прямо сейчас!
Как переворачивать страницы PDF (100% бесплатно)
Спасибо! Ваша заявка принята!
Ой! Что-то пошло не так при отправке формы.
Спасибо! Ваша заявка принята!
Ой! Что-то пошло не так при отправке формы.
Спасибо! Ваша заявка принята!
Ой! Что-то пошло не так при отправке формы.
Вероятно, вы здесь, потому что:
- У вас есть PDF-документ;
- Страницы перевернуты или отображаются неправильно;
- Вы хотите повернуть их в правильном направлении.
Это распространенная проблема, особенно с загруженными PDF-документами, страницы которых неправильно ориентированы. Теперь мы поможем вам перевернуть страницы PDF.
К концу этой статьи вы:
- Успешно переворачивать страницы документа PDF;
- Сделать это на этой странице, покидать ее не нужно;
- Узнайте, как перевернуть страницу документа PDF на будущее.
Как перевернуть документ PDF бесплатно
- Загрузите файл PDF;
- Наведите курсор на страницы, которые вы хотите повернуть;
- Выберите значок, чтобы перевернуть страницу, пока она не окажется в нужном месте.
Подождите несколько секунд ⏲️.
Наша система сообщит вам о завершении перелистывания страниц вашего PDF-файла. Обычно это занимает менее 10 секунд.
PRO Совет: Нужно удалить страницы PDF? Просто щелкните значок «Корзина» рядом с теми, которые помогают вам перелистывать страницы этого файла. Не забудьте также применить изменения!
Как перевернуть
все страницы в файле PDF (бесплатно)Чтобы перевернуть все страницы в документе PDF, просто загрузите файл, прокрутите страницу вниз и выберите «Повернуть все влево/ правая кнопка.
Ранее мы показали вам, как повернуть только одну страницу PDF и как делать каждую страницу одну за другой.
Теперь приготовьтесь увидеть, как автоматически перевернуть все страницы в файле PDF.
- Загрузить документ;
- Выберите «Повернуть все влево» или «Повернуть все вправо».
- Нажмите «Применить изменения».
Подождите несколько секунд ⏲️.