Tambahkan Tabel ke PDF dengan Python

Menambahkan tabel ke dokumen PDF yang ada adalah kebutuhan umum untuk presentasi data, konten terstruktur, dan pelaporan. Aspose.PDF for Python via .NET menyediakan API praktis untuk menyisipkan dan memformat tabel dalam PDF yang ada.

Panduan ini menyediakan contoh langkah-demi-langkah untuk pembuatan tabel, penyesuaian lebar kolom, border, baris dan sel, serta penyimpanan dokumen yang telah dimodifikasi. Panduan ini juga mencakup opsi lanjutan seperti border sel, margin, padding, dan pengaturan AutoFit untuk penyesuaian ukuran tabel secara dinamis.

Gunakan halaman ini ketika Anda perlu menambahkan tabel baru ke PDF yang ada dan mengontrol perilaku tata letak mereka di Python.

Membuat Tabel Dasar

Membuat Tabel

Contoh ini menunjukkan cara membuat Table dalam dokumen PDF dengan batas dan beberapa baris.

  1. Buat dokumen PDF baru.
  2. Menambahkan halaman kosong ke dokumen.
  3. Inisialisasi Tabel.
  4. Setel batas tabel secara keseluruhan.
  5. Atur batas untuk sel individu.
  6. Tambah Baris dan Sel.
  7. Masukkan tabel ke dalam halaman.
  8. Simpan PDF ke jalur yang ditentukan.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def create_table(outfile: str) -> None:
    # Create new PDF document
    document = ap.Document()
    page = document.pages.add()
    # Initializes a new instance of the Table
    table = ap.Table()
    # Set the table border color as LightGray
    table.border = ap.BorderInfo(ap.BorderSide.ALL, 5, ap.Color.light_gray)
    # Set the border for table cells
    table.default_cell_border = ap.BorderInfo(ap.BorderSide.ALL, 5, ap.Color.light_gray)
    # Create a loop to add 10 rows
    for row_count in range(10):
        # Add row to table
        row = table.rows.add()
        # Add table cells
        row.cells.add("Column (" + str(row_count) + ", 1)")
        row.cells.add("Column (" + str(row_count) + ", 2)")
        row.cells.add("Column (" + str(row_count) + ", 3)")
    # Add table object to first page of input document
    page.paragraphs.add(table)

    # Save updated document containing table object
    document.save(outfile)

Menambahkan Gambar ke Sel Tabel

Potongan kode ini menunjukkan cara memasukkan gambar ke dalam sel Tabel pada dokumen PDF.

  1. Buat dokumen PDF baru.
  2. Inisialisasi Tabel.
  3. Atur lebar kolom dalam poin.
  4. Sebuah fragmen teks ditambahkan ke sel pertama.
  5. Sebuah instance ‘ap.Image()’ ditambahkan ke sel kedua.
  6. Atur jalur ke file gambar dengan ‘img.file’.
  7. ‘img.fix_width’ dan ‘img.fix_height’ mengontrol ukuran gambar di dalam sel.
  8. Sisipkan Tabel ke dalam halaman PDF.
  9. Simpan PDF.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def add_image(image: str, outfile: str) -> None:
    # Instantiate Document object
    document = ap.Document()
    page = document.pages.add()
    # Instantiate a table object
    table = ap.Table()
    # Set width for table cells
    table.column_widths = "200 100"

    # Create row object and add it to table instance
    row = table.rows.add()
    # Create cell object and add it to row instance
    cell = row.cells.add()
    # Add textfragment to paragraphs collection of cell object
    cell.paragraphs.add(ap.text.TextFragment(image))
    # Create an image instance
    img = ap.Image()
    # Set image type as SVG
    # Path for source file
    img.file = image
    # Set width for image instance
    img.fix_width = 50
    # Set height for image instance
    img.fix_height = 50
    # Add another cell to row object
    cell = row.cells.add()
    # Add SVG image to paragraphs collection of recently added cell instance
    cell.paragraphs.add(img)

    # Add table to paragraphs collection of page object
    page.paragraphs.add(table)
    # Save PDF file
    document.save(outfile)

Anda dapat menambahkan gambar SVG ke dalam sel tabel dalam dokumen PDF:

