Создать и управлять PDF документами через Free Go API
Go Library, которая дает разработчикам программного обеспечения возможность создавать, редактировать, конвертировать и манипулировать PDF документами.
Gofpdf — это библиотека Go с открытым исходным кодом, которая дает разработчикам программного обеспечения возможность создавать и изменять PDF-файлы без каких-либо внешних зависимостей. Библиотека поддерживает создание документов PDF и работу с ними с большим количеством текста, рисунков и изображений. Библиотека полностью поддерживает шрифты UTF-8 TrueType и языки с письмом справа налево. Он поддерживает автоматический перевод рун UTF-8 в кодировку кодовой страницы для языков, содержащих менее 256 глифов.
PDF — один из наиболее часто используемых в мире форматов файлов для хранения и обмена информацией по всему миру. Библиотека gofpdf поддерживает несколько важных функций для обработки документов PDF, таких как создание и редактирование документов PDF, вставка изображения (изображения JPEG, PNG, GIF, TIFF и SVG) в PDF, вставка новых страниц в существующий файл PDF, заголовок страницы. и управление нижним колонтитулом, автоматические разрывы страниц, поддержка внутренних и внешних ссылок, разрывы строк и выравнивание текста и многое другое.
Начало с gofpdf
Рекомендованный способ установки gofpdf - использование GitHub. Для установки gofpdf в вашей системе, пожалуйста, выполните следующую команду
Установите gofpdf через GitHub
go get https://github.com/jung-kurt/gofpdf
Для последнего обновления, пожалуйста, выполните следующую команду:
go get -u -v github.com/jung-kurt/gofpdf/...
PDF Создание и обработка через Go Library
Библиотека gofpdf предоставляет функциональные возможности для создания PDF-документов, а также редактирования в приложениях Go. Он позволяет создавать PDF-документы с высоким уровнем поддержки текста, рисунков и изображений. После создания документа вы можете легко включать текст и изображения, вставлять новые страницы, слои, шаблоны, штрих-коды и т. д. с помощью всего пары простых команд. Вы также можете создать PDF-документ с несколькими столбцами или в ландшафтном режиме с изображениями.
Создание простого PDF файла через Go API
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.AddPage()
pdf.SetFont("Arial", "B", 16)
pdf.Cell(40, 10, "Hello, world")
err := pdf.OutputFileAndClose("hello.pdf")
Дополнительные изображения PDF через Go API
Изображения очень важны для представления более полной и более полной информации. Это всегда добавляет большую ценность к части контента. Open source gofpdf API позволяет программистам вставлять изображения по своему выбору в PDF файлов внутри своих приложений. Он обеспечивает поддержку очень популярных форматов изображений, таких как JPEG, NG, GIF, TIFF, и базовых изображений только для SVG. Вы также можете изменить изображения в соответствии с вашими потребностями.
Добавляйте изображения на страницы PDF через Go API
func ExampleFpdf_Image() {
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.AddPage()
pdf.SetFont("Arial", "", 11)
pdf.Image(example.ImageFile("logo.png"), 10, 10, 30, 0, false, "", 0, "")
pdf.Text(50, 20, "logo.png")
pdf.Image(example.ImageFile("logo.gif"), 10, 40, 30, 0, false, "", 0, "")
pdf.Text(50, 50, "logo.gif")
pdf.Image(example.ImageFile("logo-gray.png"), 10, 70, 30, 0, false, "", 0, "")
pdf.Text(50, 80, "logo-gray.png")
pdf.Image(example.ImageFile("logo-rgb.png"), 10, 100, 30, 0, false, "", 0, "")
pdf.Text(50, 110, "logo-rgb.png")
pdf.Image(example.ImageFile("logo.jpg"), 10, 130, 30, 0, false, "", 0, "")
pdf.Text(50, 140, "logo.jpg")
fileStr := example.Filename("Fpdf_Image")
err := pdf.OutputFileAndClose(fileStr)
example.Summary(err, fileStr)
// Output:
// Successfully generated pdf/Fpdf_Image.pdf
}
Добавление уровней в PDF документов
Использование слоев в PDF документах дает вам возможность лучше организовывать и отображать контент. Эта функция позволяет пользователям делать контент видимым или невидимым или добавлять детали к диаграммам в PDF документах. Библиотека gofpdf полностью поддерживает добавление и управление слоями внутри PDF файлов. Вы можете легко определить слои, контролировать видимость слоя интерактивной или открыть сковороду слоя в PDF-ти зрителях.
Просмотр и добавление уровней в PDF файла внутри Go Apps
func ExampleFpdf_AddLayer() {
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.AddPage()
pdf.SetFont("Arial", "", 15)
pdf.Write(8, "This line doesn't belong to any layer.\n")
// Define layers
l1 := pdf.AddLayer("Layer 1", true)
l2 := pdf.AddLayer("Layer 2", true)
// Open layer pane in PDF viewer
pdf.OpenLayerPane()
// First layer
pdf.BeginLayer(l1)
pdf.Write(8, "This line belongs to layer 1.\n")
pdf.EndLayer()
// Second layer
pdf.BeginLayer(l2)
pdf.Write(8, "This line belongs to layer 2.\n")
pdf.EndLayer()
// First layer again
pdf.BeginLayer(l1)
pdf.Write(8, "This line belongs to layer 1 again.\n")
pdf.EndLayer()
fileStr := example.Filename("Fpdf_AddLayer")
err := pdf.OutputFileAndClose(fileStr)
example.Summary(err, fileStr)
// Output:
// Successfully generated pdf/Fpdf_AddLayer.pdf
}
Добавить Лидеры, Перерывы и Страницы к PDFs
документы внутри своих приложений Go. Заголовки и функция футера дают каждому PDF документа личное прикосновение, применяя номера страниц, текстовые этикетки или изображения к PDF файлам. Библиотека полностью поддерживает создание, редактирование и управление заголовками и ногой внутри ваших PDF документов. Вы также можете использовать такие функции, как линейное обоснование, текстовые сообщения и перерывы страниц и т.д.
Лидеры и дополнения к PDF через Go
func ExampleFpdf_AddPage() {
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.SetTopMargin(30)
pdf.SetHeaderFuncMode(func() {
pdf.Image(example.ImageFile("logo.png"), 10, 6, 30, 0, false, "", 0, "")
pdf.SetY(5)
pdf.SetFont("Arial", "B", 15)
pdf.Cell(80, 0, "")
pdf.CellFormat(30, 10, "Title", "1", 0, "C", false, 0, "")
pdf.Ln(20)
}, true)
pdf.SetFooterFunc(func() {
pdf.SetY(-15)
pdf.SetFont("Arial", "I", 8)
pdf.CellFormat(0, 10, fmt.Sprintf("Page %d/{nb}", pdf.PageNo()),
"", 0, "C", false, 0, "")
})
pdf.AliasNbPages("")
pdf.AddPage()
pdf.SetFont("Times", "", 12)
for j := 1; j <= 40; j++ {
pdf.CellFormat(0, 10, fmt.Sprintf("Printing line number %d", j),
"", 1, "", false, 0, "")
}
fileStr := example.Filename("Fpdf_AddPage")
err := pdf.OutputFileAndClose(fileStr)
example.Summary(err, fileStr)
// Output:
// Successfully generated pdf/Fpdf_AddPage.pdf
}