A Aspose.PDF FOSS for Go általános felhasználási esetei

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-go

2. 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 a AddBlankPageFromFormat(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.


See Also

 Magyar