A Aspose.PDF FOSS for Go általános felhasználási esetei
Aspose.PDF FOSS for Go is a pure-Go module for PDF document management. This article a leggyakrabban szükséges műveleteket fedezi a Document, Form, EncryptionOptions, Table, és OutlineItemCollection Az alábbiak szerint kell telepíteni: go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.
Lépésről lépésre szóló útmutató
1. lépés: telepítse a csomagot
Adja hozzá a Go modul függőséget:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go2. lépés: Behozni a csomagot
A behozatali hivatkozások rövidítése érdekében használjon álnév:
import (
"fmt"
pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)3. lépés: PDF-t felosztani oldalakra
Document.Split többoldalú dokumentumot egybe osztja *Document oldalon.
doc, err := pdf.Open("report.pdf")
if err != nil {
panic(err)
}
pages, _ := doc.Split()
for i, p := range pages {
p.Save(fmt.Sprintf("report_page_%03d.pdf", i+1))
}
fmt.Printf("Split %d pages\n", len(pages))4. lépés: Több PDF-t egyesíteni egybe
Document.Append a tárolás előtt egy másik dokumentum oldalát összekapcsolja.
base, _ := pdf.Open("intro.pdf")
chapter1, _ := pdf.Open("chapter1.pdf")
chapter2, _ := pdf.Open("chapter2.pdf")
appendix, _ := pdf.Open("appendix.pdf")
base.Append(chapter1)
base.Append(chapter2)
base.Append(appendix)
base.Save("full_document.pdf")5. lépés: Jellegzőjelenet kódolás
EncryptionOptions konfigurálja a felhasználói jelszót, a tulajdonos jelszóját, az algoritmust, és műveletenként Permissions egyetlen hívás során:
doc, _ := pdf.Open("contract.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
UserPassword: "clientpass",
OwnerPassword: "adminpass",
Permissions: &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("contract_protected.pdf")Egy titkosított fájltól egyszerű szöveges másolatot készíteni:
doc, _ := pdf.OpenWithPassword("contract_protected.pdf", "clientpass")
doc.RemoveEncryption()
doc.Save("contract_decrypted.pdf")6. lépés: Töltsön ki egy Acroformot.
Iteráljon vagy jelölje meg a célmezőket.TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField).
doc, _ := pdf.Open("application_form.pdf")
name := doc.Form().Field("applicant_name").(*pdf.TextBoxField)
name.SetValue("Jane Doe")
agree := doc.Form().Field("terms_accepted").(*pdf.CheckboxField)
agree.SetChecked(true)
country := doc.Form().Field("country").(*pdf.ComboBoxField)
country.SetSelected(0)
doc.Save("application_filled.pdf")7. lépés: Tervezze meg az asztaltervét!
Adjunk hozzá egy Table az Row és a Cell a számla vagy jelentés létrehozására szolgáló oldal bejegyzései:
doc, _ := pdf.Open("invoice_template.pdf")
page, _ := doc.Page(1)
tbl := pdf.NewTable()
tbl.SetColumnWidths([]float64{200, 80, 100})
header := tbl.AddRow()
header.AddCell("Description")
header.AddCell("Qty")
header.AddCell("Amount")
row := tbl.AddRow()
row.AddCell("PDF Processing Service")
row.AddCell("1")
row.AddCell("$500.00")
page.AddTable(tbl, pdf.Rectangle{LLX: 72, LLY: 100, URX: 540, URY: 700})
doc.Save("invoice.pdf")8. lépés: Beillesztve a könyvjelzőfalat
OutlineItemCollection könyvjelzőt hoz létre fejezet-/részleti beágyazással, és DestinationXYZ oldalcélok:
doc, _ := pdf.Open("manual.pdf")
page1, _ := doc.Page(1)
page2, _ := doc.Page(2)
ch1 := pdf.NewOutlineItemCollection(doc)
ch1.SetTitle("Introduction")
ch1.SetBold(true)
ch1.SetDestination(pdf.NewDestinationXYZ(page1, 0, 792, 1.0))
doc.Outlines().Add(ch1)
ch2 := pdf.NewOutlineItemCollection(doc)
ch2.SetTitle("Configuration")
ch2.SetDestination(pdf.NewDestinationFit(page2))
doc.Outlines().Add(ch2)
doc.Save("manual_bookmarked.pdf")Általános problémák és megoldások
pdf.Open hibát ad a érvényes PDF-fájlok esetében Ellenőrizze, hogy a fájl útvonal helyes, és hogy a fájlt nem nyitva van egy másik A Windows-on a fájlzárás megakadályozhatja az olvasást.
A formanyomtatvány mezőihez való hozzáférés idején a típusmeghatározás pánikja Használat pdf.FieldType(f) vagy egy típusváltó, hogy ellenőrizze a mezőtípust azelőtt, A. Az alábbiak: *pdf.TextBoxField a) az állítás egy CheckboxField pánikba kerül.
go get nem működik a “nem talált modul” esetében Ensure GOPROXY A “Felérhető” (pl. GOPROXY=direct) és az, hogy a A hálózatod elérheti a… github.com.A levegőszűk környezetben a szűrőkészülék használatának elősegítése. GONOSUMCHECK vagy egy helyi modul tükör.
SaveTo nem működik után OpenWithPassword Ha hívsz… Save után OpenWithPassword Telefonon kívül. RemoveEncryption, A kiadás újra titkosítva az eredeti jelszóval. Ez a várt hívás RemoveEncryption kifejezetten egy egyszerű szöveges másolatot készíteni.
A egyesített dokumentum oldalak száma helytelen. Append A telefonon a hívó nem kapcsolódik. Append a következő napon: egy már mentett dokumentum; ha szükséges, nyissa újra az alapdokumentumot. több egyesített kimenetel létrehozására.
Gyakran feltett kérdések
Be tudom-e feldolgozni a PDF-eket anélkül, hogy leírnám őket?
Document.WriteTo elfogadja a io.Writer, így írhatsz egy buffer, hálózat A stream, vagy a válaszíró egy ideiglenes fájl létrehozása nélkül.
Biztonságos-e egyidejűleg használni a Aspose.PDF FOSS for Go?
Each *Document A beállítás nem gorutin-biztonságos. Document korutinára, vagy a megosztott példányokat védeni egy mutex-szel.
Hogyan olvasom vissza a mező értékeket egy kitöltött űrlapból?
Használat Field.Value() bármely mező vagy típusjelölés a típus-specifikus kiegészítőkhöz való hozzáférésre mint például: CheckboxField.Checked() vagy a következő: ComboBoxField.SelectedIndex().
Készíthetek egy PDF-t a nulláról, anélkül hogy lenne már meglévő sablon?
- Igen, én is.
pdf.NewDocument()üres dokumentumot hoz létre. Hívja aAddBlankPageFromFormat(pdf.PageFormatA4)a tárolás előtt hozzáadja az anyagokat (táblák, megjegyzések stb.).
Mi a különbség az EU és az Egyesült Királyság között? Document.Save és a következők: Document.WriteTo?
Save(path string) ír egy fájl útvonalra. WriteTo(w io.Writer) ír bárkinek. io.Writer hasznos HTTP-válasz, puffer vagy áramlás csővezeték.