import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def add_svg_image(images: list[str], outfile: str) -> None:
    # Instantiate Document object
    document = ap.Document()
    page = document.pages.add()
    # Instantiate a table object
    table = ap.Table()
    # Set width for table cells
    table.column_widths = "200 100"
    for image in images:
        # Create row object and add it to table instance
        row = table.rows.add()
        # Create cell object and add it to row instance
        cell = row.cells.add()
        # Add textfragment to paragraphs collection of cell object
        cell.paragraphs.add(ap.text.TextFragment(image))
        # Create an image instance
        img = ap.Image()
        # Set image type as SVG
        img.file_type = ap.ImageFileType.SVG
        # Path for source file
        img.file = image
        # Set width for image instance
        img.fix_width = 50
        # Set height for image instance
        img.fix_height = 50
        # Add another cell to row object
        cell = row.cells.add()
        # Add SVG image to paragraphs collection of recently added cell instance
        cell.paragraphs.add(img)

    # Add table to paragraphs collection of page object
    page.paragraphs.add(table)
    # Save PDF file
    document.save(outfile)

ColSpan dan RowSpan dalam Tabel

Contoh ini menunjukkan cara menggabungkan sel tabel secara vertikal dan horizontal untuk membuat tata letak tabel yang kompleks.

  1. Setel batas tabel secara keseluruhan.
  2. Atur batas sel default.
  3. Gabungkan dua sel secara horizontal menjadi satu.
  4. Gabungkan sel secara vertikal melintasi dua baris.
  5. Baris 5 memperhitungkan rowspan dengan melewatkan kolom yang digabung.
  6. Masukkan tabel ke dalam halaman.
  7. Simpan PDF.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def add_rowspan_or_colspan(outfile: str) -> None:
    # Create new PDF document
    document = ap.Document()
    page = document.pages.add()

    # Initializes a new instance of the Table
    table = ap.Table()
    # Set the table border color as LightGray
    table.border = ap.BorderInfo(ap.BorderSide.ALL, 0.5, ap.Color.black)
    # Set the border for table cells
    table.default_cell_border = ap.BorderInfo(ap.BorderSide.ALL, 0.5, ap.Color.black)
    # Add 1st row to table
    row1 = table.rows.add()
    for cell_count in range(1, 5):
        # Add table cells
        row1.cells.add("Test 1" + str(cell_count))

    # Add 2nd row to table
    row2 = table.rows.add()
    row2.cells.add("Test 2 1")
    cell = row2.cells.add("Test 2 2")
    cell.col_span = 2
    row2.cells.add("Test 2 4")

    # Add 3rd row to table
    row3 = table.rows.add()
    row3.cells.add("Test 3 1")
    row3.cells.add("Test 3 2")
    row3.cells.add("Test 3 3")
    row3.cells.add("Test 3 4")

    # Add 4th row to table
    row4 = table.rows.add()
    row4.cells.add("Test 4 1")
    cell = row4.cells.add("Test 4 2")
    cell.row_span = 2
    row4.cells.add("Test 4 3")
    row4.cells.add("Test 4 4")

    # Add 5th row to table
    row5 = table.rows.add()
    row5.cells.add("Test 5 1")
    row5.cells.add("Test 5 3")
    row5.cells.add("Test 5 4")

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

Demo ColSpan dan RowSpan

Menerapkan Garis Batas pada Tabel dan Sel

Contoh ini menunjukkan cara mengatur padding sel, margin tabel, dan mengontrol pembungkus kata untuk teks dalam sel tabel.

  1. Atur lebar kolom.
  2. Tentukan batas tabel dan sel.
  3. Atur padding di dalam sel untuk spasi yang konsisten.
  4. Terapkan padding pada semua sel secara default.
  5. Tambahkan Teks dan Kontrol Pembungkus.
  6. Tambah Baris dan Sel.
  7. Simpan PDF.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def add_borders(outfile: str) -> None:
    # Create new PDF document
    document = ap.Document()
    page = document.pages.add()
    # Instantiate a table object
    tab1 = ap.Table()
    # Add the table in paragraphs collection of the desired section
    page.paragraphs.add(tab1)
    # Set with column widths of the table
    tab1.column_widths = "50 50 50"
    # Set default cell border using BorderInfo object
    tab1.default_cell_border = ap.BorderInfo(ap.BorderSide.ALL, 0.1)
    # Set table border using another customized BorderInfo object
    tab1.border = ap.BorderInfo(ap.BorderSide.ALL, 1)
    # Create MarginInfo object and set its left, bottom, right and top margins
    margin = ap.MarginInfo()
    margin.top = 5
    margin.left = 5
    margin.right = 5
    margin.bottom = 5
    # Set the default cell padding to the MarginInfo object
    tab1.default_cell_padding = margin
    # Create rows in the table and then cells in the rows
    row1 = tab1.rows.add()
    row1.cells.add("col1")
    row1.cells.add("col2")
    row1.cells.add()
    text = ap.text.TextFragment("col3 with large text string")
    row1.cells[2].paragraphs.add(text)
    row1.cells[2].is_word_wrapped = False
    row2 = tab1.rows.add()
    row2.cells.add("item1")
    row2.cells.add("item2")
    row2.cells.add("item3")
    # Save updated document containing table object
    document.save(outfile)

