Membuat PDF yang kompleks
Contents
[
Hide
]
The Hello, World contoh menunjukkan langkah sederhana untuk membuat dokumen PDF menggunakan Python dan Aspose.PDF. Dalam artikel ini, kami akan melihat pembuatan dokumen yang lebih kompleks dengan Aspose.PDF for Python. Sebagai contoh, kami akan mengambil dokumen dari perusahaan fiktif yang mengoperasikan layanan feri penumpang. Dokumen kami akan berisi sebuah gambar, dua fragmen teks (judul dan paragraf), dan sebuah tabel.
Jika kita membuat dokumen dari awal, kita perlu mengikuti langkah-langkah tertentu:
- Instansiasi sebuah Document objek. Pada langkah ini kami akan membuat dokumen PDF kosong dengan beberapa metadata tetapi tanpa halaman.
- Tambahkan sebuah Page ke objek dokumen. Jadi, sekarang dokumen kami akan memiliki satu halaman.
- Tambahkan sebuah Gambar ke Halaman.
- Buat sebuah TextFragment untuk header. Untuk header kami akan menggunakan font Arial dengan ukuran font 24pt dan perataan tengah.
- Tambahkan header ke halaman paragraf.
- Buat sebuah TextFragment untuk deskripsi. Untuk deskripsi kami akan menggunakan font Arial dengan ukuran font 24pt dan perataan tengah.
- Tambahkan deskripsi ke paragraf halaman.
- Buat dan Gaya Tabel. Atur lebar kolom, batas, padding, dan font.
- Tambahkan tabel ke halaman paragraf.
- Simpan dokumen “Complex.pdf”.
from datetime import timedelta
import aspose.pdf as ap
def run_complex(self):
# Initialize document object
document = ap.Document()
# Add page
page = document.pages.add()
# Add image
imageFileName = self.data_dir + "logo.png"
page.add_image(imageFileName, ap.Rectangle(20, 730, 120, 830, True))
# Add Header
header = ap.text.TextFragment("New ferry routes in Fall 2029")
header.text_state.font = ap.text.FontRepository.find_font("Arial")
header.text_state.font_size = 24
header.horizontal_alignment = ap.HorizontalAlignment.CENTER
header.position = ap.text.Position(130, 720)
page.paragraphs.add(header)
# Add description
descriptionText = "Visitors must buy tickets online and tickets are limited to 5,000 per day. \
Ferry service is operating at half capacity and on a reduced schedule. Expect lineups."
description = ap.text.TextFragment(descriptionText)
description.text_state.font = ap.text.FontRepository.find_font("Times New Roman")
description.text_state.font_size = 14
description.horizontal_alignment = ap.HorizontalAlignment.LEFT
page.paragraphs.add(description)
# Add table
table = ap.Table()
table.column_widths = "200"
table.border = ap.BorderInfo(ap.BorderSide.BOX, 1.0, ap.Color.dark_slate_gray)
table.default_cell_border = ap.BorderInfo(ap.BorderSide.BOX, 0.5, ap.Color.black)
table.default_cell_padding = ap.MarginInfo(4.5, 4.5, 4.5, 4.5)
table.margin.bottom = 10
table.default_cell_text_state.font = ap.text.FontRepository.find_font("Helvetica")
headerRow = table.rows.add()
headerRow.cells.add("Departs City")
headerRow.cells.add("Departs Island")
i = 0
while i < headerRow.cells.count:
headerRow.cells[i].background_color = ap.Color.gray
headerRow.cells[
i
].default_cell_text_state.foreground_color = ap.Color.white_smoke
i += 1
time = timedelta(hours=6, minutes=0)
incTime = timedelta(hours=0, minutes=30)
i = 0
while i < 10:
dataRow = table.rows.add()
dataRow.cells.add(str(time))
time = time.__add__(incTime)
dataRow.cells.add(str(time))
i += 1
page.paragraphs.add(table)
document.save(self.data_dir + "Complex.pdf")