Penjanaan PDF di Golang (PDF)

Penjanaan Pdf Di Golang Pdf



Format Dokumen Mudah Alih atau ringkasnya PDF ialah format fail yang sangat popular dan serba boleh yang digunakan dalam dokumen. PDF disokong dalam hampir semua platform dan sistem, menjadikannya pilihan terbaik untuk berkongsi dokumen.

Apabila ia berkaitan dengan pembangun, kita mungkin menemui keadaan di mana kita perlu menjana dokumen PDF secara pemrograman berdasarkan data input. Sebagai contoh, anda boleh mempunyai apl web yang menjana invois PDF berdasarkan maklumat pembelian daripada pangkalan data.

Nasib baik, ekosistem Go adalah besar dan terdapat alat dan ciri untuk melaksanakan penjanaan PDF dengan mudah tanpa membina dari awal.







Dalam tutorial ini, kita akan belajar cara menggunakan pakej 'fpdf' yang menyediakan ciri yang berkuasa untuk menjana dokumen PDF berdasarkan data input.



Persediaan Persekitaran

Sebelum kami meneruskan, pastikan anda memasang alat berikut:



  1. Pastikan anda mempunyai pengkompil Go terkini yang dipasang pada sistem anda
  2. Penyunting kod

Pasang Gofpdf

Sebaik sahaja anda mempunyai persediaan projek anda, gunakan arahan 'go get' untuk memasang pakej 'fpdf'.





$ pergi dapatkan github . dengan / pergi - pdf / fpdf

Setelah dipasang, kami boleh meneruskan dan merangkumi ciri yang disediakan oleh pakej untuk penjanaan PDF.

Buat Dokumen PDF Asas

Pertimbangkan contoh kod berikut yang menunjukkan cara menggunakan pakej ini untuk mencipta PDF asas yang diberikan teks input asas.



pakej utama

import (
'github.com/go-pdf/fpdf'
)

fungsi utama () {
pdf := fpdf . Baru ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . sel ( 40 , 10 , 'Sakit hati...' )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}

Dalam contoh yang diberikan, kita mulakan dengan mengimport pakej yang kita perlukan. Dalam kes kami, kami hanya memerlukan pakej 'fpdf'.

Seterusnya, kami mencipta dokumen PDF baharu menggunakan fungsi fpdf.New() dan menentukan sifat PDF seperti orientasi halaman, unit ukuran dan saiz.

Seterusnya, kami menambah halaman baharu menggunakan fungsi AddPage().

Kami kemudiannya meneruskan untuk menetapkan fon dan saiz untuk dokumen menggunakan fungsi SetFont(). Kami juga menambah kawasan segi empat tepat, juga dikenali sebagai sel, dengan fungsi Cell() untuk memaparkan teks.

Akhir sekali, kami menjana PDF dan menyimpannya dengan kaedah OutputFileAndClose().

Tambah Imej

Kami juga boleh menambah sokongan untuk imej seperti yang ditunjukkan dalam kod contoh berikut:

pakej utama

import (
'github.com/go-pdf/fpdf'
)

fungsi utama () {
pdf := fpdf . Baru ( 'P' , 'mm' , 'A4' , '' )
pdf . AddPage ()
pdf . ImageOptions ( 'linux-tux.png' , 10 , 10 , 40 , 0 , salah , fpdf . ImageOptions { Jenis Imej : 'PNG' , BacaDpi : benar }, 0 , '' )
silap := pdf . OutputFileAndClose ( 'example.pdf' )
jika silap != tiada {
panik ( silap )
}
}

Ini harus termasuk imej yang ditentukan pada dokumen.

Dokumen Berbilang Halaman dengan Pengepala dan Pengaki

Pakej ini juga menyokong berbilang halaman termasuk ciri seperti pengepala dan pengaki seperti yang ditunjukkan dalam contoh berikut:

pakej utama

import (
'strconv' // Import pakej strconv

'github.com/go-pdf/fpdf'
)

fungsi kepala ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . sel ( 0 , 10 , 'Pengepala Halaman' )
pdf . Ln ( dua puluh )
}

fungsi pengaki ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - lima belas )
pdf . SetFont ( 'Arial' , 'saya' , 8 )
pdf . sel ( 0 , 10 , 'Halaman' + strconv . lemas ( pdf . HalamanNo ()))
}

fungsi utama () {
pdf := fpdf . Baru ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( fungsi () { kepala ( pdf ) })
pdf . SetFooterFunc ( fungsi () { pengaki ( pdf ) })

pdf . AddPage ()
pdf . SetFont ( 'Arial' , '' , 12 )
untuk i := 0 ; i < 40 ; i ++ {
pdf . sel ( 0 , 10 , 'Mencetak nombor baris' + strconv . lemas ( i ))
pdf . Ln ( 12 )
}

pdf . OutputFileAndClose ( 'multipage.pdf' )
}

Dalam kes ini, kami mentakrifkan fungsi pengepala dan pengaki untuk menetapkan kandungan bagi bahagian PDF ini.

Kami kemudian menggunakan SetHeaderFunc dan SetFooterFunc untuk menentukan fungsi sebagai pengepala dan pengaki untuk dokumen.

Akhir sekali, kami menggunakan gelung untuk mencipta berbilang baris baris teks yang menghasilkan berbilang halaman. PDF yang terhasil adalah seperti berikut:

Itulah anda mempunyainya!

Kesimpulan

Dalam tutorial ini, kami belajar banyak tentang penjanaan PDF dalam Go menggunakan pakej 'fpdf'. Pakej ini dilengkapi dengan banyak alat dan ciri untuk menjana PDF. Semak dokumen untuk mengetahui lebih lanjut.