Introducere

Aspose.PDF FOSS for Go is a pure-Go library for working with PDF documents. It exposes an API pentru crearea de noi fișiere PDF din zero, deschiderea și editarea fișierelor existente, împărțirea documentele în ieșiri pe pagină, combinând mai multe PDF-uri și aplicarea bazată pe parolă; criptare toate fără dependențe native C sau C++.

Biblioteca este disponibilă ca un modul Go la: github.com/aspose-pdf-foss/aspose-pdf-foss-for-go şi este eliberat sub licenţa MIT. Instalaţi-o cu: go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go în orice Proiectul 1.24+.

Acest articol acoperă funcțiile de bază: operațiuni document, securitate, completarea AcroForm-ului, amenajarea tabelurilor, bookmark-urile și anotațiile.


Caracteristici cheie

Diviziunea și fuzionarea documentelor

În ceea ce priveşte Document tip oferă Split() pentru a împărți un PDF în documente pe pagină și Append() pentru a uni un document extern în loc. PageRange te lasă să lucrezi cu un subset de pagini pentru extracție sau export selectiv. Metadata expuneri câmpurile de informații ale documentului pentru citire și scriere autor, titlu și data creării.

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")

Criptarea şi permisiunile cu parolă

EncryptionOptions configurează parola utilizatorului, parola proprietarilor și operațiunile permise în un singur apel la: SetEncryption.Algoritmii sprijiniţi sunt AES-128 (default), AES-256 (ISO 32000-2, produce ieșire PDF 2.0) și RC4-128 pentru compatibilitatea veche. Permissions permite să se permită sau refuze operațiuni individuale imprimare, copie, accesibilitate ?? în mod independent. OpenWithPassword deschide fișiere criptate; RemoveEncryption scoate din parola înainte de a salva o copie text simplu.

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")

Procesarea câmpului AcroForm

Form oferă acces la toate câmpurile AcroForm dintr-un document. Field este baza Interfață; afirmațiile de tip oferă acces la TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, și ButtonField.- Setarea terenului . valorile după numele câmpului vizualizatorul regenerează apariturile automat prin intermediul /NeedAppearances=true În salvare.

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")

Dispozitivul tabelului

Table, Row, și Cell construirea de layout-uri structurate pe pagini PDF. BorderInfo configurează stilul de margine pentru fiecare celulă sau pentru întreaga tabelă. MarginInfo Seturi de umplutură celulare. TextStyle controlează fontul, mărimea, culoarea și alinierea prin intermediul HAlign și de: VAlign. Image poate fi plasat în interiorul celulelor de lângă text.

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")

Semne de carte şi navigare

OutlineItemCollection reprezintă o singură intrare de marcator. Utilizați SetTitle, SetBold, SetColor, și SetDestination să-l configureze. DestinationXYZ Ţintele sunt exact: coordonatele paginii; DestinationFit se potriveşte paginii din vizualizator. NamedDestinations înregistrează țintele de salt reutilizabile accesibile prin nume.

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")

Anotări și timbre

AnnotationCollection Conţine toate anotaţiile de pe o pagină. TextAnnotation adaugă o notă de pe lemn. comentariu. StampAnnotation se plasează un timbru de omologare sau informație prin utilizarea unuia dintre următoarele: predefinit StampName valorile. HighlightAnnotation semnează regiunile de text. RedactAnnotation elimină permanent conținutul sensibil. LinkAnnotation atașează URI sau pagina-destinație acțiuni către regiunile care pot fi clicate.

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")

Început rapid

Instalează modulul:

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

Un flux minim de lucru deschideți un PDF, criptați-l cu o parolă și salvați:

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")
}

Sursă deschisă și licență

Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, Codul sursă este disponibil la WEB github.com/aspose-pdf-foss/asspose - pdf-Foss-for-go.

Utilizarea comercială este permisă în conformitate cu termenii licenței MIT. Dacă proiectul dumneavoastră necesită suport la nivel de întreprindere, acoperire extinsă format sau integrare în cloud, Aspose.PDF — Enterprise Product Family este un sistem separat. Oferta comercială.


Cum să începem?

Resurse conexe