Často kladené otázky
Licencování a open source
Jaká je licence pro Aspose.PDF FOSS pro Go?
Aspose.PDF FOSS pro Go je vydán pod MIT licence. Úplný text licence je zahrnut v repozitáři na github.com/aspose-pdf-foss/aspose-pdf-foss-for-go. Není vyžadována žádná registrace, aktivační soubor ani runtime klíč.
Mohu použít Aspose.PDF FOSS pro Go v komerčním produktu?
Ano. Licence MIT povoluje neomezené komerční použití, úpravy, distribuci i soukromé užití. Musíte zahrnout oznámení o autorských právech a text licence MIT do všech kopií nebo podstatných částí softwaru.
Existuje enterprise verze?
Aspose.PDF FOSS je open-source, edice pod licencí MIT. Samostatný komerční produkt Aspose.PDF je k dispozici jako Aspose.PDF — Enterprise Product Family s podnikové podporou, rozšířeným pokrytím formátů a cloudovou integrací.
Instalace a požadavky
Jak nainstalovat Aspose.PDF FOSS pro Go?
Přidejte modul do svého Go projektu:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goImportujte jej s aliasem ve svých zdrojových souborech:
import pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"Jaká verze Go je vyžadována?
Go 1.24 nebo novější je vyžadováno. Ověřte svou verzi pomocí go version.
Existují nativní nebo systémové knihovní závislosti?
Č. Aspose.PDF FOSS pro Go je čistě Go implementace bez závislostí na C, C++ ani CGo. Nepotřebuje žádné systémové knihovny, PDF prohlížeče ani externí nástroje.
API Usage
Jak otevřu existující PDF?
Použijte pdf.Open pro standardní PDF a pdf.OpenWithPassword pro soubory chráněné heslem:
doc, err := pdf.Open("document.pdf")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())Jak rozdělím PDF na jednotlivé stránky?
Document.Split vrací []*Document, jeden na stránku:
doc, _ := pdf.Open("report.pdf")
pages, _ := doc.Split()
for i, p := range pages {
p.Save(fmt.Sprintf("page_%03d.pdf", i+1))
}Jak sloučím více PDF souborů?
Document.Append sloučí zdrojový dokument přímo:
base, _ := pdf.Open("part1.pdf")
part2, _ := pdf.Open("part2.pdf")
base.Append(part2)
base.Save("combined.pdf")Jak vyplním pole AcroForm?
Použijte Document.Form().Field(name) a ověřte konkrétní typ:
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")Podporované typy polí: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ButtonField.
Jak přidám záložky?
Vytvořte OutlineItemCollection a nastavte 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")Bezpečnost a šifrování
Jak chránit PDF heslem?
Použijte Document.SetEncryption s EncryptionOptions strukturou pro aplikaci ochrany heslem a příznaků oprávnění. Zadejte uživatelské heslo pro otevření souboru a heslo vlastníka pro práva úprav:
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")Jaké šifrovací algoritmy jsou podporovány?
Tři algoritmy jsou k dispozici přes EncryptionOptions.Algorithm:
| Algorithm | Constant | Standard |
|---|---|---|
| AES-128 | EncryptionAlgAES128 (výchozí) | ISO 32000-1 |
| AES-256 | EncryptionAlgAES256 | ISO 32000-2 (PDF 2.0 výstup) |
| RC4-128 | EncryptionAlgRC4_128 | Legacy |
Jak otevřu soubor chráněný heslem?
Použijte pdf.OpenWithPassword, když soubor vyžaduje autentizaci. Předajte uživatelské heslo jako druhý argument; po úspěšném dešifrování vrátí běžný *Document:
doc, err := pdf.OpenWithPassword("protected.pdf", "userpass")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())Jak odstraním šifrování z PDF?
Zavolejte Document.RemoveEncryption po otevření souboru se správným heslem. Uložte výsledek, abyste vytvořili nešifrovanou kopii:
doc, _ := pdf.OpenWithPassword("protected.pdf", "userpass")
doc.RemoveEncryption()
doc.Save("decrypted.pdf")Vykreslování a text
Jak vykreslím stránku PDF do obrázku?
Použijte jeden z typů zařízení: BmpDevice, PngDevice, JpegDevice, TiffDevice nebo GifDevice. Vytvořte zařízení s hodnotou Resolution a zavolejte odpovídající metodu Render* s io.Writer a 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})Jak mohu vyhledat text v PDF?
Zavolejte Document.SearchText s řetězcem dotazu a SearchOptions. Výsledek je řez TextMatch hodnot — každá obsahuje nalezený text, index stránky a ohraničující rámeček.
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)
}Jak zploštit formulář?
Zavolejte Document.Flatten po vyplnění nebo zkontrolování formuláře. Metoda vloží všechny hodnoty polí do grafiky stránky a odstraní interaktivní pole formuláře:
doc, _ := pdf.Open("filled.pdf")
doc.Flatten()
doc.Save("flat.pdf")Známá omezení
Jsou podporovány všechny funkce PDF?
Knihovna pokrývá nejčastější operace správy dokumentů: otevření, vytvoření, uložení, rozdělení, sloučení, extrakci stránek, šifrování, AcroForms, tabulky, záložky, anotace, renderování do obrazu, vyhledávání textu a zplošťování formulářů. Pokročilé funkce, jako jsou digitální podpisy, 3D obsah a převod PDF/A, nemusí být v aktuálním vydání plně implementovány. Zkontrolujte README v repozitáři pro aktuální stav funkcí.
Co se stane, když použiji typovou asersi pole, která neodpovídá?
Typová aserce na Field, která neodpovídá skutečnému typu pole, způsobí paniku. Použijte pdf.FieldType(f) k prozkoumání typu před aserci, nebo použijte typový 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())
}
}