Introduction
Aspose.PDF FOSS for Go is a pure-Go library for working with PDF documents. It exposes an API pour créer de nouveaux PDF à partir du scratch, ouvrir et éditer les fichiers existants, diviser documents dans les sorties par page, fusion de plusieurs PDF et application basée sur le mot de passe Cryptage - tout sans dépendance native C ou C++.
La bibliothèque est disponible en tant que module Go à github.com/aspose-pdf-foss/aspose-pdf-foss-for-go Il est libéré sous la licence MIT. Installation avec go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go Dans toute Le projet est de 1.24+.
Ce post couvre les capacités de base: opérations de document, sécurité, remplissage AcroForm, layout des tables, notes et annotations.
Fonctionnalités clés
Document de décomposition et de mélange
Le Document Type fournit Split() pour diviser un PDF en documents par page et Append() Fusionner un document extérieur en place. PageRange Laissez-vous travailler avec Un sous-sets de pages pour l’extraction ou l’exportation sélective. Metadata Expositions Les champs d’information pour la lecture et l’écriture de l’auteur, du titre et de la date de création.
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")
Crédit de mot de passe et autorisations
EncryptionOptions Configurer le mot de passe utilisateur, le code propriétaire et les opérations autorisées dans la Un seul appel à SetEncryption.Les algorithmes supportés sont AES-128 (le défaut), AES-256 (ISO 32000-2, produit la sortie PDF 2.0), et RC4-128 pour la compatibilité de l’héritage. Permissions vous permet d’autoriser ou de refuser des opérations individuelles – imprimer, copier, accéder — indépendamment . OpenWithPassword ouvrir les fichiers cryptés ; RemoveEncryption Résumé Le Password avant de sauvegarder une copie plaintext.
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")
Traitement de champ AcroForm
Form Il permet d’accéder à tous les champs AcroForm dans un document. Field C’est la base interface; les affirmations de type donnent accès à TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField,et ButtonField.- Sélectionner le champ valeurs par nom de champ — le spectateur régénère automatiquement les apparences via /NeedAppearances=true sur sauvetage.
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")
Table de la Layout
Table, Row,et Cell Créer des layouts de réseau structurés sur les pages PDF. BorderInfo Configurer le style de bord par cellule ou pour toute la table. MarginInfo La cellule est en patinage. TextStyle Contrôler la taille, le caractère, la couleur et l’alignement par HAlign et VAlign. Image Il peut être placé à l’intérieur des cellules avec le texte.
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")
Les notes et la navigation
OutlineItemCollection Un seul livre de référence.Utilisez SetTitle, SetBold, SetColor,et SetDestination pour la configurer. DestinationXYZ Objectif précis Coordonnées de page ; DestinationFit Il est à la page dans le spectateur. NamedDestinations Les cibles de saut réutilisables sont accessibles par nom.
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")
Annonces et Stamps
AnnotationCollection Il contient toutes les notes sur une page. TextAnnotation Ajouter un sticky-note commenté . StampAnnotation mettre un étiquette d’approbation ou d’information en utilisant l’un des éléments de Prédefinisée StampName Les valeurs. HighlightAnnotation Les régions de texte. RedactAnnotation Il supprime permanentement les contenus sensibles. LinkAnnotation - URI ou destination de page les régions de clics.
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")
Démarrage rapide
Installez le module :
go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-goUn flux de travail minimum : ouvrir un PDF, le chiffrer avec un mot de passe et enregistrer:
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")
}
Source ouverte et licence
Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, pas de frais d’exécution, et aucun requis d’enregistrement. le code source est disponible à la github.com/aspose-pdf-foss/axe-PDF-Foss-for-go.
L’utilisation commerciale est autorisée selon les conditions de licence MIT. Si votre projet exige support d’entreprise, couverture de format étendue ou intégration dans le cloud, la Aspose.PDF — Enterprise Product Family est une séparation Offre commercialement.
Pour commencer
- Guide d’installation
- Guide du développeur
- Articles de la base de connaissances
- Référence de l’API
- Dépôt GitHub