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:
- Pastikan anda mempunyai pengkompil Go terkini yang dipasang pada sistem anda
- 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 utamaimport (
'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 utamaimport (
'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.