Генериране на PDF в Golang (PDF)

Generirane Na Pdf V 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'
)

функ основен () {
pdf := fpdf . Нов ( 'П' , 'мм' , 'A4' , '' )
pdf . AddPage ()
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'
)

функ основен () {
pdf := fpdf . Нов ( 'П' , 'мм' , 'A4' , '' )
pdf . AddPage ()
pdf . Опции на изображението ( 'linux-tux.png' , 10 , 10 , 40 , 0 , невярно , fpdf . Опции на изображението { ImageType : 'PNG' , ReadDpi : вярно }, 0 , '' )
грешка := pdf . OutputFileAndClose ( 'example.pdf' )
ако грешка != нула {
паника ( грешка )
}
}

Това трябва да включва посоченото изображение към документа.

Многостраничен документ с горни и долни колонтитули

Пакетът също така поддържа множество страници, включително функции като горни и долни колонтитули, както е показано в следния пример:

пакет основен

импортиране (
'strconv' // Импортирайте пакета strconv

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

функ заглавка ( pdf * fpdf . Fpdf ) {
pdf . SetFont ( 'Arial' , 'Б' , 12 )
pdf . клетка ( 0 , 10 , „Заглавен колонтитул на страница“ )
pdf . Ln ( двадесет )
}

функ долен колонтитул ( pdf * fpdf . Fpdf ) {
pdf . SetY ( - петнадесет )
pdf . SetFont ( 'Arial' , аз , 8 )
pdf . клетка ( 0 , 10 , 'Страница' + strconv . удавени ( pdf . Страница № ()))
}

функ основен () {
pdf := fpdf . Нов ( 'П' , 'мм' , 'A4' , '' )
pdf . SetHeaderFunc ( функ () { заглавка ( pdf ) })
pdf . SetFooterFunc ( функ () { долен колонтитул ( pdf ) })

pdf . AddPage ()
pdf . SetFont ( 'Arial' , '' , 12 )
за i := 0 ; i < 40 ; i ++ {
pdf . клетка ( 0 , 10 , 'Отпечатване на номер на ред' + strconv . удавени ( i ))
pdf . Ln ( 12 )
}

pdf . OutputFileAndClose ( 'multipage.pdf' )
}

В този случай ние дефинираме функции за горен и долен колонтитул, за да зададем съдържанието за тези секции на PDF файла.

След това използваме SetHeaderFunc и SetFooterFunc, за да посочим функциите като горен и долен колонтитул за документа.

Накрая използваме цикъл, за да създадем множество редове от текстови редове, което води до множество страници. Полученият PDF е както следва:

Ето го!

Заключение

В този урок научихме много за генерирането на PDF в Go с помощта на пакета „fpdf“. Този пакет идва пълен с много инструменти и функции за генериране на PDF файлове. Проверете документите, за да научите повече.