Интегрировать таблицу с источниками данных PDF

Создать PDF из DataFrame

Функция ‘create_pdf_from_dataframe’ принимает DataFrame и преобразует его в таблицу внутри нового PDF. Она создаёт новый PDF‑документ, добавляет страницу, генерирует таблицу из DataFrame (используя вспомогательный метод) и сохраняет результат по указанному пути к файлу. И это не только возможно, но и очень просто.

Используйте эту страницу, когда вам нужно создавать таблицы PDF из данных приложения, структурированных наборов данных или конвейеров отчётов в Python.

  1. Инициализирует пустой PDF‑документ с помощью ‘ap.Document()’.
  2. Функция ‘self.create_table_from_dataframe(df, max_rows)’ преобразует DataFrame в объект таблицы Aspose.PDF.
  3. Вставьте таблицу на страницу PDF. Добавляет сгенерированную таблицу в содержимое первой страницы (page.paragraphs.add(table)).
  4. Сохраните PDF‑документ.
from os import path
import sys

import pandas as pd
import aspose.pdf as ap
from config import set_license, initialize_data_dir

def create_pdf_from_dataframe(
    outfile: str, df: pd.DataFrame, max_rows: int = 20
) -> None:
    # Create new PDF document
    document = ap.Document()
    page = document.pages.add()

    table = create_table_from_dataframe(df, max_rows)

    # Add table object to first page of input document
    page.paragraphs.add(table)
    document.save(outfile)

Создать таблицу из DataFrame

Этот код преобразует DataFrame в объект Table библиотеки Aspose.PDF. Он настраивает границы таблицы, добавляет строку заголовка с именами столбцов и заполняет таблицу первыми max_rows строками из DataFrame. Полученная Table затем можно добавить в PDF‑документ.

  1. Создаёт пустой объект ‘ap.Table()’.
  2. Установите границу таблицы.
  3. Установите границу ячейки по умолчанию.
  4. Добавьте строку заголовка.
  5. Добавьте строки данных.
  6. Вернуть таблицу.
from os import path
import sys

import pandas as pd
import aspose.pdf as ap
from config import set_license, initialize_data_dir

def create_table_from_dataframe(df: pd.DataFrame, max_rows: int = 20) -> ap.Table:
    """Create an Aspose.PDF table from a pandas DataFrame."""
    # Initializes a new instance of the Table
    table = ap.Table()
    # Set the table border color as LightGray
    table.border = ap.BorderInfo(ap.BorderSide.ALL, 1, ap.Color.light_gray)
    # Set the border for table cells
    table.default_cell_border = ap.BorderInfo(
        ap.BorderSide.BOTTOM, 1, ap.Color.light_gray
    )

    # Add header row with column names
    header_row = table.rows.add()
    header_row.is_row_broken = False  # Prevent header row from being split across pages
    for column_name in df.columns:
        cell = header_row.cells.add(str(column_name))
        cell.background_color = ap.Color.light_gray

    # Add data rows
    for row_data in df.head(max_rows).itertuples(index=False):
        row = table.rows.add()
        for value in row_data:
            row.cells.add(str(value))

    return table

Связанные темы таблицы