Veelgestelde vragen

Veelgestelde vragen

Licenties en Open Source

Wat is de licentie voor Aspose.PDF FOSS for Go?

Aspose.PDF FOSS voor Go wordt uitgebracht onder de MIT-licentie. De volledige licentietekst is opgenomen in de repository op github.com/aspose-pdf-foss/aspose-pdf-foss-for-go. Geen registratie, activatiebestand of runtime-sleutel is vereist.

Kan ik Aspose.PDF FOSS for Go gebruiken in een commercieel product?

Ja. De MIT License staat onbeperkt commercieel gebruik, wijziging, distributie en privégebruik toe. Je moet de copyright-vermelding en de MIT License-tekst opnemen in alle kopieën of substantiële delen van de software.

Is er een enterprise-versie?

Aspose.PDF FOSS is de open-source, MIT-gelicenseerde editie. Een apart commercieel Aspose.PDF product is beschikbaar als de Aspose.PDF — Enterprise Product Family met enterprise-ondersteuning, uitgebreide formatondersteuning en cloud-integratie.


Installatie en vereisten

Hoe installeer ik Aspose.PDF FOSS voor Go?

Voeg de module toe aan je Go-project:

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go

Importeer het met een alias in je bronbestanden:

import pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"

Welke Go-versie is vereist?

Go 1.24 of hoger is vereist. Controleer je versie met go version.

Zijn er native- of systeembibliotheekafhankelijkheden?

Nee. Aspose.PDF FOSS voor Go is een pure-Go implementatie zonder C, C++ of CGo-afhankelijkheden. Het vereist geen systeem-bibliotheken, PDF-viewers of externe tools.


API Usage

Hoe open ik een bestaande PDF?

Gebruik pdf.Open voor standaard-PDF’s en pdf.OpenWithPassword voor wachtwoord-beveiligde bestanden:

doc, err := pdf.Open("document.pdf")
if err != nil {
    panic(err)
}
fmt.Println(doc.PageCount())

Hoe splits ik een PDF in afzonderlijke pagina’s?

Document.Split retourneert een []*Document, één per pagina:

doc, _ := pdf.Open("report.pdf")
pages, _ := doc.Split()
for i, p := range pages {
    p.Save(fmt.Sprintf("page_%03d.pdf", i+1))
}

Hoe voeg ik meerdere PDF’s samen?

Document.Append voegt een bron-document in-place samen:

base, _ := pdf.Open("part1.pdf")
part2, _ := pdf.Open("part2.pdf")
base.Append(part2)
base.Save("combined.pdf")

Hoe vul ik een AcroForm veld?

Gebruik Document.Form().Field(name) en assert het concrete type:

doc, _ := pdf.Open("form.pdf")
text := doc.Form().Field("customer_name").(*pdf.TextBoxField)
text.SetValue("Jane Doe")

check := doc.Form().Field("agree").(*pdf.CheckboxField)
check.SetChecked(true)

doc.Save("form_filled.pdf")

Ondersteunde veldtypes: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ButtonField.

Hoe voeg ik bladwijzers toe?

Maak een OutlineItemCollection aan en stel een Destination in:

doc, _ := pdf.Open("manual.pdf")
page, _ := doc.Page(1)

bm := pdf.NewOutlineItemCollection(doc)
bm.SetTitle("Chapter 1")
bm.SetDestination(pdf.NewDestinationXYZ(page, 0, 800, 1.0))
doc.Outlines().Add(bm)
doc.Save("manual_with_bookmarks.pdf")

Beveiliging en encryptie

Hoe bescherm ik een PDF met een wachtwoord?

Gebruik Document.SetEncryption met een EncryptionOptions struct om wachtwoordbeveiliging en permissievlaggen toe te passen. Geef een gebruikerswachtwoord op voor het openen van het bestand en een eigenarenwachtwoord voor wijzigingsrechten:

