Mitä tulee kehittäjiin, saatamme kohdata tapauksia, joissa meidän on luotava ohjelmallisesti PDF-dokumentit syöttötietojen perusteella. Sinulla voi esimerkiksi olla verkkosovellus, joka luo PDF-laskut tietokannan ostotietojen perusteella.
Onneksi Go-ekosysteemi on massiivinen, ja siellä on työkaluja ja ominaisuuksia, joiden avulla voit luoda PDF-tiedostot helposti rakentamatta tyhjästä.
Tässä opetusohjelmassa opimme käyttämään 'fpdf'-pakettia, joka tarjoaa tehokkaita ominaisuuksia PDF-dokumenttien luomiseen syöttötietojen perusteella.
Ympäristön asetukset
Ennen kuin jatkamme, varmista, että olet asentanut seuraavat työkalut:
- Varmista, että järjestelmääsi on asennettu uusin Go-kääntäjä
- Koodieditori
Asenna Gofpdf
Kun olet määrittänyt projektisi, käytä 'go get' -komentoa 'fpdf'-paketin asentamiseen.
$ mennä hanki github . kanssa / mennä - pdf / fpdf
Kun asennus on tehty, voimme jatkaa ja kattaa paketin tarjoamat ominaisuudet PDF-luonnosta varten.
Luo PDF-perusasiakirja
Harkitse seuraavaa esimerkkikoodia, joka näyttää, kuinka tätä pakettia käytetään perus-PDF:n luomiseen perussyöttötekstillä.
paketti pää
tuonti (
'github.com/go-pdf/fpdf'
)
func pää () {
pdf := fpdf . Uusi ( 'P' , 'mm' , 'A4' , '' )
pdf . Lisää sivu ()
pdf . SetFont ( 'Arial' , 'B' , 16 )
pdf . Cell ( 40 , 10 , 'Se on tuskaa perseessä...' )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}
Annetussa esimerkissä aloitamme tuomalla tarvitsemamme paketit. Meidän tapauksessamme tarvitsemme vain 'fpdf'-paketin.
Seuraavaksi luomme uuden PDF-dokumentin fpdf.New()-funktiolla ja määritämme PDF-ominaisuudet, kuten sivun suunnan, mittayksikön ja koon.
Seuraavaksi lisäämme uuden sivun käyttämällä AddPage()-funktiota.
Jatkamme sitten asiakirjan fontin ja koon määrittämistä SetFont()-funktiolla. Lisäämme myös suorakaiteen muotoisen alueen, joka tunnetaan myös nimellä solu, jossa on Cell()-funktio tekstin näyttämiseksi.
Lopuksi luomme PDF-tiedoston ja tallennamme sen OutputFileAndClose()-menetelmällä.
Lisää kuvat
Voimme myös lisätä tuen kuville seuraavan esimerkkikoodin osoittamalla tavalla:
paketti päätuonti (
'github.com/go-pdf/fpdf'
)
func pää () {
pdf := fpdf . Uusi ( 'P' , 'mm' , 'A4' , '' )
pdf . Lisää sivu ()
pdf . ImageOptions ( 'linux-tux.png' , 10 , 10 , 40 , 0 , väärä , fpdf . ImageOptions { Kuvatyyppi : 'PNG' , ReadDpi : totta }, 0 , '' )
err := pdf . OutputFileAndClose ( 'esimerkki.pdf' )
jos err != nolla {
paniikki ( err )
}
}
Tämän pitäisi sisältää asiakirjaan määritetty kuva.
Monisivuinen asiakirja ylä- ja alatunnisteilla
Paketti tukee myös useita sivuja, mukaan lukien ominaisuudet, kuten ylä- ja alatunnisteet, kuten seuraavassa esimerkissä näkyy:
paketti päätuonti (
'strconv' // Tuo strconv-paketti
'github.com/go-pdf/fpdf'
)
func otsikko ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'B' , 12 )
pdf . Cell ( 0 , 10 , 'Sivun otsikko' )
pdf . Ln ( kaksikymmentä )
}
func alatunniste ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - viisitoista )
pdf . SetFont ( 'Arial' , 'minä' , 8 )
pdf . Cell ( 0 , 10 , 'sivu' + strconv . hukkunut ( pdf . Sivunro ()))
}
func pää () {
pdf := fpdf . Uusi ( 'P' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { otsikko ( pdf ) })
pdf . SetFooterFunc ( func () { alatunniste ( pdf ) })
pdf . Lisää sivu ()
pdf . SetFont ( 'Arial' , '' , 12 )
varten i := 0 ; i < 40 ; i ++ {
pdf . Cell ( 0 , 10 , 'Tulostusrivin numero' + strconv . hukkunut ( i ))
pdf . Ln ( 12 )
}
pdf . OutputFileAndClose ( 'multipage.pdf' )
}
Tässä tapauksessa määritämme ylä- ja alatunnistefunktiot näiden PDF-osien sisällön määrittämiseksi.
Käytämme sitten SetHeaderFunc- ja SetFooterFunc-toimintoja määrittääksemme toiminnot asiakirjan ylä- ja alatunnisteeksi.
Lopuksi käytämme silmukkaa luodaksemme useita tekstirivejä, jotka johtavat useisiin sivuihin. Tuloksena oleva PDF on seuraava:
Siinä se on!
Johtopäätös
Tässä opetusohjelmassa opimme paljon PDF:n luomisesta Gossa 'fpdf'-paketin avulla. Tämä paketti sisältää paljon työkaluja ja ominaisuuksia PDF-tiedostojen luomiseen. Tarkista asiakirjat saadaksesi lisätietoja.