Golang'da PDF Oluşturma (PDF)

Golang Da Pdf Olusturma Pdf



Taşınabilir Belge Formatı veya kısaca PDF, belgelerde kullanılan inanılmaz derecede popüler ve çok yönlü bir dosya formatıdır. PDF neredeyse tüm platformlarda ve sistemlerde desteklenir, bu da onu belgeleri paylaşmak için mükemmel bir seçim haline getirir.

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:



  1. Sisteminizde en son Go derleyicisinin kurulu olduğundan emin olun
  2. 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 ana

iç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 ana

iç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.