Gå til API til oprettelse og behandling af PDF-dokumenter
Open Source Go-bibliotek, der giver udviklere muligheden for at oprette, redigere, manipulere og konvertere PDF-dokumenter.
unipdf er et Open Source Go-bibliotek, der nemt kan håndtere alle dine forespørgsler relateret til oprettelse og manipulation af PDF-dokumenter. Biblioteket er tilgængeligt under dobbeltlicens, hvor AGPL-licens kan bruges til udvikling af open source-software. Biblioteket giver komplet support til generering af PDF-dokumenter med et højt niveau af tekst, tegninger og billeder.
Open source unipdf-biblioteket understøtter flere almindelige såvel som avancerede funktioner til behandling og optimering af PDF-dokumenter, såsom oprettelse af PDF-rapporter, generering af PDF-rapporter, oprettelse af fakturaer, oprettelse og håndtering af afsnit, fletning og opdeling af PDF-sider, rotering af sider, udtrækning af tekst fra PDF-filer, eksporter PDF til CSV, konverter billeder til PDF, komprimer og optimer PDF, vandmærke PDF-filer, understøttelse af sammensatte skrifttyper (Unicode-tegn), digitale signaturer og mange flere.
.
Kom godt i gang med unipdf
For at installere unipdf på dit system skal du køre følgende kommando.
Installer gofpdf via GitHub
go get github.com/unidoc/unipdf/v3
Besøg produkt udgivelsessiden for at få den seneste opdatering.
Generer PDF-rapport via Go API
Open source unipdf API giver udviklere mulighed for at oprette PDF-rapporter i deres egne Go-applikationer. Biblioteket giver udviklere mulighed for effektivt at arbejde med PDF-dokumenter og har inkluderet understøttelse for nemt at tilføje billeder, tabeller, sidehoveder, sidefødder og meget mere i dine PDF-rapporter. Du kan også placere dynamisk indhold i dine PDF-rapporter med blot et par linjer kode.
Konverter PDF-fil til CSV via Go API
unipdf-biblioteket gør det muligt for softwareudviklere at konvertere PDF-filer til CSV-filformater i deres egne Go-applikationer. PDF til Excel-konvertere er et meget nyttigt værktøj til erhvervs- og forskningsinstitutioner. Det er meget nemt at bruge og giver mulighed for at udtrække TextMarks fra PDF og gruppere dem i ord, rækker og kolonner til CSV-dataudtrækning.
Indsæt billeder i PDF
Open source unipdf API giver softwareprogrammører mulighed for at tilføje billeder efter eget valg til PDF-dokumenter i GO-applikationer. Det gør udvikleropgaver lettere, mens billeder placeres i PDF-dokumentet uden at skulle bekymre dig om koordinater. Du skal blot angive billedstien og størrelsen uden at bekymre dig om koordinaterne. Biblioteket har inkluderet understøttelse af populære billedformater som JPEG, PNG, GIF, TIFF og mere.
// 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
}
Tilføj adgangskode til PDF-dokumenter
Den gratis unipdf API giver udviklere mulighed for at beskytte deres PDF-dokumenter ved at anvende en adgangskode til dem ved hjælp af Go-kommandoer. Du kan begrænse brugere i at åbne og læse PDF-dokumenter. Du kan også indstille ejeradgangskoden for at give fuld adgang til PDF-filen. Desuden kan du også begrænse brugere i at foretage nogen form for ændringer i visse dele af PDF-dokumenter.
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
}