Когда дело доходит до разработчиков, мы можем столкнуться со случаями, когда нам необходимо программно генерировать PDF-документы на основе входных данных. Например, у вас может быть веб-приложение, которое генерирует счета в формате PDF на основе информации о покупках из базы данных.
К счастью, экосистема Go огромна, и в ней есть инструменты и функции, позволяющие легко создавать PDF-файлы, не создавая их с нуля.
В этом уроке мы научимся использовать пакет «fpdf», который предоставляет мощные функции для создания PDF-документов на основе входных данных.
Настройка среды
Прежде чем продолжить, убедитесь, что у вас установлены следующие инструменты:
- Убедитесь, что в вашей системе установлена последняя версия компилятора Go.
- Редактор кода
Установить Гофpdf
После настройки проекта используйте команду «go get», чтобы установить пакет «fpdf».
$ идти получить github . с / идти - PDF / fpdf
После установки мы можем продолжить и рассмотреть функции, предоставляемые пакетом для создания PDF-файлов.
Создайте базовый PDF-документ
Рассмотрим следующий пример кода, который демонстрирует, как использовать этот пакет для создания простого PDF-файла с использованием базового входного текста.
упаковка основной
Импортировать (
'github.com/go-pdf/fpdf'
)
функция основной () {
PDF '=' fpdf . Новый ( 'П' , 'мм' , 'А4' , '' )
PDF . Аддпейдж ()
PDF . SetFont ( 'Ариал' , 'Б' , 16 )
PDF . Клетка ( 40 , 10 , «Это заноза в заднице...» )
PDF . Выходной файл и закрытие ( 'лорем.pdf' )
}
В данном примере мы начинаем с импорта необходимых нам пакетов. В нашем случае нам нужен только пакет «fpdf».
Затем мы создаем новый PDF-документ с помощью функции fpdf.New() и указываем свойства PDF, такие как ориентация страницы, единица измерения и размер.
Далее мы добавляем новую страницу с помощью функции AddPage().
Затем мы приступаем к установке шрифта и размера документа с помощью функции SetFont(). Мы также добавляем прямоугольную область, также известную как ячейка, с помощью функции Cell() для отображения текста.
Наконец, мы генерируем PDF-файл и сохраняем его с помощью метода OutputFileAndClose().
Добавьте изображения
Мы также можем добавить поддержку изображений, как показано в следующем примере кода:
упаковка основнойИмпортировать (
'github.com/go-pdf/fpdf'
)
функция основной () {
PDF '=' fpdf . Новый ( 'П' , 'мм' , 'А4' , '' )
PDF . Аддпейдж ()
PDF . Параметры изображения ( 'linux-tux.png' , 10 , 10 , 40 , 0 , ЛОЖЬ , fpdf . Параметры изображения { Тип изображения : «ПНГ» , ЧитатьDpi : истинный }, 0 , '' )
ошибаться '=' PDF . Выходной файл и закрытие ( 'пример.pdf' )
если ошибаться '=' ноль {
паника ( ошибаться )
}
}
Это должно включать указанное изображение в документ.
Многостраничный документ с верхними и нижними колонтитулами
Пакет также поддерживает несколько страниц, включая такие функции, как верхние и нижние колонтитулы, как показано в следующем примере:
упаковка основнойИмпортировать (
'стрконв' // Импортируем пакет strconv
'github.com/go-pdf/fpdf'
)
функция заголовок ( PDF * fpdf . Fpdf ) {
PDF . SetFont ( 'Ариал' , 'Б' , 12 )
PDF . Клетка ( 0 , 10 , 'Заголовок страницы' )
PDF . Лн ( двадцать )
}
функция нижний колонтитул ( PDF * fpdf . Fpdf ) {
PDF . SetY ( - пятнадцать )
PDF . SetFont ( 'Ариал' , 'Я' , 8 )
PDF . Клетка ( 0 , 10 , 'Страница ' + стрконв . утонул ( PDF . Номер страницы ()))
}
функция основной () {
PDF '=' fpdf . Новый ( 'П' , 'мм' , 'А4' , '' )
PDF . SetHeaderFunc ( функция () { заголовок ( PDF ) })
PDF . SetFooterFunc ( функция () { нижний колонтитул ( PDF ) })
PDF . Аддпейдж ()
PDF . SetFont ( 'Ариал' , '' , 12 )
для я '=' 0 ; я < 40 ; я ++ {
PDF . Клетка ( 0 , 10 , «Печать номера строки» + стрконв . утонул ( я ))
PDF . Лн ( 12 )
}
PDF . Выходной файл и закрытие ( 'многостраничный.pdf' )
}
В этом случае мы определяем функции верхнего и нижнего колонтитула для установки содержимого этих разделов PDF-файла.
Затем мы используем SetHeaderFunc и SetFooterFunc, чтобы указать функции в качестве верхнего и нижнего колонтитула документа.
Наконец, мы используем цикл для создания нескольких строк текста, в результате чего получается несколько страниц. Полученный PDF-файл выглядит следующим образом:
Вот оно!
Заключение
В этом уроке мы узнали много нового о создании PDF-файлов в Go с использованием пакета «fpdf». Этот пакет включает в себя множество инструментов и функций для создания PDF-файлов. Проверьте документацию, чтобы узнать больше.