Menggunakan Aspose.PDF untuk .NET dengan Python

Artikel ini menggambarkan contoh singkat bagaimana membuat PDF menggunakan integrasi Aspose.PDF untuk .NET dengan Python.

Prasyarat

Untuk menggunakan Aspose.PDF untuk .NET di Python silakan gunakan requirments.txt berikut:

pip==21.3.1
pycparser==2.21
pythonnet==2.5.2
setuptools==60.1.0

Anda juga harus meletakkan Aspose.PDF.dll di folder yang diinginkan.

Membuat PDF Sederhana menggunakan Python

Untuk bekerja kita akan perlu mengintegrasikan PythonNet ke aplikasi kita dan melakukan beberapa pengaturan.

import clr

aspose_pdf = clr.AddReference("D:\\aspose-python-net\\Aspose.PDF.dll")

from System import TimeSpan

from Aspose.Pdf import Document, Color, License, BorderInfo, BorderSide, Rectangle, HorizontalAlignment
from Aspose.Pdf import Table, MarginInfo
from Aspose.Pdf.Text import TextFragment, Position, TextBuilder,FontRepository

Membuat dokumen sederhana

Mari membuat PDF sederhana dengan teks klasik “Hello, world”. Untuk penjelasan lebih detail, silakan menuju ke halaman ini

class HelloWorld(object):
    def __init__(self,licence_path):
        self.dataDir = "C:\\Samples\\"
        if licence_path:
            self.licence_path = licence_path
            self.aspose_license = License()
            self.aspose_license.SetLicense(self.licence_path)

    def run_simple(self):

        # Inisialisasi objek dokumen
        document = Document()
        # Tambahkan halaman
        page = document.Pages.Add()
        # Tambahkan teks ke halaman baru
        textFragment = TextFragment("Hello,world!")
        textFragment.Position = Position(100, 600)

        textFragment.TextState.FontSize = 12
        textFragment.TextState.Font = FontRepository.FindFont("TimesNewRoman")
        textFragment.TextState.BackgroundColor = Color.Blue
        textFragment.TextState.ForegroundColor = Color.Yellow

        # Buat objek TextBuilder
        textBuilder = TextBuilder(page)

        # Tambahkan fragmen teks ke halaman PDF
        textBuilder.AppendText(textFragment)

        document.Save("HelloWorld_out.pdf")

Membuat PDF Kompleks Menggunakan Python

Contoh berikut menunjukkan bagaimana kita dapat membuat dokumen PDF kompleks dengan gambar dan tabel. Contoh ini berdasarkan halaman berikut.

class HelloWorld(object):
    def __init__(self,licence_path):
        self.dataDir = "C:\\Samples\\"
        if licence_path:
            self.licence_path = licence_path
            self.aspose_license = License()
            self.aspose_license.SetLicense(self.licence_path)

    def run_simple(self):
    # ... dilewati ...

    # Membuat Dokumen Kompleks
    def run_complex(self):

        # Inisialisasi objek dokumen
        document = Document()
        # Tambahkan halaman
        page = document.Pages.Add()

        # Tambahkan gambar
        imageFileName = self.dataDir + "logo.png"
        page.AddImage(imageFileName, Rectangle(20, 730, 120, 830))

        # Tambahkan Header
        header = TextFragment("Rute ferry baru pada Musim Gugur 2020")
        header.TextState.Font = FontRepository.FindFont("Arial")
        header.TextState.FontSize = 24
        header.HorizontalAlignment = HorizontalAlignment.Center
        header.Position = Position(130, 720)
        page.Paragraphs.Add(header)

        # Tambahkan deskripsi
        descriptionText = "Pengunjung harus membeli tiket secara online dan tiket terbatas hanya 5.000 per hari. \
        Layanan ferry beroperasi dengan kapasitas setengah dan jadwal yang dikurangi. Harapkan antrean."
        description = TextFragment(descriptionText)
        description.TextState.Font = FontRepository.FindFont("Times New Roman")
        description.TextState.FontSize = 14
        description.HorizontalAlignment = HorizontalAlignment.Left
        page.Paragraphs.Add(description)


        # Tambahkan tabel
        table = Table()

        table.ColumnWidths = "200"
        table.Border = BorderInfo(BorderSide.Box, 1.0, Color.DarkSlateGray)
        table.DefaultCellBorder = BorderInfo(BorderSide.Box, 0.5, Color.Black)
        table.DefaultCellPadding = MarginInfo(4.5, 4.5, 4.5, 4.5)
        table.Margin.Bottom = 10
        table.DefaultCellTextState.Font =  FontRepository.FindFont("Helvetica")

        headerRow = table.Rows.Add()
        headerRow.Cells.Add("Kota Keberangkatan")
        headerRow.Cells.Add("Pulau Keberangkatan")

        i=0
        while(i<headerRow.Cells.Count):
            headerRow.Cells[i].BackgroundColor = Color.Gray
            headerRow.Cells[i].DefaultCellTextState.ForegroundColor = Color.WhiteSmoke
            i+=1

        time = TimeSpan(6, 0, 0)
        incTime = TimeSpan(0, 30, 0)

        i=0
        while (i<10):
            dataRow = table.Rows.Add()
            dataRow.Cells.Add(time.ToString("hh\:mm"))
            time=time.Add(incTime)
            dataRow.Cells.Add(time.ToString("hh\:mm"))
            i+=1

        page.Paragraphs.Add(table)

        document.Save(self.dataDir + "Complex.pdf")

Cara Menjalankan Pembuatan PDF di Windows

Snippet ini menunjukkan cara menjalankan contoh di atas pada PC Windows. Kami mengasumsikan bahwa class HelloWorld berada dalam file example_get_started.py. Jika Anda menjalankan versi trial dari Aspose.PDF untuk .NET, Anda harus memberikan string kosong sebagai license_path.

import example_get_started

def main():

    example = example_get_started.HelloWorld("<license_path>")
    example.run_simple()
    example.run_complex()


if __name__ == '__main__':
    main()