Как конвертировать PDF в TIFF и TIFF в PDF с помощью Python

PDF (Portable Document Format) и TIFF (Tagged Image File Format) — два наиболее распространенных формата файлов для цифровых документов и изображений. Иногда может потребоваться конвертация между этими форматами, например при подготовке файлов для печати, архивирования или совместного использования в различных программных приложениях.
В этой статье показано, как конвертировать PDF в TIFF и TIFF в PDF с помощью библиотеки Python PDF.
- Преобразование PDF в TIFF в Python
- Преобразование TIFF в PDF в Python
Установите необходимые библиотеки
Этот процесс конвертации может быть осуществлен при совместном использовании библиотеки Spire.PDF для Python и библиотеки Pillow (PIL). Spire.PDF позволяет читать, создавать и конвертировать PDF-документы, а библиотека PIL предоставляет необходимую функциональность для работы с файлами TIFF и доступа к их отдельным кадрам.
Обе библиотеки можно легко установить на ваше устройство с помощью следующей команды pip:
pip install Spire.PDF
pip install pillow
Преобразование PDF в TIFF в Python
Следующий код сниппета загружает PDF-файл и преобразует каждую страницу в отдельные файлы изображений. Затем эти файлы изображений объединяются в файл изображения TIFF.
from spire.doc import *
from spire.doc.common import *
from PIL import Image
from io import BytesIO
# Create a Document object
doc = Document()
# Load a Word document
doc.LoadFromFile("C:\Users\Administrator\Desktop\Input.docx")
# Create an empty list to store PIL Images
images = []
# Iterate through pages in the document
for i in range(doc.GetPageCount()):
# Convert a specific page to image stream
with doc.SaveImageToStreams(i, ImageType.Bitmap) as imageData:
# Open a specific image stream as a PIL image
img = Image.open(BytesIO(imageData.ToArray()))
# Append the PIL image to list
images.append(img)
# Save the PIL Images as a multi-page TIFF file
images[0].save("Output/ToTIFF.tiff", save_all=True, append_images=images[1:])
# Dispose resources
doc.Dispose()
Преобразование TIFF в PDF в Python
Следующий код сниппета загружает TIFF и переносит каждый кадр в один PNG-файл. Затем с помощью Spire.PDF создается PDF-документ, и эти файлы изображений добавляются в PDF-документ как отдельные страницы.
from spire.pdf.common import *
from spire.pdf import *
from PIL import Image
import io
# Create a PdfDocument object
doc = PdfDocument()
# Set the page margins to 0
doc.PageSettings.SetMargins(0.0)
# Load a TIFF image
tiff_image = Image.open("C:\Users\Administrator\Desktop\TIFF.tiff")
# Iterate through the frames in it
for i in range(tiff_image.n_frames):
# Go to the current frame
tiff_image.seek(i)
# Extract the image of the current frame
frame_image = tiff_image.copy()
# Save the image to a PNG file
frame_image.save(f"temp/output_frame_{i}.png")
# Load the image file to PdfImage
image = PdfImage.FromFile(f"temp/output_frame_{i}.png")
# Get image width and height
width = image.PhysicalDimension.Width
height = image.PhysicalDimension.Height
# Add a page to the document
page = doc.Pages.Add(SizeF(width, height))
# Draw image at (0, 0) of the page
page.Canvas.DrawImage(image, 0.0, 0.0, width, height)
# Save the document to a PDF file
doc.SaveToFile("Output/TiffToPdf.pdf",FileFormat.PDF)
# Dispose resources
doc.Dispose()
Выводы
В этой статье мы узнали, как конвертировать PDF в TIFF и TIFF в PDF. Будучи продвинутой библиотекой Python, Spire.PDF for Python позволяет разработчикам выполнять широкий спектр операций с PDF-документами, таких как:
Преобразование изображений в PDF с помощью Python