Go API pro vytváření a zpracování dokumentů PDF
Open Source Go Library, která vývojářům umožňuje vytvářet, upravovat, manipulovat a převádět dokumenty PDF.
Unipdf je otevřená knihovna Source Go, která snadno zvládne všechny vaše dotazy týkající se vytváření a manipulace s dokumenty PDF. Knihovna je dostupná pod duální licencí, kde lze licenci AGPL použít pro vývoj softwaru s otevřeným zdrojovým kódem. Knihovna poskytuje kompletní podporu pro generování PDF dokumentů s vysokou úrovní textu, kreseb a obrázků.
Knihovna unipdf s otevřeným zdrojovým kódem podporuje několik běžných i pokročilých funkcí pro zpracování a optimalizaci dokumentů PDF, jako je vytváření zpráv ve formátu PDF, generování zpráv ve formátu PDF, vytváření faktur, vytváření a zpracování odstavců, slučování a rozdělování stránek PDF, otáčení stránek, extrahování textu z Soubory PDF, export PDF do CSV, převod obrázků do PDF, komprimace a optimalizace PDF, vodoznakové soubory PDF, podpora složených písem (znaky Unicode), digitální podpisy a mnoho dalších.
.
Začínáme s unipdf
Chcete-li nainstalovat unipdf do vašeho systému, spusťte následující příkaz.
Nainstalujte gofpdf přes GitHub
go get github.com/unidoc/unipdf/v3
Nejnovější aktualizaci naleznete na stránce vydání produktu.
Vygenerujte zprávu ve formátu PDF prostřednictvím rozhraní Go API
Open source unipdf API poskytuje vývojářům možnost vytvářet sestavy PDF v rámci jejich vlastních aplikací Go. Knihovna umožňuje vývojářům efektivně pracovat s dokumenty PDF a obsahuje podporu pro snadné přidávání obrázků, tabulek, záhlaví, zápatí a mnohem více do vašich sestav PDF. Můžete také umístit dynamický obsah do svých sestav PDF pomocí několika řádků kódu.
Převeďte soubor PDF na CSV pomocí rozhraní Go API
Knihovna unipdf umožňuje vývojářům softwaru převádět soubory PDF do formátů souborů CSV v rámci jejich vlastních aplikací Go. Převaděče PDF do Excelu jsou velmi užitečným nástrojem pro obchodní a výzkumné instituce. Velmi snadno se používá a poskytuje možnost extrahovat TextMarks z PDF a seskupit je do slov, řádků a sloupců pro extrakci dat CSV.
Vložte obrázky do PDF
Open source unipdf API dává softwarovým programátorům možnost přidávat obrázky dle vlastního výběru do PDF dokumentů uvnitř aplikací GO. Usnadňuje práci vývojářů při vkládání obrázků do dokumentu PDF, aniž by se museli starat o souřadnice. Stačí zadat cestu a velikost obrázku, aniž byste se museli starat o souřadnice. Knihovna obsahuje podporu pro oblíbené obrazové formáty jako JPEG, PNG, GIF, TIFF a další.
// 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
}
Přidejte heslo do dokumentů PDF
Bezplatné unipdf API dává vývojářům možnost chránit své PDF dokumenty použitím hesla pomocí příkazů Go. Uživatelům můžete omezit otevírání a čtení dokumentů PDF. Můžete také nastavit heslo vlastníka pro udělení plného přístupu k souboru PDF. Kromě toho můžete uživatelům také omezit provádění jakýchkoli změn v určitých částech dokumentů 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
}