Gyakran feltett kérdések
Licenzálás és nyílt forráskódú szoftverek
Mi a licenc az Aspose.PDF FOSS for Go-ra?
Aspose.PDF FOSS for Go is released under the MIT Licenc.A teljes licenc szövege a következő: a tárolótárban szereplő, az alábbiakban: github.com/aspose-pdf-foss/assose- pdf-Foss-for-go. Nem szükséges regisztráció, aktiválási fájl vagy futtatási kulcs.
Használhatom a Aspose.PDF FOSS for Go-t egy kereskedelmi termékben?
Igen. A MIT licenc korlátozás nélküli kereskedelmi használatot, módosítást, terjesztést és magánhasználati lehetőségeket engedélyez. Az összes másolatban vagy a szoftver jelentős részében be kell tüntetni az szerzői jogi értesítést és a MIT-licencia szövegét.
Van vállalati változata?
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 vállalati támogatással, kiterjesztett formátumú lefedettséggel és felhőintegrációval.
Beépítés és követelmények
Hogyan telepítem a FOSS for Go-t?
Adja hozzá a modulot az Go projekthez:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goImportáljon egy álnévvel a forráskészletbe:
import pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"Milyen Go változat szükséges?
1.24 vagy újabb verzió szükséges. Ellenőrizze a verziót az alábbiakban: go version.
Van-e egy native vagy rendszer könyvtár függőség?
Nem. Aspose.PDF A FOSS for Go egy tiszta Go megvalósítás, C-, C++ vagy CGo függőségek nélkül. Nincs szükség semmilyen rendszer könyvtárra, PDF nézőre vagy külső eszközre.
tűz használata
Hogyan nyithatok meg egy PDF-t?
Használat pdf.Open a szabványos PDF-ek esetében, és pdf.OpenWithPassword jelszóval védett fájlok esetében:
doc, err := pdf.Open("document.pdf")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())Hogyan osztom fel egy PDF-et egyes oldalakra?
Document.Split az a-t adja vissza. []*Document, egy oldalonként:
doc, _ := pdf.Open("report.pdf")
pages, _ := doc.Split()
for i, p := range pages {
p.Save(fmt.Sprintf("page_%03d.pdf", i+1))
}Hogyan egyesíthetek több PDF-t?
Document.Append a forrásdokumentum helyben történő egyesítése:
base, _ := pdf.Open("part1.pdf")
part2, _ := pdf.Open("part2.pdf")
base.Append(part2)
base.Save("combined.pdf")Hogyan töltsek ki egy AcroForm mezőt?
Használat Document.Form().Field(name) és a betontípusra vonatkozó követelmények:
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")Támogatott mezőtípusok: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, ButtonField.
Hogyan adhatok be könyvjelzőt?
A következők: OutlineItemCollection és állítson be egy 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")Biztonság és titkosítás
Hogyan védhetek egy PDF-et jelszóval?
Használat Document.SetEncryption egy EncryptionOptions struct a jelszóvédelem és az engedélyek jelölései alkalmazására. Adjon meg egy felhasználói jellent a fájl megnyitásához, és egy tulajdonosjellel a módosítási jogokhoz:
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")Milyen titkosítási algoritmusokat támogatnak?
Három algoritmus elérhető a következő formában: EncryptionOptions.Algorithm:
| Algorithm | Constant | Standard |
|---|---|---|
| AES-128 | EncryptionAlgAES128 (alapértelmezés szerint) | ISO 32000-1 |
| AES-256 | EncryptionAlgAES256 | ISO 32000-2 (PDF 2.0 kimeneti) |
| RC4-128 | EncryptionAlgRC4_128 | Legacy |
Hogyan nyithatok egy jelszóval védett fájlt?
Használat pdf.OpenWithPassword A felhasználói jelszót adja át a második argumentumként; normális kódot ad vissza. *Document a kód lefejtése sikeres:
doc, err := pdf.OpenWithPassword("protected.pdf", "userpass")
if err != nil {
panic(err)
}
fmt.Println(doc.PageCount())Hogyan távolítsam el a titkosítást egy PDF-ből?
Call Document.RemoveEncryption A kódolás nélkül megírható másolat:
doc, _ := pdf.OpenWithPassword("protected.pdf", "userpass")
doc.RemoveEncryption()
doc.Save("decrypted.pdf")Renderelés és szöveg
Hogyan alakíthatom a PDF-oldalt képké?
Használja az egyik eszköztípust: BmpDevice, PngDevice, JpegDevice, TiffDevice, vagy GifDevice.A készüléket egy Resolution érték és hívja a megfelelő Render* módszer egy io.Writer és a következők: 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})Hogyan kereshetek szöveget egy PDF-ben?
Call Document.SearchText a lekérdezés szalagával és SearchOptions.Az eredmény egy… réteg TextMatch értékek mindegyik tartalmazza a megfelelő szöveget, az indexjét és a határoló doboz.
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)
}Hogyan lehet egy űrlapot lecsúszni?
Call Document.Flatten A módszer az összes mezőt megtisztítja. értékek a lap grafikai és eltávolítja az interaktív formátum mezőket:
doc, _ := pdf.Open("filled.pdf")
doc.Flatten()
doc.Save("flat.pdf")Ismeretes korlátozások
Minden PDF funkciót támogat?
A könyvtár a leggyakoribb dokumentumkezelési műveleteket foglalja magában: nyitás, létrehozás , mentés, megosztás és egyesítés, oldal kivonása, titkosítás, AcroForms, táblázatok, könyvjelzők, megjegyzések, képek megjelenítése, szövegkeresés és űrlap lecsapcsolása. Fejlett funkciók, mint például digitális aláírások, 3D tartalom és PDF/A konverzió nem teljes mértékben megvalósíthatóak az aktuális kiadásban. Ellenőrizze a README raktárt a jelenlegi funkció állapotára.
Mi történik, ha egy nem egyező mező-típusú állítást használok?
A típusra vonatkozó állítás a következőkre: Field Ha nem illik a tényleges mezőtípushoz, pánikba kerülünk. Használat pdf.FieldType(f) a típus vizsgálatára, mielőtt az alábbiakat állítaná:
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())
}
}