Întrebări frecvente

Întrebări frecvente

Licențiere și open source

Care este licenţa pentru FOSS for Go?

Aspose.PDF FOSS for Go is released under the Licență MIT.Textul complet al licenţei este: incluse în repositoriu la data de 15 ianuarie 2014; github.com/aspose-pdf-foss/asspose - pdf-Foss-for-go. Nu este necesară nicio înregistrare, fișier de activare sau cheie de rulare.

Pot folosi Aspose.PDF FOSS pentru Go într-un produs comercial?

Da. Licența MIT permite utilizarea comercială, modificarea, distribuirea și folosirea privată nelimitate. Trebuie să includeți notificarea de drepturi de autor și textul licenței MIT în toate copiile sau părțile substanțiale ale software-ului.

Există o versiune de întreprindere?

Aspose.PDF FOSS is the open-source, MIT-licensed edition. A separate commercial Aspose.PDF product is available as the Aspose.PDF — Enterprise Product Family cu suport pentru întreprinderi, acoperire extinsă a formatelor și integrare în cloud.


Instalare și cerințe

Cum instalați Aspose.PDF FOSS pentru Go?

Adăugați modulul la proiectul Go:

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

Importă-l cu un alias în fişierele surse:

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

Ce versiune Go este necesară?

Este necesar să mergeţi la versiunea 1.24 sau mai recentă. Verificaţi-vă versiunile cu: go version.

Există dependențe de bibliotecă nativă sau sistem?

Nu. Aspose.PDF FOSS for Go este o implementare pur-Go fără dependențe C, C++, sau CGo. Nu necesită biblioteci de sistem, vizualizatori PDF sau instrumente externe.


Folosirea focului

Cum deschid un PDF existent?

Utilizare: pdf.Open pentru fișierele PDF standard și pdf.OpenWithPassword pentru fișierele protejate prin parolă:

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

Cum împart un PDF în pagini individuale?

Document.Split returnează un []*Document, una pe pagină:

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

Cum am merge mai multe PDF-uri?

Document.Append se realizează o fuziune a unui document sursă în loc:

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

Cum completez un câmp AcroForm?

Utilizare: Document.Form().Field(name) și să se afirme tipul de beton:

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")

Tipuri de câmpuri suportate: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ButtonField.

Cum adaug bookmark-uri?

Crearea unui OutlineItemCollection și setarea a Destination:

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")

Securitate și criptare

Cum protejez un PDF cu parola?

Utilizare: Document.SetEncryption cu o EncryptionOptions struct pentru a aplica semne de protecție și permisiune prin parolă. Indicați o parollă utilizator pentru deschiderea fișierului și o password proprietar pentru drepturile de modificare:

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")

Ce algoritmi de criptare sunt susținuți?

Trei algoritmi sunt disponibile prin intermediul: EncryptionOptions.Algorithm:

AlgoritmConstanţăStandardul
AES-128EncryptionAlgAES128 (default)ISO 32000-1
AES-256EncryptionAlgAES256ISO 32000-2 (PDF 2.0 ieșire)
RC4-128EncryptionAlgRC4_128Moştenire

Cum deschid un fişier protejat cu parolă?

Utilizare: pdf.OpenWithPassword când fișierul necesită autentificare. Treceți parola de utilizator ca al doilea argument; returnează un normal *Document după ce decriptarea a avut succes:

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

Cum elimin criptarea dintr-un PDF?

Sună-mă. Document.RemoveEncryption după deschiderea fișierului cu parola corectă. Salvați rezultatul pentru a scrie o copie necriptată:

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

Rendering și text

Cum transforme o pagină PDF într-o imagine?

Utilizați unul dintre tipurile de dispozitive: BmpDevice, PngDevice, JpegDevice, TiffDevice, sau GifDevice.Construiţi dispozitivul cu un Resolution valoarea și apelați corespunzător Render* metodă cu o io.Writer și de: 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})

Cum caut textul într-un PDF?

Sună-mă. Document.SearchText cu o șir de întrebare și SearchOptions.Rezultatul este un felie de TextMatch valorile fiecare conține textul corespunzător, indexul paginii și indicele de pagina. cutie de limitare.

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)
}

Cum aplatizez un formular?

Sună-mă. Document.Flatten după completarea sau revizuirea unui formular. Metoda coacă toate câmpurile valorile în grafică pagină și eliminarea câmpurilor de formular interactiv:

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

Limitări cunoscute

Sunt suportate toate caracteristicile PDF?

Biblioteca acoperă cele mai comune operațiuni de gestionare a documentelor: deschidere, crearea, salvare, diviziune, fuzionare, extracție pagină, criptare , AcroForms, tabele, marcaje, anotații, rendering la imagine, căutare text și platirea formularului. Features avansate cum ar fi semnăturile digitale, conținutul 3D și conversia PDF / A pot să nu fie pe deplin implementate în actuala versiune. Verificați repositoriul README pentru statutul caracteristicilor curente.

Ce se întâmplă dacă folosesc o afirmație de tip câmp care nu corespunde?

O afirmație de tip privind: Field care nu se potriveşte cu tipul de câmp real va intra în panică. Utilizare: pdf.FieldType(f) să inspecteze tipul înainte de a afirma sau să utilizeze un comutator de tip:

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())
    }
}
 Română