doc, _ := pdf.Open("doc.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
    UserPassword:  "userpass",
    OwnerPassword: "ownerpass",
    Permissions:   &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("doc_protected.pdf")

Welke encryptie-algoritmen worden ondersteund?

Drie algoritmen zijn beschikbaar via EncryptionOptions.Algorithm:

AlgorithmConstantStandard
AES-128EncryptionAlgAES128 (standaard)ISO 32000-1
AES-256EncryptionAlgAES256ISO 32000-2 (PDF 2.0-uitvoer)
RC4-128EncryptionAlgRC4_128Legacy

Hoe open ik een wachtwoordbeveiligd bestand?

Gebruik pdf.OpenWithPassword wanneer het bestand authenticatie vereist. Geef het gebruikerswachtwoord door als tweede argument; het retourneert een normale *Document zodra de decryptie slaagt:

doc, err := pdf.OpenWithPassword("protected.pdf", "userpass")
if err != nil {
    panic(err)
}
fmt.Println(doc.PageCount())

Hoe verwijder ik encryptie van een PDF?

Roep Document.RemoveEncryption aan na het openen van het bestand met het juiste wachtwoord. Sla het resultaat op om een onversleutelde kopie te schrijven:

doc, _ := pdf.OpenWithPassword("protected.pdf", "userpass")
doc.RemoveEncryption()
doc.Save("decrypted.pdf")

Renderen en tekst

Hoe render ik een PDF-pagina naar een afbeelding?

Gebruik een van de apparaattypen: BmpDevice, PngDevice, JpegDevice, TiffDevice of GifDevice. Maak het apparaat aan met een Resolution waarde en roep de bijbehorende Render* methode aan met een io.Writer en RenderOptions:

doc, _ := pdf.Open("report.pdf")
page, _ := doc.Page(1)
f, _ := os.Create("page1.png")
defer f.Close()
page.RenderPNG(f, pdf.RenderOptions{DPI: 150})

Hoe zoek ik naar tekst in een PDF?

Roep Document.SearchText aan met een query-string en SearchOptions. Het resultaat is een slice van TextMatch waarden — elk bevat de gevonden tekst, de paginanummer en de begrenzingsbox.

doc, _ := pdf.Open("doc.pdf")
matches, _ := doc.SearchText("total", pdf.SearchOptions{CaseInsensitive: true})
for _, m := range matches {
    fmt.Printf("page %d: %q\n", m.PageNumber, m.Text)
}

Hoe kan ik een formulier flatten?

Roep Document.Flatten aan na het invullen of controleren van een formulier. De methode verwerkt alle veldwaarden in de paginagrafische weergave en verwijdert de interactieve formuliervelden:

doc, _ := pdf.Open("filled.pdf")
doc.Flatten()
doc.Save("flat.pdf")

Bekende beperkingen

Worden alle PDF-functies ondersteund?

De bibliotheek ondersteunt de meest voorkomende documentbeheer-bewerkingen: openen, aanmaken, opslaan, splitsen, samenvoegen, pagina-extractie, encryptie, AcroForms, tabellen, bladwijzers, annotaties, renderen naar afbeelding, tekst zoeken en het flattenen van formulieren. Geavanceerde functies zoals digitale handtekeningen, 3D-inhoud en PDF/A conversie zijn mogelijk niet volledig geïmplementeerd in de huidige release. Raadpleeg de README van de repository voor de actuele functiestatus.

Wat gebeurt er als ik een veldtype-assertie gebruik die niet overeenkomt?

Een type-assertie op Field die niet overeenkomt met het daadwerkelijke veldtype zal panic veroorzaken. Gebruik pdf.FieldType(f) om het type te inspecteren voordat je assert, of gebruik een type-switch:

doc, _ := pdf.Open("form.pdf")
for _, f := range doc.Form().Fields() {
    switch v := f.(type) {
    case *pdf.TextBoxField:
        fmt.Println("text:", v.Value())
    case *pdf.CheckboxField:
        fmt.Println("checked:", v.Checked())
    }
}

Zie ook

 Nederlands