Δημιουργία PDF στο Golang (PDF)

Demiourgia Pdf Sto Golang Pdf



Το Portable Document Format ή PDF για συντομία είναι μια απίστευτα δημοφιλής και ευέλικτη μορφή αρχείου που χρησιμοποιείται σε έγγραφα. Το PDF υποστηρίζεται σε όλες σχεδόν τις πλατφόρμες και τα συστήματα, καθιστώντας το μια εξαιρετική επιλογή για την κοινή χρήση των εγγράφων.

Όταν πρόκειται για προγραμματιστές, μπορεί να συναντήσουμε περιπτώσεις όπου πρέπει να δημιουργήσουμε μέσω προγραμματισμού τα έγγραφα PDF με βάση τα δεδομένα εισόδου. Για παράδειγμα, μπορείτε να έχετε μια εφαρμογή Ιστού που δημιουργεί τα τιμολόγια PDF με βάση τις πληροφορίες αγοράς από τη βάση δεδομένων.

Ευτυχώς, το οικοσύστημα Go είναι τεράστιο και υπάρχουν εργαλεία και δυνατότητες για να εκτελέσετε τη δημιουργία PDF με ευκολία χωρίς να δημιουργήσετε από την αρχή.







Σε αυτό το σεμινάριο, θα μάθουμε πώς να χρησιμοποιούμε το πακέτο 'fpdf', το οποίο παρέχει ισχυρές δυνατότητες για τη δημιουργία εγγράφων PDF με βάση τα δεδομένα εισόδου.



Ρύθμιση περιβάλλοντος

Πριν προχωρήσουμε, βεβαιωθείτε ότι έχετε εγκαταστήσει τα ακόλουθα εργαλεία:



  1. Βεβαιωθείτε ότι έχετε εγκατεστημένο στο σύστημά σας τον πιο πρόσφατο μεταγλωττιστή Go
  2. Ένας επεξεργαστής κώδικα

Εγκαταστήστε το Gofpdf

Μόλις ρυθμίσετε το έργο σας, χρησιμοποιήστε την εντολή 'go get' για να εγκαταστήσετε το πακέτο 'fpdf'.





$ πηγαίνω πάρτε github . με / πηγαίνω - pdf / fpdf

Μόλις εγκατασταθεί, μπορούμε να προχωρήσουμε και να καλύψουμε τις δυνατότητες που παρέχει το πακέτο για τη δημιουργία PDF.

Δημιουργήστε ένα βασικό έγγραφο PDF

Εξετάστε το ακόλουθο παράδειγμα κώδικα που δείχνει πώς να χρησιμοποιήσετε αυτό το πακέτο για να δημιουργήσετε ένα βασικό PDF με ένα βασικό κείμενο εισαγωγής.



πακέτο κύριος

εισαγωγή (
'github.com/go-pdf/fpdf'
)

func κύριος () {
pdf := fpdf . Νέος ( 'Π' , 'mm' , 'A4' , '' )
pdf . Προσθήκη σελίδας ()
pdf . SetFont ( 'Arial' , 'ΣΙ' , 16 )
pdf . Κύτταρο ( 40 , 10 , «Είναι ένας πόνος στον κώλο...» )
pdf . OutputFileAndClose ( 'lorem.pdf' )
}

Στο συγκεκριμένο παράδειγμα, ξεκινάμε εισάγοντας τα πακέτα που χρειαζόμαστε. Στην περίπτωσή μας, χρειαζόμαστε μόνο το πακέτο «fpdf».

Στη συνέχεια, δημιουργούμε ένα νέο έγγραφο PDF χρησιμοποιώντας τη συνάρτηση fpdf.New() και καθορίζουμε τις ιδιότητες PDF, όπως τον προσανατολισμό της σελίδας, τη μονάδα μέτρησης και το μέγεθος.

Στη συνέχεια, προσθέτουμε μια νέα σελίδα χρησιμοποιώντας τη συνάρτηση AddPage().

Στη συνέχεια, προχωράμε στον ορισμό της γραμματοσειράς και του μεγέθους για το έγγραφο χρησιμοποιώντας τη συνάρτηση SetFont(). Προσθέτουμε επίσης μια ορθογώνια περιοχή, γνωστή και ως κελί, με τη συνάρτηση Cell() για την εμφάνιση του κειμένου.

