Geliştiriciler söz konusu olduğunda, giriş verilerine dayanarak PDF belgelerini programlı olarak oluşturmamız gereken örneklerle karşılaşabiliriz. Örneğin, veritabanındaki satın alma bilgilerine dayalı olarak PDF faturaları oluşturan bir web uygulamanız olabilir.
Neyse ki, Go ekosistemi çok büyük ve PDF oluşturmayı sıfırdan oluşturmadan kolaylıkla gerçekleştirecek araçlar ve özellikler var.
Bu derste, giriş verilerine dayalı olarak PDF belgeleri oluşturmak için güçlü özellikler sağlayan “fpdf” paketini nasıl kullanacağımızı öğreneceğiz.
Ortam Kurulumu
Devam etmeden önce aşağıdaki araçların kurulu olduğundan emin olun:
- Sisteminizde en son Go derleyicisinin kurulu olduğundan emin olun
- Bir kod düzenleyici
Gofpdf'i yükleyin
Proje kurulumunuzu yaptıktan sonra “fpdf” paketini kurmak için “go get” komutunu kullanın.
$ Gitmek github'u al . ile / Gitmek - pdf / fpdf
Kurulduktan sonra devam edebilir ve PDF oluşturma için paket tarafından sağlanan özellikleri ele alabiliriz.
Temel PDF Belgesi Oluşturun
Temel bir giriş metni verilen temel bir PDF oluşturmak için bu paketin nasıl kullanılacağını gösteren aşağıdaki örnek kodu göz önünde bulundurun.
paket ana
içe aktarmak (
'github.com/go-pdf/fpdf'
)
işlev ana () {
pdf := fpdf . Yeni ( 'P' , 'aa' , 'A4' , '' )
pdf . Sayfa ekle ()
pdf . Fontu Ayarla ( 'Arial' , 'B' , 16 )
pdf . Hücre ( 40 , 10 , 'Bu bir baş ağrısı...' )
pdf . ÇıktıDosyaVeKapat ( 'lorem.pdf' )
}
Verilen örnekte ihtiyacımız olan paketleri import ederek başlıyoruz. Bizim durumumuzda sadece “fpdf” paketine ihtiyacımız var.
Daha sonra fpdf.New() işlevini kullanarak yeni bir PDF belgesi oluşturuyoruz ve sayfa yönü, ölçü birimi ve boyut gibi PDF özelliklerini belirliyoruz.
Daha sonra AddPage() fonksiyonunu kullanarak yeni bir sayfa ekliyoruz.
Daha sonra SetFont() fonksiyonunu kullanarak belgenin yazı tipini ve boyutunu ayarlamaya devam ediyoruz. Ayrıca metni görüntülemek için Cell() işleviyle hücre olarak da bilinen dikdörtgen bir alan ekliyoruz.
Son olarak PDF'yi oluşturup OutputFileAndClose() yöntemiyle kaydediyoruz.
Görselleri Ekle
Ayrıca aşağıdaki örnek kodda gösterildiği gibi resimler için bir destek de ekleyebiliriz:
paket anaiçe aktarmak (
'github.com/go-pdf/fpdf'
)
işlev ana () {
pdf := fpdf . Yeni ( 'P' , 'aa' , 'A4' , '' )
pdf . Sayfa ekle ()
pdf . Resim Seçenekleri ( 'linux-tux.png' , 10 , 10 , 40 , 0 , YANLIŞ , fpdf . Resim Seçenekleri { Resim türü : 'PNG' , ReadDpi : doğru }, 0 , '' )
hata := pdf . ÇıktıDosyaVeKapat ( 'örnek.pdf' )
eğer hata != sıfır {
panik ( hata )
}
}
Bu, belirtilen görüntüyü belgeye içermelidir.
Üstbilgi ve Altbilgilerle Çok Sayfalı Belge
Paket aynı zamanda aşağıdaki örnekte gösterildiği gibi üst bilgi ve alt bilgi gibi özellikleri içeren birden çok sayfayı da destekler:
paket anaiçe aktarmak (
'strconv' // strconv paketini içe aktar
'github.com/go-pdf/fpdf'
)
işlev başlık ( pdf * fpdf . Fpdf ) {
pdf . Fontu Ayarla ( 'Arial' , 'B' , 12 )
pdf . Hücre ( 0 , 10 , 'Sayfa Başlığı' )
pdf . Ln ( yirmi )
}
işlev alt bilgi ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - on beş )
pdf . Fontu Ayarla ( 'Arial' , 'BEN' , 8 )
pdf . Hücre ( 0 , 10 , 'Sayfa ' + strconv . boğuldu ( pdf . Sayfa numarası ()))
}
işlev ana () {
pdf := fpdf . Yeni ( 'P' , 'aa' , 'A4' , '' )
pdf . SetHeaderFunc ( işlev () { başlık ( pdf ) })
pdf . Altbilgi İşlevini Ayarla ( işlev () { alt bilgi ( pdf ) })
pdf . Sayfa ekle ()
pdf . Fontu Ayarla ( 'Arial' , '' , 12 )
için Ben := 0 ; Ben < 40 ; Ben ++ {
pdf . Hücre ( 0 , 10 , 'Baskı satırı numarası' + strconv . boğuldu ( Ben ))
pdf . Ln ( 12 )
}
pdf . ÇıktıDosyaVeKapat ( 'çok sayfalı.pdf' )
}
Bu durumda, PDF'nin bu bölümlerinin içeriğini ayarlamak için bir üstbilgi ve altbilgi işlevleri tanımlarız.
Daha sonra, işlevleri belgenin üstbilgisi ve altbilgisi olarak belirtmek için SetHeaderFunc ve SetFooterFunc'u kullanırız.
Son olarak, birden fazla sayfayla sonuçlanan birden fazla metin satırı satırı oluşturmak için bir döngü kullanırız. Ortaya çıkan PDF aşağıdaki gibidir:
İşte aldın!
Çözüm
Bu eğitimde Go'da “fpdf” paketini kullanarak PDF oluşturma hakkında çok şey öğrendik. Bu paket, PDF oluşturmak için birçok araç ve özellik ile birlikte gelir. Daha fazla bilgi edinmek için dokümanlara göz atın.