Margin dan Border dalam Tabel PDF

Tata Letak Tabel dan Pengukuran

Menyesuaikan otomatis kolom dan baris

Cuplikan kode ini menunjukkan cara menyesuaikan lebar kolom tabel secara otomatis agar sesuai dengan halaman. Harap dicatat bahwa pada parameter table.column_widths = “50 50 50” - satuannya adalah point. Namun Anda juga dapat menentukan sentimeter (cm), inci, atau %.

  1. Atur lebar kolom awal.
  2. Secara otomatis menyesuaikan kolom agar sesuai dengan lebar halaman.
  3. Definisikan batas sel dan tabel.
  4. ’table.default_cell_padding’ menggunakan ‘MarginInfo()’ untuk spasi yang konsisten di dalam sel.
  5. Tambahkan Baris dengan ’table.rows.add()’, dan tambahkan Sel dengan ‘row.cells.add()’.
  6. Simpan PDF.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def auto_fit(outfile: str) -> None:
    # Create new PDF document
    document = ap.Document()
    page = document.pages.add()
    # Instantiate a table object
    table = ap.Table()

    page.paragraphs.add(table)

    table.column_widths = "50 50 50"
    table.column_adjustment = ap.ColumnAdjustment.AUTO_FIT_TO_WINDOW

    table.default_cell_border = ap.BorderInfo(ap.BorderSide.ALL, 0.1)

    table.border = ap.BorderInfo(ap.BorderSide.ALL, 1)

    margin = ap.MarginInfo()
    margin.top = 5
    margin.left = 5
    margin.right = 5
    margin.bottom = 5

    table.default_cell_padding = margin

    row1 = table.rows.add()
    row1.cells.add("col1")
    row1.cells.add("col2")
    row1.cells.add("col3")
    row2 = table.rows.add()
    row2.cells.add("item1")
    row2.cells.add("item2")
    row2.cells.add("item3")

    document.save(outfile)

Buat Tabel PDF Kompleks dengan Sel yang Digabung dan Kolom yang Berulang

Bangun tabel lanjutan dalam PDF menggunakan Python dan Aspose.PDF. Tabel tersebut mencakup sel header yang digabungkan, latar belakang berwarna, kolom yang berulang, dan dataset terstruktur besar. Tabel ini dikonfigurasi untuk menangani pemecahan vertikal dan tata letak kompleks untuk dokumen gaya laporan.

import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def add_table_hide_borders(outfile: str) -> None:
    # Create PDF document
    document = ap.Document()
    page = document.pages.add()

    # Instantiate a table object that will be nested inside outerTable that will break inside the same page
    table = ap.Table()
    table.broken = ap.TableBroken.VERTICAL
    table.default_cell_border = ap.BorderInfo(ap.BorderSide.ALL)
    table.repeating_columns_count = 2
    page.paragraphs.add(table)

    # Add header Row
    row = table.rows.add()
    cell = row.cells.add("header 1")
    cell.col_span = 2
    cell.background_color = ap.Color.light_gray
    row.cells.add("header 3")

    cell2 = row.cells.add("header 4")
    cell2.col_span = 2
    cell2.background_color = ap.Color.light_blue
    row.cells.add("header 6")

    cell3 = row.cells.add("header 7")
    cell3.col_span = 2
    cell3.background_color = ap.Color.light_green
    cell4 = row.cells.add("header 9")

    cell4.col_span = 3
    cell4.background_color = ap.Color.light_coral
    row.cells.add("header 12")
    row.cells.add("header 13")
    row.cells.add("header 14")
    row.cells.add("header 15")
    row.cells.add("header 16")
    row.cells.add("header 17")

    row_counter = 0
    while row_counter < 3:
        # Create rows in the table and then cells in the rows
        row1 = table.rows.add()
        row1.cells.add("col " + str(row_counter) + ", 1")
        row1.cells.add("col " + str(row_counter) + ", 2")
        row1.cells.add("col " + str(row_counter) + ", 3")
        row1.cells.add("col " + str(row_counter) + ", 4")
        row1.cells.add("col " + str(row_counter) + ", 5")
        row1.cells.add("col " + str(row_counter) + ", 6")
        row1.cells.add("col " + str(row_counter) + ", 7")
        row1.cells.add("col " + str(row_counter) + ", 8")
        row1.cells.add("col " + str(row_counter) + ", 9")
        row1.cells.add("col " + str(row_counter) + ", 10")
        row1.cells.add("col " + str(row_counter) + ", 11")
        row1.cells.add("col " + str(row_counter) + ", 12")
        row1.cells.add("col " + str(row_counter) + ", 13")
        row1.cells.add("col " + str(row_counter) + ", 14")
        row1.cells.add("col " + str(row_counter) + ", 15")
        row1.cells.add("col " + str(row_counter) + ", 16")
        row1.cells.add("col " + str(row_counter) + ", 17")
        row_counter += 1

    document.save(outfile)

