Česta pitanja
Licencije i otvoreni izvorni sadržaj
Koja je licenca za FOSS for Go?
Aspose.PDF FOSS for Go is released under the MIT licenca.Potpuni tekst dozvole je: uključen u repozitorij na: Github.com/aspose-pdf-foss/asspose - pdf- foss-for-go. Ne zahtijeva se registracija, aktiviranje datoteke ili ključeva za vrijeme pokretanja.
Mogu li koristiti Aspose.PDF FOSS za Go u komercijalnom proizvodu?
Da. MIT licenca dopušta neograničenu komercijalnu upotrebu, modifikaciju, distribuciju i privatnu uporabu. Morate uključiti upozorenje o autorskim pravima i tekst licence MIT u svim kopijama ili značajnim dijelovima softvera.
Postoji li i poslovna verzija?
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 s poduzetničkom podrškom, proširenim formatom pokrivanja i integracijom u oblak.
Instalacija i zahtjevi
Kako instalirati FOSS za Go?
Dodajte modul u svoj Go projekt:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goUvezite ga s aliasom u izvorne datoteke:
import pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"Koja je Go verzija potrebna?
Potreban je 1.24 ili noviji. go version.
Postoje li izvorne ili sustavne ovisnosti o knjižnici?
FOSS for Go je čisto-Go implementacija bez C, C++, ili CGo ovisnosti. Ne zahtijeva nikakve sustavne knjižnice, PDF pregledače niti vanjske alate.
Upotreba API-a
Kako otvoriti postojeći PDF?
Upotreba: pdf.Open za standardne PDF-ove i pdf.OpenWithPassword za datoteke koje su zaštićene lozinkom:
doc, err := pdf.Open("document.pdf")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())Kako podijeliti PDF na pojedinačne stranice?
Document.Split vraća a []*Document, jedan po stranici:
doc, _ := pdf.Open("report.pdf")
pages, _ := doc.Split()
for i, p := range pages {
p.Save(fmt.Sprintf("page_%03d.pdf", i+1))
}Kako spajati više PDF-ova?
Document.Append U ovom slučaju, u skladu s člankom 21. stavkom 1. točkom (a) i podstavkom 2.:
base, _ := pdf.Open("part1.pdf")
part2, _ := pdf.Open("part2.pdf")
base.Append(part2)
base.Save("combined.pdf")Kako ispunjavam polje AcroForm?
Upotreba: Document.Form().Field(name) i utvrditi oblik betona:
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")Podržani tipovi polja: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ButtonField.
Kako da dodam stavke?
Stvoriti OutlineItemCollection i postaviti: 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")Sigurnost i šifriranje
Kako zaštititi PDF?
Upotreba: Document.SetEncryption s: EncryptionOptions Structuralni znak za korištenje zaštite lozinke i oznake dozvola. Upišite korisničku lozicu za otvaranje datoteke i vlasnikovu ložicu u svrhu prava na izmjenu:
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")Koje su algoritmi šifriranja podržani?
Tri algoritma su dostupni putem: EncryptionOptions.Algorithm:
| Algoritam za upravljanje: | Stalno | Standardni sustav |
|---|---|---|
| AES-128 | EncryptionAlgAES128 (predviđeno) | ISO 32000-1 |
| AES-256 | EncryptionAlgAES256 | ISO 32000-2 (izlaz PDF 2.0) |
| RC4-128 | EncryptionAlgRC4_128 | Nasljeđe |
Kako otvorim datoteku koja je zaštićena lozinkom?
Upotreba: pdf.OpenWithPassword Kada datoteka zahtijeva autentifikaciju. Prenosite korisničku lozinku kao drugi argument; vraća normalnu *Document Nakon uspješnog dešifriranja:
doc, err := pdf.OpenWithPassword("protected.pdf", "userpass")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())Kako ukloniti šifriranje iz PDF-a?
Zovi me. Document.RemoveEncryption Nakon što otvorite datoteku s ispravnom lozinkom, sačuvati rezultat za pisanje nekriptirane kopije:
doc, _ := pdf.OpenWithPassword("protected.pdf", "userpass")
doc.RemoveEncryption()
doc.Save("decrypted.pdf")Izvodnja i tekst
Kako da prevedem PDF stranicu u sliku?
Koristite jednu od vrsta uređaja: BmpDevice, PngDevice, JpegDevice, TiffDevice,ili GifDevice.Ugraditi uređaj s: Resolution vrijednost i pozvati odgovarajuću Render* metoda s io.Writer i u članku 1. 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})Kako mogu tražiti tekst u PDF-u?
Zovi me. Document.SearchText s nizom upita i SearchOptions.Rezultat je: rezovica TextMatch vrijednosti svaka sadrži odgovarajući tekst, indeks stranice i svoj popis. Ograničavajući okvir.
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)
}Kako da ispljesim obrazac?
Zovi me. Document.Flatten Nakon ispunjenja ili pregleda obrazac. metoda peče sve polja Vrednosti u grafičke stranice i uklanjanje interaktivnih polja obrasca:
doc, _ := pdf.Open("filled.pdf")
doc.Flatten()
doc.Save("flat.pdf")Poznata ograničenja
Podržavaju li se sve PDF funkcije?
Biblioteka pokriva najčešće operacije upravljanja dokumentima: otvaranje, kreiranje, pohranjivanje, podjela, spajanje, ekstrakcija stranica, enkripcija, AcroForms, tabele, folding, bilješke i tekst. Napredne funkcije kao što su digitalni potpis, 3D sadržaj i PDF/A konverzija možda nisu u potpunosti implementirane u trenutnom izdanju. Provjerite stanje sadašnje funkcionalnosti u repozitoriju README .
Što se događa ako koristim tvrdnju tipa polja koja ne odgovara?
U ovom slučaju, u skladu s člankom 72. stavkom 1. točkom (a) ovog članka. Field Ako se ne poklapa s stvarnim tipom polja, paničariće. Upotreba: pdf.FieldType(f) za provjeru tipa prije tvrdnje ili korištenje prekidača tipa:
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())
}
}