Τέλος, δημιουργούμε το PDF και το αποθηκεύουμε με τη μέθοδο OutputFileAndClose().

Προσθέστε τις Εικόνες

Μπορούμε επίσης να προσθέσουμε μια υποστήριξη για εικόνες όπως φαίνεται στο ακόλουθο παράδειγμα κώδικα:

πακέτο κύριος

εισαγωγή (
'github.com/go-pdf/fpdf'
)

func κύριος () {
pdf := fpdf . Νέος ( 'Π' , 'mm' , 'A4' , '' )
pdf . Προσθήκη σελίδας ()
pdf . Επιλογές εικόνας ( 'linux-tux.png' , 10 , 10 , 40 , 0 , ψευδής , fpdf . Επιλογές εικόνας { Τύπος εικόνας : 'PNG' , ReadDpi : αληθής }, 0 , '' )
πλανώμαι := pdf . OutputFileAndClose ( 'example.pdf' )
αν πλανώμαι != μηδέν {
πανικός ( πλανώμαι )
}
}

Αυτό θα πρέπει να περιλαμβάνει την καθορισμένη εικόνα στο έγγραφο.

Έγγραφο πολλών σελίδων με κεφαλίδες και υποσέλιδα

Το πακέτο υποστηρίζει επίσης πολλές σελίδες συμπεριλαμβανομένων χαρακτηριστικών όπως κεφαλίδες και υποσέλιδα όπως φαίνεται στο ακόλουθο παράδειγμα:

πακέτο κύριος

εισαγωγή (
'strconv' // Εισαγάγετε το πακέτο strconv

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

func επί κεφαλής ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'ΣΙ' , 12 )
pdf . Κύτταρο ( 0 , 10 , 'Κεφαλίδα σελίδας' )
pdf . Ln ( είκοσι )
}

func υποσέλιδο ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - δεκαπέντε )
pdf . SetFont ( 'Arial' , 'ΕΓΩ' , 8 )
pdf . Κύτταρο ( 0 , 10 , 'Σελίδα' + strconv . πνίγηκε ( pdf . Σελίδα Αρ ()))
}

func κύριος () {
pdf := fpdf . Νέος ( 'Π' , 'mm' , 'A4' , '' )
pdf . SetHeaderFunc ( func () { επί κεφαλής ( pdf ) })
pdf . SetFooterFunc ( func () { υποσέλιδο ( pdf ) })

pdf . Προσθήκη σελίδας ()
pdf . SetFont ( 'Arial' , '' , 12 )
Για Εγώ := 0 ; Εγώ < 40 ; Εγώ ++ {
pdf . Κύτταρο ( 0 , 10 , 'Αριθμός γραμμής εκτύπωσης' + strconv . πνίγηκε ( Εγώ ))
pdf . Ln ( 12 )
}

pdf . OutputFileAndClose ( 'multipage.pdf' )
}

Σε αυτήν την περίπτωση, ορίζουμε συναρτήσεις κεφαλίδας και υποσέλιδου για να ορίσουμε τα περιεχόμενα για αυτές τις ενότητες του PDF.

Στη συνέχεια χρησιμοποιούμε τα SetHeaderFunc και SetFooterFunc για να καθορίσουμε τις συναρτήσεις ως κεφαλίδα και υποσέλιδο για το έγγραφο.

Τέλος, χρησιμοποιούμε έναν βρόχο για να δημιουργήσουμε πολλές γραμμές γραμμών κειμένου που καταλήγουν σε πολλές σελίδες. Το PDF που προκύπτει έχει ως εξής:

Ορίστε το!

συμπέρασμα

Σε αυτό το σεμινάριο, μάθαμε πολλά για τη δημιουργία PDF στο Go χρησιμοποιώντας το πακέτο 'fpdf'. Αυτό το πακέτο είναι γεμάτο με πολλά εργαλεία και δυνατότητες για τη δημιουργία αρχείων PDF. Ελέγξτε τα έγγραφα για να μάθετε περισσότερα.