1. Продукти
  2.   PDF
  3.   GO
  4.   unipdf  
 
  

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

Бібліотека Go з відкритим кодом, яка дає розробникам можливість створювати, редагувати, маніпулювати та конвертувати PDF-документи.

unipdf — це відкрита бібліотека Source 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 є дуже корисним інструментом для бізнесу та дослідницьких установ. Він дуже простий у використанні та надає можливість видобувати текстові позначки з 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
}
  
 Українська