Go API para criação e processamento de documentos PDF
Biblioteca Go Open Source que oferece aos desenvolvedores a capacidade de criar, editar, manipular e converter documentos PDF.
O unipdf é uma biblioteca Open Source Go que pode lidar facilmente com todas as suas consultas relacionadas à criação e manipulação de documentos PDF. A biblioteca está disponível sob licença dupla, onde a licença AGPL pode ser usada para desenvolvimento de software de código aberto. A biblioteca oferece suporte completo para geração de documentos PDF com alto nível de texto, desenhos e imagens.
A biblioteca unipdf de código aberto suporta vários recursos comuns e avançados para processar e otimizar documentos PDF, como criação de relatórios PDF, geração de relatórios PDF, criação de faturas, criação e manuseio de parágrafos, mesclagem e divisão de páginas PDF, rotação de páginas, extração de texto de Arquivos PDF, exporte PDF para CSV, converta imagens para PDF, comprima e otimize PDF, arquivos PDF com marca d'água, suporte a fontes compostas (caracteres Unicode), assinaturas digitais e muito mais.
.
Introdução ao Unipdf
Para instalar o unipdf em seu sistema, execute o seguinte comando.
Instale gofpdf via GitHub
go get github.com/unidoc/unipdf/v3
Para obter a atualização mais recente, visite a página de lançamentos do produto .
Gerar relatório PDF via Go API
A API unipdf de código aberto fornece aos desenvolvedores a capacidade de criar relatórios em PDF dentro de seus próprios aplicativos Go. A biblioteca permite que os desenvolvedores trabalhem de forma eficiente com documentos PDF e inclui suporte para adicionar imagens, tabelas, cabeçalhos, rodapés e muito mais em seus relatórios PDF com facilidade. Você também pode colocar conteúdo dinâmico em seus relatórios PDF com apenas algumas linhas de código.
Converter arquivo PDF para CSV via Go API
A biblioteca unipdf permite que os desenvolvedores de software convertam arquivos PDF em formatos de arquivo CSV dentro de seus próprios aplicativos Go. Conversores de PDF para Excel é uma ferramenta muito útil para empresas e instituições de pesquisa. É muito fácil de usar e oferece a capacidade de extrair TextMarks de PDF e agrupá-los em palavras, linhas e colunas para extração de dados CSV.
Inserir imagens em PDF
A API unipdf de código aberto oferece aos programadores de software a capacidade de adicionar imagens de sua própria escolha em documentos PDF dentro de aplicativos GO. Facilita o trabalho do desenvolvedor ao colocar imagens no documento PDF, sem ter que se preocupar com coordenadas. Você só precisa fornecer o caminho e o tamanho da imagem sem se preocupar com as coordenadas. A biblioteca inclui suporte para formatos de imagem populares, como JPEG, PNG, GIF, TIFF e muito mais.
// Images to PDF.
func imagesToPdf(inputPaths []string, outputPath string) error {
c := creator.New()
for _, imgPath := range inputPaths {
common.Log.Debug("Image: %s", imgPath)
img, err := c.NewImageFromFile(imgPath)
if err != nil {
common.Log.Debug("Error loading image: %v", err)
return err
}
img.ScaleToWidth(612.0)
// Use page width of 612 points, and calculate the height proportionally based on the image.
// Standard PPI is 72 points per inch, thus a width of 8.5"
height := 612.0 * img.Height() / img.Width()
c.SetPageSize(creator.PageSize{612, height})
c.NewPage()
img.SetPos(0, 0)
_ = c.Draw(img)
}
err := c.WriteToFile(outputPath)
return err
}
Adicionar senha a documentos PDF
A API gratuita do unipdf oferece aos desenvolvedores o poder de proteger seus documentos PDF aplicando uma senha a eles usando comandos Go. Você pode impedir que os usuários abram e leiam documentos PDF. Você também pode definir a senha do proprietário para conceder acesso total ao arquivo PDF. Além disso, você também pode restringir os usuários de fazer qualquer tipo de alteração em determinadas partes dos documentos PDF.
func protectPdf(inputPath string, outputPath string, userPassword, ownerPassword string) error {
permissions := security.PermPrinting | // Allow printing with low quality
security.PermFullPrintQuality |
security.PermModify | // Allow modifications.
security.PermAnnotate | // Allow annotations.
security.PermFillForms |
security.PermRotateInsert | // Allow modifying page order, rotating pages etc.
security.PermExtractGraphics | // Allow extracting graphics.
security.PermDisabilityExtract // Allow extracting graphics (accessibility)
encryptOptions := &model.EncryptOptions{
Permissions: permissions,
}
f, err := os.Open(inputPath)
if err != nil {
return err
}
defer f.Close()
pdfReader, err := model.NewPdfReader(f)
if err != nil {
return err
}
isEncrypted, err := pdfReader.IsEncrypted()
if err != nil {
return err
}
if isEncrypted {
return fmt.Errorf("The PDF is already locked (need to unlock first)")
}
// Generate a PdfWriter instance from existing PdfReader.
pdfWriter, err := pdfReader.ToWriter(nil)
if err != nil {
return err
}
// Encrypt document before writing to file.
err = pdfWriter.Encrypt([]byte(userPassword), []byte(ownerPassword), encryptOptions)
if err != nil {
return err
}
// Write to file.
err = pdfWriter.WriteToFile(outputPath)
return err
}