Batas, margin, dan padding

Pengaturan Gaya Sudut Tabel

Aspose.PDF for Python via .NET menunjukkan cara menerapkan sudut bulat pada tabel dan menyesuaikan radius batas.

  1. Buat instance tabel baru.
  2. Inisialisasi batas untuk semua sisi.
  3. Atur radius sudut.
  4. Terapkan gaya pojok bulat.
  5. Tambah Baris dan Sel.
  6. Masukkan tabel ke dalam halaman PDF dengan ‘page.paragraphs.add(table)’.
  7. Simpan dokumen PDF.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def create_table_with_round_corner(outfile: str) -> None:
    # Create new PDF document
    document = ap.Document()
    page = document.pages.add()

    # Create a table
    table = ap.Table()

    # Create a blank BorderInfo object
    b_info = ap.BorderInfo(ap.BorderSide.ALL)

    # Set the border a rounded border where radius of round is 15
    b_info.rounded_border_radius = 15

    # Set the table corner style as Round
    table.corner_style = ap.BorderCornerStyle.ROUND

    # Set the table border information
    table.border = b_info

    # Create a loop to add 10 rows
    for row_count in range(0, 10):
        # Add row to table
        row = table.rows.add()
        # Add table cells
        row.cells.add("Column (" + str(row_count) + ", 1)")
        row.cells.add("Column (" + str(row_count) + ", 2)")
        row.cells.add("Column (" + str(row_count) + ", 3)")

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

Menambahkan Konten ke Tabel

Menggunakan Fragmen HTML di Sel

Contoh ini menunjukkan cara menyisipkan konten berformat HTML ke dalam sel tabel.

  1. Definisikan batas tabel dan sel.
  2. Tambahkan konten HTML.
  3. Tambah Baris. Sebuah loop menambahkan beberapa baris dengan konten berformat HTML di setiap sel.
  4. Masukkan tabel ke dalam halaman PDF dengan ‘page.paragraphs.add(table)’.
  5. Simpan dokumen PDF.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def add_html_fragments(outfile: str) -> None:
    # Instantiate Document object
    document = ap.Document()
    page = document.pages.add()
    # Instantiate a table object
    table = ap.Table()

    # Set the table border color as LightGray
    table.border = ap.BorderInfo(ap.BorderSide.ALL, 0.5, ap.Color.light_gray)
    # Set the border for table cells
    table.default_cell_border = ap.BorderInfo(
        ap.BorderSide.ALL, 0.5, ap.Color.light_gray
    )
    # Create a loop to add 10 rows
    row_count = 1
    while row_count < 10:
        # Add row to table
        row = table.rows.add()
        # Add table cells
        cell = row.cells.add()
        cell.paragraphs.add(
            ap.HtmlFragment(f"Column <strong>({row_count}, 1)</strong>")
        )

        cell = row.cells.add()
        cell.paragraphs.add(
            ap.HtmlFragment(f"Column <span style='color:red'>({row_count}, 2)</span>")
        )

        cell = row.cells.add()
        cell.paragraphs.add(
            ap.HtmlFragment(
                f"Column <span style='text-decoration: underline'>({row_count}, 3)</span>"
            )
        )
        row_count += 1

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

Menggunakan Fragmen LaTeX di Sel

