Uobičajeni slučajevi upotrebe za Aspose.PDF FOSS for Go
Aspose.PDF FOSS for Go is a pure-Go module for PDF document management. This article U tom smislu, Komisija je odlučila da se u skladu s člankom 73. stavku 1. točkom (a) Uredbe (EU) br. Document, Form, EncryptionOptions, Table, i OutlineItemCollection Instaliranje s: go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.
Korak po korak vodič
Korak 1: Instaliraj paket
Dodaj zavisnost modula Go:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goKorak 2: Uvezite paket
Ustavite alias kako bi se skraćene reference za uvoz:
import (
"fmt"
pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)Korak 3: Podijelite PDF u datoteke po stranici
Document.Split podijeli dokument s više stranica u jednu *Document na stranicu.
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))Korak 4: Udružiti više PDF-ova u jedan
Document.Append spaja stranice iz drugog dokumenta na mjestu prije pohranjivanja.
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")Korak 5: Primjenite šifriranje lozinke
EncryptionOptions U ovom slučaju, mora se provesti proces obrade. za svaku operaciju Permissions u jednom pozivu:
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")Za stvaranje kopije teksta iz šifrirane datoteke:
doc, _ := pdf.OpenWithPassword("contract_protected.pdf", "clientpass")
doc.RemoveEncryption()
doc.Save("contract_decrypted.pdf")Korak 6: Ispuni AcroForm
Iterirati ili ciljno polje po imenu.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")Korak 7: Izgradite raspored stola
Dodaj a. Table s: Row i u članku 1. Cell Uputina na stranici za generiranje računa ili izvješća:
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")Korak 8: Dodajte stablo za stavke na stranicu
OutlineItemCollection kreira zalagatelje s ugrađenjem poglavlja/odjeljka i DestinationXYZ ciljevi stranica:
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")Česta pitanja i rješenja
pdf.Open vraća pogrešku za valjane PDF datoteke Provjerite da li je put datoteke ispravna i da fajl nije otvoren u drugom programu. Na Windows, zaključavanje datoteke može spriječiti čitanje.
Prijavljanje podataka o upotrebi u slučaju da je to moguće. Upotreba: pdf.FieldType(f) ili tip prekidač za provjeru polja tipa prije utvrđivanje. *pdf.TextBoxField tvrdnja o CheckboxField -U panici će.
go get Neuspješe s “module nije pronađen” Osigurati GOPROXY je postavljen na dostupan proxy (npr. GOPROXY=direct) i da je u skladu s člankom 73. stavkom 1. Vaša mreža može doći do github.com.U okruženjima s ograničenim zračnim rastojanjem, upotrebljavanje: GONOSUMCHECK ili lokalnom ogledalu modula.
SaveTo ne radi nakon OpenWithPassword Ako pozoveš… Save nakon OpenWithPassword bez poziva. RemoveEncryption, Izlaz je ponovno šifriran s originalnom lozinkom. ponašanje poziv RemoveEncryption Izričito da proizvede kopiju u praznom tekstu.
Broj stranica u spađenom dokumentu nije ispravno Append Pobrini se da ne zoveš. Append na: dokument koji je već bio sačuvani; ponovno otvorite osnovni dokument ako želite izgraditi više spajenih izlaznih jedinica.
Česta pitanja
Mogu li obraditi PDF bez pisanja na disk?
Document.WriteTo prihvaćaju i io.Writer, tako da možete pisati na čuvari, mreža stream, ili odgovor pisac bez stvaranja privremene datoteke.
Je li sigurno istovremeno koristiti Aspose.PDF FOSS za Go?
Svaki od njih. *Document Primjer nije goroutine-siguran. Koristite jedan Document za jednu goroutine, ili zaštititi zajedničke instanci s mutex.
Kako čitati vrijednosti polja iz popunjenog obrasca?
Upotreba: Field.Value() U slučaju da je to moguće, u skladu s člankom 13. stavkom 1. točke (a) ovog članka. kao što su: CheckboxField.Checked() ili: ComboBoxField.SelectedIndex().
Mogu li napraviti PDF od nule bez postojećeg predloga?
-Da, u redu je. pdf.NewDocument() kreira prazan dokument. AddBlankPageFromFormat(pdf.PageFormatA4) da dodate prazninu stranice, a zatim dodajte sadržaj (tablice i komentare) prije pohranjivanja.
Koja je razlika između: Document.Save i u članku 1. Document.WriteTo?
Save(path string) Piše na putanje datoteke. WriteTo(w io.Writer) Piše bilo kome. io.Writer Koristan za HTTP odgovore, bufere ili strujne cijevi.