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

Generacia Pdf V Golang Pdf



Портативный формат документов или сокращенно PDF — невероятно популярный и универсальный формат файлов, используемый в документах. PDF поддерживается практически на всех платформах и системах, что делает его отличным выбором для обмена документами.

Когда дело доходит до разработчиков, мы можем столкнуться со случаями, когда нам необходимо программно генерировать PDF-документы на основе входных данных. Например, у вас может быть веб-приложение, которое генерирует счета в формате PDF на основе информации о покупках из базы данных.

К счастью, экосистема Go огромна, и в ней есть инструменты и функции, позволяющие легко создавать PDF-файлы, не создавая их с нуля.







В этом уроке мы научимся использовать пакет «fpdf», который предоставляет мощные функции для создания PDF-документов на основе входных данных.



Настройка среды

Прежде чем продолжить, убедитесь, что у вас установлены следующие инструменты:



  1. Убедитесь, что в вашей системе установлена ​​последняя версия компилятора Go.
  2. Редактор кода

Установить Гоф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-файлов. Проверьте документацию, чтобы узнать больше.