Contoh ini menunjukkan cara memasukkan konten berformat LaTeX ke dalam sel tabel untuk ekspresi matematika atau bergaya.

  1. Definisikan batas tabel dan sel.
  2. Tambahkan Konten LaTeX.
  3. Tambahkan Baris. Sebuah loop menambahkan beberapa baris dengan konten berformat LaTeX di setiap sel.
  4. Masukkan tabel ke dalam halaman PDF dengan ‘page.paragraphs.add(table)’.
  5. Simpan dokumen PDF.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def add_latex_fragments(outfile: str) -> None:
    # Instantiate Document object
    document = ap.Document()
    page = document.pages.add()
    # Instantiate a table object
    table = ap.Table()

    # Set the table border color as LightGray
    table.border = ap.BorderInfo(ap.BorderSide.ALL, 0.5, ap.Color.light_gray)
    # Set the border for table cells
    table.default_cell_border = ap.BorderInfo(
        ap.BorderSide.ALL, 0.5, ap.Color.light_gray
    )
    # Create a loop to add 10 rows
    row_count = 1
    while row_count < 10:
        # Add row to table
        row = table.rows.add()
        # Add table cells
        cell = row.cells.add()
        cell.paragraphs.add(ap.LatexFragment(f"Column $\\mathbf{{({row_count}, 1)}}$"))

        cell = row.cells.add()
        cell.paragraphs.add(
            ap.LatexFragment(f"Column $\\textcolor{{red}}{{({row_count}, 2)}}$")
        )

        cell = row.cells.add()
        cell.paragraphs.add(
            ap.LatexFragment(f"Column $\\underline{{({row_count}, 3)}}$")
        )
        row_count += 1

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

Fitur Tabel Lanjutan

Masukkan Pemutusan Halaman Otomatis pada Tabel PDF

Buat tabel besar dalam PDF menggunakan Python dan Aspose.PDF, dengan pemisahan halaman otomatis setelah sejumlah baris tertentu. Ini membangun tabel multi-baris, menerapkan batas, dan memaksa baris terpilih mulai pada halaman baru untuk kontrol tata letak yang lebih baik.

import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def insert_page_break(outfile: str) -> None:
    # Create PDF document
    document = ap.Document()

    # Add page
    page = document.pages.add()

    # Create table instance
    table = ap.Table()

    # Set border style for table
    table.border = ap.BorderInfo(ap.BorderSide.ALL, ap.Color.red)

    # Set default border style for table with border color as Red
    table.default_cell_border = ap.BorderInfo(ap.BorderSide.ALL, ap.Color.red)

    # Specify table columns width
    table.column_widths = "100 100"

    # Create a loop to add 200 rows for table
    for counter in range(201):
        row = ap.Row()
        table.rows.add(row)

        cell1 = ap.Cell()
        cell1.paragraphs.add(ap.text.TextFragment(f"Cell {counter}, 0"))
        row.cells.add(cell1)

        cell2 = ap.Cell()
        cell2.paragraphs.add(ap.text.TextFragment(f"Cell {counter}, 1"))
        row.cells.add(cell2)

        # When 10 rows are added, render new row in new page
        if counter % 10 == 0 and counter != 0:
            row.is_in_new_page = True

    # Add table to paragraphs collection of PDF file
    page.paragraphs.add(table)

    # Save PDF document
    document.save(outfile)

Mengulang baris Header pada beberapa Halaman

Contoh ini menunjukkan cara membuat tabel yang melintasi beberapa halaman sambil menjaga baris header tetap terlihat di setiap halaman.

  1. Inisialisasi Tabel.
  2. Ulangi Baris Header termasuk font, ukuran, dan warna.
  3. Atur Lebar Kolom dan terapkan Garis Batas pada tabel.
  4. Tambahkan baris Header.
  5. Tambahkan banyak baris data untuk memaksa tabel melintasi beberapa halaman.
  6. Masukkan tabel ke dalam halaman PDF dengan ‘page.paragraphs.add(table)’.
  7. Simpan dokumen PDF.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def add_repeating_rows(outfile: str) -> None:
    # Create PDF document
    document = ap.Document()
    page = document.pages.add()

    # Instantiate a table object
    table = ap.Table()

    # Set the table to break across pages
    table.broken = ap.TableBroken.VERTICAL

    # Set number of repeating header rows
    table.repeating_rows_count = 2

    text_state = ap.text.TextState()
    text_state.font_size = 12
    text_state.font = ap.text.FontRepository.find_font("TimesNewRoman")
    text_state.foreground_color = ap.Color.red
    table.repeating_rows_style = text_state

    # Set column widths
    table.column_widths = "100 100 100"

    # Set borders
    table.default_cell_border = ap.BorderInfo(ap.BorderSide.ALL, 0.5, ap.Color.black)
    table.border = ap.BorderInfo(ap.BorderSide.ALL, 1, ap.Color.black)

    # Add header rows that will repeat on each page
    header_row1 = table.rows.add()
    header_row1.cells.add("Header 1-1")
    header_row1.cells.add("Header 1-2")
    header_row1.cells.add("Header 1-3")

    # Set background color for header rows
    for cell in header_row1.cells:
        cell.background_color = ap.Color.light_gray

    header_row2 = table.rows.add()
    header_row2.cells.add("Header 2-1")
    header_row2.cells.add("Header 2-2")
    header_row2.cells.add("Header 2-3")

    for cell in header_row2.cells:
        cell.background_color = ap.Color.light_blue

    # Add many data rows to force table across multiple pages
    for i in range(1, 101):
        row = table.rows.add()
        row.cells.add(f"Data {i}-1")
        row.cells.add(f"Data {i}-2")
        row.cells.add(f"Data {i}-3")

    # Add table to page
    page.paragraphs.add(table)

    # Save document
    document.save(outfile)

