Bevezetés

Aspose.PDF FOSS for Go egy tisztán Go nyelven írt könyvtár PDF dokumentumok kezeléséhez. Egy API-t biztosít új PDF-ek nulláról történő létrehozásához, meglévő fájlok megnyitásához és szerkesztéséhez, dokumentumok oldalonkénti szétválasztásához, több PDF egyesítéséhez, valamint jelszó alapú titkosítás alkalmazásához – mindezt natív C vagy C++ függőségek nélkül.

A könyvtár Go modulként elérhető a github.com/aspose-pdf-foss/aspose-pdf-foss-for-go címen, és MIT licenc alatt került kiadásra. Go1.24+ szükséges.

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go

Ez a bejegyzés a fő képességeket tárgyalja: dokumentumműveletek, biztonság, AcroForm kitöltés, táblázat-elrendezés, könyvjelzők és megjegyzések.


Kulcsfontosságú funkciók

Dokumentumok szétválasztása és egyesítése

A Document típus Split() biztosít a PDF oldalankénti dokumentumokra bontásához, és Append() egy külső dokumentum helyben történő egyesítéséhez. PageRange lehetővé teszi, hogy egy oldalak részhalmazával dolgozzon szelektív kinyerés vagy export céljából. Metadata elérhetővé teszi a dokumentum-információs mezőket az író, cím és létrehozási dátum olvasásához és írásához.

doc, _ := pdf.Open("report.pdf")

// Split into per-page PDFs
pages, _ := doc.Split()
for i, p := range pages {
	p.Save(fmt.Sprintf("page%03d.pdf", i+1))
}

// Merge a second PDF into doc
doc2, _ := pdf.Open("appendix.pdf")
doc.Append(doc2)
doc.Save("combined.pdf")

Jelszó titkosítás és engedélyek

EncryptionOptions beállítja a felhasználói jelszót, a tulajdonosi jelszót és a megengedett műveleteket egyetlen hívásban a SetEncryption felé. A támogatott algoritmusok a AES-128 (alapértelmezett), a AES-256 (ISO 32000-2, PDF 2.0 kimenetet állít elő), és az RC4-128 a régi kompatibilitáshoz. Permissions lehetővé teszi az egyes műveletek engedélyezését vagy tiltását — nyomtatás, másolás, akadálymentesség — függetlenül. OpenWithPassword megnyit titkosított fájlokat; RemoveEncryption eltávolítja a jelszót, mielőtt egyszerű szöveges másolatot mentene.

doc, _ := pdf.Open("contract.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
	UserPassword:  "userpass",
	OwnerPassword: "ownerpass",
	Permissions:   &pdf.Permissions{AllowPrint: true, AllowCopy: false},
})
doc.Save("contract_protected.pdf")

AcroForm mezőfeldolgozás

Form hozzáférést biztosít a dokumentum összes AcroForm mezőjéhez. Field az alap interfész; típusellenőrzések hozzáférést adnak a TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField és ButtonField mezőkhöz. Állítsa be a mezőértékeket mezőnév szerint — a megjelenítő automatikusan regenerálja a megjelenéseket a mentéskor a /NeedAppearances=true segítségével.

doc, _ := pdf.Open("application.pdf")
text := doc.Form().Field("full_name").(*pdf.TextBoxField)
text.SetValue("Jane Doe")

check := doc.Form().Field("agree_terms").(*pdf.CheckboxField)
check.SetChecked(true)

combo := doc.Form().Field("country").(*pdf.ComboBoxField)
combo.SetSelected(0)

doc.Save("application_filled.pdf")

Táblázat elrendezés

Table, Row és Cell strukturált rácselrendezéseket építenek PDF oldalakra. BorderInfo beállítja a keretstílust cellánként vagy a teljes táblázatra. MarginInfo meghatározza a cella belső margóját. TextStyle szabályozza a betűtípust, méretet, színt és igazítást a HAlign és VAlign segítségével. Image elhelyezhető a cellákban a szöveg mellett.

doc, _ := pdf.Open("invoice_template.pdf")
tbl := pdf.NewTable()
tbl.SetColumnWidths([]float64{120, 80, 80})

row := tbl.AddRow()
row.AddCell("Item")
row.AddCell("Qty")
row.AddCell("Price")

page, _ := doc.Page(1)
page.AddTable(tbl, pdf.Rectangle{LLX: 72, LLY: 100, URX: 540, URY: 700})
doc.Save("invoice.pdf")

Könyvjelzők és navigáció

OutlineItemCollection egyetlen könyvjelző bejegyzést jelöl. Használja a SetTitle, SetBold, SetColor és SetDestination elemeket a konfigurálásához. DestinationXYZ egy pontos oldalkoordinátát céloz; DestinationFit az oldalt a nézőben illeszti. NamedDestinations regisztrál újrahasználható ugrási célpontokat, melyek név szerint érhetők el.

doc, _ := pdf.Open("manual.pdf")
page, _ := doc.Page(1)

chapter := pdf.NewOutlineItemCollection(doc)
chapter.SetTitle("Chapter 1: Getting Started")
chapter.SetBold(true)
chapter.SetDestination(pdf.NewDestinationXYZ(page, 0, 800, 1.0))
doc.Outlines().Add(chapter)

section := pdf.NewOutlineItemCollection(doc)
section.SetTitle("Installation")
section.SetDestination(pdf.NewDestinationFit(page))
chapter.Add(section)

doc.Save("manual_with_bookmarks.pdf")

Megjegyzések és pecsétek

AnnotationCollection az oldalon lévő összes megjegyzést tartalmazza. TextAnnotation ragasztójegyzet megjegyzést ad hozzá. StampAnnotation egy jóváhagyási vagy információs pecsétet helyez el az előre definiált StampName értékek egyikével. HighlightAnnotation szövegrészeket jelöl. RedactAnnotation véglegesen eltávolít érzékeny tartalmat. LinkAnnotation URI vagy oldalcél műveleteket csatol a kattintható területekhez.

doc, _ := pdf.Open("draft.pdf")
page, _ := doc.Page(1)

stamp := pdf.NewStampAnnotation(page, pdf.Rectangle{LLX: 100, LLY: 700, URX: 250, URY: 750}, pdf.StampNameApproved)
page.Annotations().Add(stamp)

doc.Save("draft_approved.pdf")

Gyors kezdés

Telepítse a modult:

go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go

Egy minimális munkafolyamat — nyisson meg egy PDF-et, titkosítsa jelszóval, és mentse el:

package main

import (
	"fmt"
	pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go"
)

func main() {
	doc, err := pdf.Open("input.pdf")
	if err != nil {
		panic(err)
	}

	doc.SetEncryption(pdf.EncryptionOptions{
		UserPassword:  "secret",
		OwnerPassword: "ownerSecret",
		Permissions:   &pdf.Permissions{AllowPrint: true},
	})

	if err := doc.Save("output_encrypted.pdf"); err != nil {
		panic(err)
	}
	fmt.Println("Saved output_encrypted.pdf")
}

Nyílt forráskód és licencelés

Aspose.PDF FOSS for Go MIT licenc alatt kerül kiadásra. Nincsenek használati korlátozások, futásidő díjak, és regisztrációs követelmények. A forráskód elérhető itt: github.com/aspose-pdf-foss/aspose-pdf-foss-for-go.

A kereskedelmi felhasználás megengedett az MIT licenc feltételei szerint. Ha projektje vállalati szintű támogatást, kibővített formátumtámogatást vagy felhőintegrációt igényel, a Aspose.PDF — Enterprise Product Family egy külön kereskedelmi ajánlat.


Első lépések

Kapcsolódó források