1. Товары
  2.   PDF
  3.   GO
  4.   unipdf  
 
  

Go API для создания и обработки PDF-документов 

Библиотека Go с открытым исходным кодом, которая дает разработчикам возможность создавать, редактировать, манипулировать и конвертировать PDF-документы.

unipdf — это библиотека Go с открытым исходным кодом, которая может легко обрабатывать все ваши запросы, связанные с созданием и обработкой PDF-документов. Библиотека доступна по двойной лицензии, где лицензия AGPL может использоваться для разработки программного обеспечения с открытым исходным кодом. Библиотека обеспечивает полную поддержку создания PDF-документов с большим количеством текста, рисунков и изображений.

Библиотека unipdf с открытым исходным кодом поддерживает несколько общих, а также расширенных функций для обработки и оптимизации PDF-документов, таких как создание отчетов в формате PDF, генерация отчетов в формате PDF, создание счетов-фактур, создание и обработка абзацев, объединение и разделение страниц PDF, поворот страниц, извлечение текста из PDF-файлы, экспорт PDF в CSV, преобразование изображений в PDF, сжатие и оптимизация PDF-файлов, водяные знаки в PDF-файлах, поддержка составных шрифтов (символов Unicode), цифровые подписи и многое другое.

.

Previous Next

Начало работы с unipdf

Чтобы установить unipdf в вашей системе, выполните следующую команду. 

Установите gofpdf через GitHub

go get github.com/unidoc/unipdf/v3

Чтобы получить последние обновления, посетите страницу выпусков продукта .

Создание отчета в формате PDF через Go API

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

Преобразование PDF-файла в CSV через Go API

Библиотека unipdf позволяет разработчикам программного обеспечения преобразовывать файлы PDF в форматы файлов CSV в своих собственных приложениях Go. Преобразователи PDF в Excel — очень полезный инструмент для бизнеса и исследовательских учреждений. Он очень прост в использовании и предоставляет возможность извлекать TextMarks из PDF и группировать их вместе в слова, строки и столбцы для извлечения данных CSV.

Вставить изображения в PDF

API unipdf с открытым исходным кодом дает программистам возможность добавлять изображения по своему выбору в документы PDF внутри приложений GO. Это упрощает работу разработчика при размещении изображений в документе PDF, не беспокоясь о координатах. Вам просто нужно указать путь и размер изображения, не беспокоясь о координатах. В библиотеку включена поддержка популярных форматов изображений, таких как JPEG, PNG, GIF, TIFF и других.

 // Images to PDF.
func imagesToPdf(inputPaths []string, outputPath string) error {
	c := creator.New()
	for _, imgPath := range inputPaths {
		common.Log.Debug("Image: %s", imgPath)
		img, err := c.NewImageFromFile(imgPath)
		if err != nil {
			common.Log.Debug("Error loading image: %v", err)
			return err
		}
		img.ScaleToWidth(612.0)
		// Use page width of 612 points, and calculate the height proportionally based on the image.
		// Standard PPI is 72 points per inch, thus a width of 8.5"
		height := 612.0 * img.Height() / img.Width()
		c.SetPageSize(creator.PageSize{612, height})
		c.NewPage()
		img.SetPos(0, 0)
		_ = c.Draw(img)
	}
	err := c.WriteToFile(outputPath)
	return err
}
  

Добавить пароль к PDF-документам

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

func protectPdf(inputPath string, outputPath string, userPassword, ownerPassword string) error {
	permissions := security.PermPrinting | // Allow printing with low quality
		security.PermFullPrintQuality |
		security.PermModify | // Allow modifications.
		security.PermAnnotate | // Allow annotations.
		security.PermFillForms |
		security.PermRotateInsert | // Allow modifying page order, rotating pages etc.
		security.PermExtractGraphics | // Allow extracting graphics.
		security.PermDisabilityExtract // Allow extracting graphics (accessibility)
	encryptOptions := &model.EncryptOptions{
		Permissions: permissions,
	}
	f, err := os.Open(inputPath)
	if err != nil {
		return err
	}
	defer f.Close()
	pdfReader, err := model.NewPdfReader(f)
	if err != nil {
		return err
	}
	isEncrypted, err := pdfReader.IsEncrypted()
	if err != nil {
		return err
	}
	if isEncrypted {
		return fmt.Errorf("The PDF is already locked (need to unlock first)")
	}
	// Generate a PdfWriter instance from existing PdfReader.
	pdfWriter, err := pdfReader.ToWriter(nil)
	if err != nil {
		return err
	}
	// Encrypt document before writing to file.
	err = pdfWriter.Encrypt([]byte(userPassword), []byte(ownerPassword), encryptOptions)
	if err != nil {
		return err
	}
	// Write to file.
	err = pdfWriter.WriteToFile(outputPath)
	return err
}
  
 Русский