Добавить изображение в PDF с помощью Python
Contents
[
Hide
]
Добавление изображения в существующий PDF‑файл
Этот пример показывает, как разместить изображение в фиксированной позиции на существующей странице PDF с использованием Aspose.PDF for Python via .NET.
Используйте эти примеры с этой страницы, когда необходимо разместить логотипы, фотографии или другую графику с фиксированными координатами внутри существующей компоновки PDF.
- Загрузите существующий PDF с
ap.Document(infile). - Выберите целевую страницу (
document.pages[1]для первой страницы). - Вызов
page.add_image()с:- Путь к файлу изображения.
- А
Rectangleопределение координат размещения.
- Сохраните обновлённый PDF.
import aspose.pdf as ap
def add_image(infile, image_file, outfile):
document = ap.Document(infile)
page = document.pages[1]
page.add_image(image_file, ap.Rectangle(20, 730, 120, 830, True))
document.save(outfile)
Добавление изображения с помощью операторов
Этот подход добавляет изображение с помощью низкоуровневых операторов PDF вместо высокоуровневых add_image() помощник.
- Создайте новый
Documentи добавьте страницу. - Добавьте изображение в ресурсы страницы (
page.resources.images). - Создайте операторы преобразования (
GSave,ConcatenateMatrix,Do,GRestore). - Добавьте операторы в содержимое страницы.
- Сохраните полученный PDF.
import aspose.pdf as ap
from io import FileIO
def add_image_using_operators(image_file, outfile):
document = ap.Document()
page = document.pages.add()
page.set_page_size(842, 595)
resources_images = page.resources.images
with FileIO(image_file, "rb") as image_stream:
image_id = resources_images.add(image_stream)
rectangle = ap.Rectangle(0, 0, page.media_box.width, page.media_box.height, True)
operators = [
ap.operators.GSave(),
ap.operators.ConcatenateMatrix(
ap.Matrix(
rectangle.urx - rectangle.llx,
0,
0,
rectangle.ury - rectangle.lly,
rectangle.llx,
rectangle.lly,
)
),
ap.operators.Do(image_id),
ap.operators.GRestore(),
]
page.contents.add(operators)
document.save(outfile)
Добавление изображения с альтернативным текстом
В этом примере добавляется изображение и назначается альтернативный текст для доступности.
- Создайте новый
Documentи добавьте страницу. - Добавьте изображение на страницу с
page.add_image(). - Получите ресурсы изображений из
page.resources.images. - Установите альтернативный текст с помощью
try_set_alternative_text(). - Сохраните полученный PDF.
import aspose.pdf as ap
def add_image_set_alternative_text(image_file, outfile):
document = ap.Document()
page = document.pages.add()
page.set_page_size(842, 595)
page.add_image(image_file, ap.Rectangle(0, 0, 842, 595, True))
resources_images = page.resources.images
x_image = resources_images[1]
result = x_image.try_set_alternative_text("Alternative text for image", page)
if result:
print("Alternative text has been added successfully")
document.save(outfile)
Добавление изображения в PDF с использованием сжатия Flate
Этот пример вставляет изображение с помощью ImageFilterType.FLATE сжатие.
- Создайте новый
Documentи добавьте страницу. - Добавьте изображение в ресурсы страницы с сжатием Flate.
- Используйте матричные операторы для размещения и отрисовки изображения.
- Сохраните документ.
import aspose.pdf as ap
from io import FileIO
def add_image_to_pdf_with_flate_compression(image_file, outfile):
document = ap.Document()
page = document.pages.add()
resources_images = page.resources.images
with FileIO(image_file, "rb") as image_stream:
image_id = resources_images.add(image_stream, ap.ImageFilterType.FLATE)
rectangle = ap.Rectangle(0, 0, 600, 600, True)
matrix = ap.Matrix(
rectangle.urx - rectangle.llx,
0,
0,
rectangle.ury - rectangle.lly,
rectangle.llx,
rectangle.lly,
)
page.contents.add([ap.operators.GSave()])
page.contents.add([ap.operators.ConcatenateMatrix(matrix)])
page.contents.add([ap.operators.Do(image_id)])
page.contents.add([ap.operators.GRestore()])
document.save(outfile)