Интегрировать таблицу с источниками данных PDF
Contents
[
Hide
]
Создать PDF из DataFrame
Функция ‘create_pdf_from_dataframe’ принимает DataFrame и преобразует его в таблицу внутри нового PDF. Она создаёт новый PDF‑документ, добавляет страницу, генерирует таблицу из DataFrame (используя вспомогательный метод) и сохраняет результат по указанному пути к файлу. И это не только возможно, но и очень просто.
Используйте эту страницу, когда вам нужно создавать таблицы PDF из данных приложения, структурированных наборов данных или конвейеров отчётов в Python.
- Инициализирует пустой PDF‑документ с помощью ‘ap.Document()’.
- Функция ‘self.create_table_from_dataframe(df, max_rows)’ преобразует DataFrame в объект таблицы Aspose.PDF.
- Вставьте таблицу на страницу PDF. Добавляет сгенерированную таблицу в содержимое первой страницы (page.paragraphs.add(table)).
- Сохраните 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‑документ.
- Создаёт пустой объект ‘ap.Table()’.
- Установите границу таблицы.
- Установите границу ячейки по умолчанию.
- Добавьте строку заголовка.
- Добавьте строки данных.
- Вернуть таблицу.
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