Добавить прямоугольные фигуры в PDF на Python

Добавление объект Rectangle

Aspose.PDF for Python via .NET позволяет добавлять Rectangle формы в страницы PDF через Graph класс. Вы можете рисовать обводные прямоугольники и применять сплошные, градиентные или прозрачные заполнения.

Следуйте инструкциям ниже:

  1. Создайте новый PDF Document.
  2. Добавьте Page в коллекцию страниц PDF‑файла.
  3. Добавьте TextFragment в коллекцию абзацев экземпляра страницы.
  4. Создайте Graph экземпляр.
  5. Установите границу для Объект Graph.
  6. Добавьте Rectangle объект в коллекцию фигур объекта Graph.
  7. Добавьте объект графика в коллекцию абзацев экземпляра страницы.
  8. Добавьте TextFragment в коллекцию абзацев экземпляра страницы.
  9. И сохраните ваш PDF‑файл
import aspose.pdf as ap
import aspose.pdf.drawing as drawing

def add_rectangle(outfile: str):
    document = ap.Document()
    page = document.pages.add()
    text_fragment = ap.text.TextFragment("Rectangle")
    page.paragraphs.add(text_fragment)

    graph = drawing.Graph(400, 300)
    page.paragraphs.add(graph)
    graph.border = ap.BorderInfo(ap.BorderSide.ALL, ap.Color.red)

    rect = drawing.Rectangle(20, 20, 350, 250)
    graph.shapes.add(rect)
    page.paragraphs.add(text_fragment)

    document.save(outfile)

Создать прямоугольник

Создание объект заполненного прямоугольника

Aspose.PDF for Python via .NET также предлагает возможность заполнять объект прямоугольника определённым цветом.

Следующий фрагмент кода показывает, как добавить Rectangle объект, заполненный цветом.

import aspose.pdf as ap
import aspose.pdf.drawing as drawing

def create_rectangle_filled(outfile: str):
    document = ap.Document()
    page = document.pages.add()
    graph = drawing.Graph(100, 400)
    page.paragraphs.add(graph)

    rect = drawing.Rectangle(100, 100, 200, 120)
    rect.graph_info.fill_color = ap.Color.red
    graph.shapes.add(rect)

    document.save(outfile)

Результат прямоугольника, залитого сплошным цветом:

Заполненный прямоугольник

Добавление рисунок с градиентной заливкой

Aspose.PDF for Python via .NET поддерживает возможность добавлять графические объекты в PDF‑документы, и иногда требуется заполнять графические объекты градиентным цветом.

Следующий фрагмент кода показывает, как добавить Rectangle объект, заполненный градиентным цветом.

import aspose.pdf as ap
import aspose.pdf.drawing as drawing

def add_drawing_with_gradient_fill(outfile: str):
    document = ap.Document()
    page = document.pages.add()
    graph = drawing.Graph(400, 400)
    page.paragraphs.add(graph)

    rect = drawing.Rectangle(0, 0, 300, 300)
    gradient_color = ap.Color()
    gradient_settings = drawing.GradientAxialShading(ap.Color.red, ap.Color.blue)
    gradient_settings.start = ap.Point(0, 0)
    gradient_settings.end = ap.Point(350, 350)
    gradient_color.pattern_color_space = gradient_settings
    rect.graph_info.fill_color = gradient_color
    graph.shapes.add(rect)

    document.save(outfile)

Градиентный прямоугольник

Создание прямоугольник с альфа‑каналом цвета

Aspose.PDF for Python via .NET также поддерживает прозрачность через альфа‑канал цвета.

Следующий фрагмент кода показывает, как добавить Rectangle объект с альфа‑значениями.

import aspose.pdf as ap
import aspose.pdf.drawing as drawing

def create_rectangle_with_alpha_color_channel(outfile: str):
    document = ap.Document()
    page = document.pages.add()
    graph = drawing.Graph(100, 400)
    page.paragraphs.add(graph)

    rect = drawing.Rectangle(100, 100, 200, 120)
    rect.graph_info.fill_color = ap.Color.from_argb(128, 244, 180, 0)
    graph.shapes.add(rect)

    rect1 = drawing.Rectangle(200, 150, 200, 100)
    rect1.graph_info.fill_color = ap.Color.from_argb(160, 120, 0, 120)
    graph.shapes.add(rect1)

    document.save(outfile)

Цвет альфа-канала прямоугольника

Управление Z-Order фигур

Aspose.PDF for .NET поддерживает функцию добавления графических объектов (например граф, линия, прямоугольник и т.д.) в PDF‑документы. При добавлении более одного экземпляра одного и того же объекта в PDF‑файл мы можем управлять их отрисовкой, указывая Z-Order. Z-Order также используется, когда необходимо отрисовывать объекты друг над другом.

Следующий фрагмент кода показывает шаги рендеринга Rectangle объекты один над другим.

import aspose.pdf as ap
import aspose.pdf.drawing as drawing


def _add_rectangle_to_page(
    page: ap.Page,
    x: float,
    y: float,
    width: float,
    height: float,
    color: ap.Color,
    zindex: int,
):
    graph = drawing.Graph(width, height)
    graph.is_change_position = False
    graph.left = x
    graph.top = y
    rect = drawing.Rectangle(0, 0, width, height)
    rect.graph_info.fill_color = color
    rect.graph_info.color = color
    graph.shapes.add(rect)
    graph.z_index = zindex
    page.paragraphs.add(graph)


def control_z_order_of_rectangle(outfile: str):
    document = ap.Document()
    page = document.pages.add()
    page.set_page_size(375, 300)
    page.page_info.margin.left = 0
    page.page_info.margin.top = 0

    _add_rectangle_to_page(page, 50, 40, 60, 40, ap.Color.red, 2)
    _add_rectangle_to_page(page, 20, 20, 30, 30, ap.Color.blue, 1)
    _add_rectangle_to_page(page, 40, 40, 60, 30, ap.Color.green, 0)

    document.save(outfile)

Управление порядком Z

Связанные темы графа