Kolom Berulang

Fungsi ‘add_repeating_columns’ membuat dokumen PDF dengan tabel yang memiliki kolom berulang. Itu mengatur tabel berbingkai, menambahkan header, mengisi baris data, dan menyimpan file PDF yang dihasilkan ke lokasi yang ditentukan. Mengatur properti ini akan menyebabkan tabel terputus ke halaman berikutnya secara kolom dan mengulangi jumlah kolom yang diberikan di awal halaman berikutnya.

  1. Menginisialisasi dokumen PDF baru.
  2. Menambahkan halaman dengan dimensi khusus.
  3. Atur Gaya Garis Tepi Tabel.
  4. Inisialisasi Tabel.
  5. Tambahkan tabel ke halaman PDF.
  6. Tambahkan baris header.
  7. Tambahkan baris data.
  8. Simpan Dokumen PDF.
import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def add_repeating_columns(outfile: str) -> None:
    # Create PDF document
    document = ap.Document()

    # Add page
    page = document.pages.add()
    page.set_page_size(ap.PageSize.a5.height, ap.PageSize.a5.width)

    # Define border
    border = ap.BorderInfo(ap.BorderSide.ALL, 0.5, ap.Color.light_gray)

    # Create table
    table = ap.Table()
    table.broken = ap.TableBroken.VERTICAL_IN_SAME_PAGE
    table.column_adjustment = ap.ColumnAdjustment.AUTO_FIT_TO_CONTENT
    table.repeating_columns_count = 5
    table.border = border
    table.default_cell_border = border

    # Add table to page
    page.paragraphs.add(table)

    # Add header row
    row = table.rows.add()
    for i in range(1, 6):
        cell = row.cells.add(f"header {i}")
        cell.background_color = ap.Color.light_gray

    for i in range(6, 18):
        row.cells.add(f"header {i}")

    # Add data rows
    for row_counter in range(1, 6):
        row = table.rows.add()
        for i in range(1, 6):
            cell = row.cells.add(f"cell {row_counter},{i}")
            cell.background_color = ap.Color.light_gray
        for i in range(6, 18):
            row.cells.add(f"cell {row_counter},{i}")

    # Save PDF document
    document.save(outfile)

Buat Tabel PDF dengan Sel Teks yang Diputar

Buat tabel dalam PDF menggunakan Python dan Aspose.PDF dengan teks diputar pada sudut yang berbeda di setiap sel. Ini berguna untuk header vertikal, tata letak kreatif, tabel kompak, dan pemformatan laporan khusus.

import aspose.pdf as ap
from aspose.pdf import Color, HorizontalAlignment
from os import path
import sys

def rotated_text_table(outfile: str) -> None:
    # Create PDF document
    document = ap.Document()

    # Add page
    page = document.pages.add()

    # Initializes a new instance of the Table
    table = ap.Table()
    table.border = ap.BorderInfo(ap.BorderSide.ALL, 0.5, Color.black)
    table.default_cell_border = ap.BorderInfo(ap.BorderSide.ALL, 0.5, Color.black)

    # Add 1st row to table
    row1 = table.rows.add()
    row1.min_row_height = 200

    for cell_count in range(4):
        # Add table cells
        cell = row1.cells.add()

        tf = ap.text.TextFragment(f"Cell 1 {cell_count - 1}")
        tf.text_state.rotation = 90 * cell_count
        tf.horizontal_alignment = HorizontalAlignment.CENTER

        cell.paragraphs.add(tf)

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

    # Save result
    document.save(outfile)

Topik Tabel Terkait