Introdução

Aspose.PDF FOSS for Go is a pure-Go library for working with PDF documents. It exposes an API para criar novos PDFs a partir do zero, abrir e editar arquivos existentes, dividir documentos em saídas por página, a fusão de vários PDFs e a aplicação baseada em senha. criptografia tudo sem qualquer dependência nativa de C ou C++.

A biblioteca está disponível como um módulo Go em: github.com/aspose-pdf-foss/aspose-pdf-foss-for-go e é lançado sob a licença MIT. Instala-o com: go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go em qualquer Vai para o projecto 1.24+.

Este post abrange os recursos principais: operações de documentos, segurança, preenchimento do AcroForm, layout de tabela, marcadores e anotações.


Características principais

Divisão e fusão de documentos

A Comissão Document Tipo fornece: Split() Dividir um PDF em documentos por página e Append() para fundir um documento externo no local. PageRange permite-lhe trabalhar com um subconjunto de páginas para extração ou exportação seletiva. Metadata exposições campos de informação do documento para leitura e escrita autor, título e data da criação.

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

Criptografia e Permissões de Senha

EncryptionOptions configura senha de utilizador, senhas do proprietário e operações permitidas no sistema. uma única chamada para: SetEncryption.Os algoritmos suportados são AES-128 (o padrão), AES-256 (ISO 32000-2, produz saída PDF 2.0) e RC4-128 para compatibilidade com legados. Permissions permite permitir ou negar operações individuais impressão, cópia, acessibilidade ?? independentemente. OpenWithPassword abre ficheiros encriptados; RemoveEncryption Descarta o Senha antes de guardar uma cópia em texto simples.

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

Processamento de campo AcroForm

Form fornece acesso a todos os campos do AcroForm num documento. Field é a base Interface; as afirmações de tipo dão acesso a: TextBoxField, CheckboxField, RadioButtonField, ComboBoxField, ListBoxField, e ButtonField.- Set de campo . valores por nome de campo o visualizador regenera aparências automaticamente via /NeedAppearances=true - Em salvação.

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

Designação da tabela

Table, Row, e Cell criar layouts de grelhas estruturadas em páginas PDF. BorderInfo Configura o estilo de borda por célula ou para toda a tabela. MarginInfo - Acompanha a célula. TextStyle Controla a fonte, tamanho, cor e alinhamento via HAlign e a) VAlign. Image podem ser colocados dentro de células ao lado do 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")

Marcas de favoritos e navegação

OutlineItemCollection representa uma única entrada de marcador. Use SetTitle, SetBold, SetColor, e SetDestination para configurar. DestinationXYZ O objectivo é um exato Coordenadas de página; DestinationFit encaixa na página no visor. NamedDestinations Regista alvos de salto reutilizáveis acessíveis por nome.

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

Anotativas e selos

AnnotationCollection Contém todas as anotações numa página. TextAnnotation adiciona uma nota adesiva Comentário. StampAnnotation coloca um selo de homologação ou informação utilizando uma das seguintes opções: predefinido StampName valores. HighlightAnnotation marcas de regiões do texto. RedactAnnotation Elimina permanentemente conteúdos sensíveis. LinkAnnotation Anexa URI ou página-destino acções para regiões clicáveis.

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

Começo rápido

Instalar o módulo:

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

Um fluxo de trabalho mínimo abrir um PDF, criptografá-lo com uma senha e salvar:

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

Fonte aberta e licença

Aspose.PDF FOSS for Go is released under the MIT license. There are no usage restrictions, O código-fonte está disponível em: http://www.europa.eu/enhancement_sourcecode/ github.com/aspose-pdf-foss/asspose - pdf-Foss-for-go.

O uso comercial é permitido sob os termos da licença MIT. Se o seu projeto requer O suporte de nível empresarial, a cobertura em formato estendido ou a integração na nuvem, o Aspose.PDF — Enterprise Product Family é um sistema separado. oferta comercial.


Começar a Fazer

Recursos relacionados