Go API за създаване и обработка на PDF документи
Библиотека Go Go с отворен код, която дава на разработчиците възможността да създават, редактират, манипулират и конвертират PDF документи.
Unipdf е отворена библиотека Source Go, която може лесно да обработва всичките ви заявки, свързани със създаването и манипулирането на PDF документи. Библиотеката се предлага под двоен лиценз, където AGPL лиценз може да се използва за разработка на софтуер с отворен код. Библиотеката осигурява пълна поддръжка за генериране на PDF документи с високо ниво на текст, чертежи и изображения.
Unipdf библиотеката с отворен код поддържа няколко общи, както и разширени функции за обработка и оптимизиране на PDF документи, като създаване на PDF отчети, генериране на PDF отчети, създаване на фактури, създаване и обработка на абзаци, обединяване и разделяне на PDF страници, завъртане на страници, извличане на текст от PDF файлове, експортиране на PDF в CSV, конвертиране на изображения в PDF, компресиране и оптимизиране на PDF, PDF файлове с водни знаци, поддръжка на съставни шрифтове (знаци Unicode), цифрови подписи и много други.
.
Първи стъпки с unipdf
За да инсталирате unipdf във вашата система, моля, изпълнете следната команда.
Инсталирайте gofpdf чрез GitHub
go get github.com/unidoc/unipdf/v3
За най-новата актуализация, моля, посетете страницата за издания на продукта .
Генерирайте PDF отчет чрез Go API
Unipdf API с отворен код предоставя на разработчиците възможността да създават PDF отчети в техните собствени Go приложения. Библиотеката позволява на разработчиците да работят ефективно с PDF документи и включва поддръжка за лесно добавяне на изображения, таблици, горни и долни колонтитули и много повече във вашите PDF отчети. Можете също така да поставите динамично съдържание във вашите PDF отчети само с няколко реда код.
Конвертирайте PDF файл в CSV чрез Go API
Библиотеката unipdf позволява на разработчиците на софтуер да конвертират PDF файлове в CSV файлови формати в техните собствени Go приложения. Преобразувателите на PDF към Excel са много полезен инструмент за бизнес и изследователски институции. Той е много лесен за използване и предоставя възможност за извличане на TextMarks от PDF и групирането им заедно в думи, редове и колони за извличане на CSV данни.
Вмъкване на изображения в PDF
Unipdf API с отворен код дава на софтуерните програмисти възможността да добавят изображения по свой избор в 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 документи
Безплатният unipdf API дава на разработчиците силата да защитават своите 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
}