Introducción
Aspose.PDF FOSS for Go is a pure-Go library for working with PDF documents. It exposes an API para crear nuevos PDFs de escrapancia, abrir y editar archivos existentes, dividir documentos en las fuentes por página, la fusión de varios PDFs y la aplicación basada en contraseñas cifrado - todo sin dependencias nativas C o C++.
La biblioteca está disponible como un módulo de Go en el github.com/aspose-pdf-foss/aspose-pdf-foss-for-go Se liberan bajo la licencia de MIT. Instalarlo con go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go En cualquier 1.24 + proyecto.
Este post cubre las capacidades básicas: operaciones de documentos, seguridad, relleno AcroForm, diseño de tablas, marcadores y anotaciones.
Características clave
Documentos que se dividen y mueven
El Document El tipo proporciona Split() para dividir un PDF en documentos por página y Append() - Fusionar un documento externo en lugar. PageRange Deja que trabajas con un subset de páginas para la extracción o exportación selectiva. Metadata Exposiciones Los campos de información de documento para la lectura y escritura del autor, título y fecha de creación.
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")
Cripto de contraseñas y permisos
EncryptionOptions Configura la contraseña del usuario, la password de propietario y las operaciones permitidas en el Un solo llamado a SetEncryption.Los algoritmos apoyados son AES-128 (el default), AES-256 (ISO 32000-2, produce PDF 2.0), y RC4-128 para la compatibilidad de herencia. Permissions permiten o denegar las operaciones individuales —impresión, copia, accesibilidad—. de manera independiente. OpenWithPassword - Abrir archivos encriptados; RemoveEncryption Los estriones de la contraseña antes de guardar una copia del texto.
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")
Procesamiento de campo AcroForm
Form proporciona acceso a todos los campos de AcroForm en un documento. Field Es la base interfaz; las afirmaciones de tipo dan acceso a TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField,y, ButtonField.- Sete campo valores por nombre de campo — el espectador regenera aparentemente automáticamente a través del /NeedAppearances=true en el salvamento.
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")
Mesa de Layout
Table, Row,y, Cell Construir diseños de red estructurados en páginas PDF. BorderInfo Configura el estilo de la frontera por célula o para toda la mesa. MarginInfo Células de la celdad. TextStyle controlar la letra, el tamaño, la color y la alineación a través de HAlign y VAlign. Image Se puede colocar dentro de las células junto al texto.
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")
Bookmarks y navegación
OutlineItemCollection Representa una entrada de un único libro.Uso SetTitle, SetBold, SetColor,y, SetDestination para configurarlo. DestinationXYZ Objetivos de una exacta Coordinación de páginas; DestinationFit Se encuentra en la página del espectador. NamedDestinations Los registros de los objetivos de salto reutilizables accesibles por nombre.
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")
Anotaciones y Stamps
AnnotationCollection Tiene todas las anotaciones en una página. TextAnnotation Añade una nota de la El comentario. StampAnnotation de la información o el documento de aprobación mediante una de las Predefinido StampName Los valores. HighlightAnnotation Marca las regiones de texto. RedactAnnotation Elimina permanentemente el contenido sensible. LinkAnnotation URI o destino de página Acción en las regiones clicables.
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")
Inicio rápido
Instalar el módulo:
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goUn flujo de trabajo mínimo: abre un PDF, encriptarlo con una contraseña y salva:
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")
}
Open Source y Licenciación
Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, No hay tarifas de tiempo de trabajo, ni requisitos de registro. el código fuente está disponible en github.com/aspose-pdf-foss/aficionado a PDF-for-go.
El uso comercial está permitido bajo los términos de la licencia MIT. Si su proyecto requiere soporte de grado empresarial, cobertura de formato ampliado o integración en la nube, el Aspose.PDF — Enterprise Product Family Es una separación Ofertas comerciales .
Empezando a
- Guía de instalación
- Guía del Desarrollador
- Artículos de la Base de Conocimientos
- Referencia de API
- Repositorio de GitHub