Aspose.PDF FOSS for .NET é uma biblioteca .NET gratuita, licenciada sob MIT, para leitura, criação e manipulação de documentos PDF. Lançada sob uma licença de código aberto permissiva, ela remove a barreira tradicional às capacidades PDF de nível empresarial — todos os recursos da biblioteca estão disponíveis sem a necessidade de adquirir uma licença comercial.

O que é Aspose.PDF FOSS para .NET?

A biblioteca tem como alvo .NET 8 e versões posteriores. Ela é publicada no NuGet sob o ID do pacote Aspose.Pdf.Foss e pode ser adicionada a qualquer projeto .NET 8+ com um único comando:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

O namespace principal é Aspose.Pdf, com namespaces relacionados incluindo Aspose.Pdf.Text, Aspose.Pdf.Forms e Aspose.Pdf.Facades. A biblioteca expõe 805 classes públicas da API suportadas por 7.488 reivindicações documentadas e 100 trechos de código extraídos diretamente da suíte de testes.

Capacidades Principais

A API cobre todo o ciclo de vida de um documento PDF:

  • Criação e carregamento de documentosDocument.Create() produz um documento em branco; Document.Open(data) carrega um PDF existente a partir de um array de bytes ou stream.
  • Acesso a páginas e conteúdo — a coleção Pages fornece acesso indexado baseado em 1 a páginas individuais, cada uma das quais expõe anotações, operadores e fluxos de conteúdo.
  • Extração de textoTextFragmentAbsorber visita uma página e coleta cada fragmento de texto, com filtragem opcional de frase de pesquisa e suporte a expressões regulares.
  • Ações interativasPdfAction.CreateUri, PdfAction.CreateGoTo, PdfAction.CreateJavaScript e PdfAction.CreateLaunch cobrem os tipos padrão de ação PDF.
  • AnotaçõesAnnotationCollection.AddLinkAnnotation anexa uma anotação de link com uma ação associada a qualquer região retangular em uma página.
  • Formulários — o namespace Aspose.Pdf.Forms e Aspose.Pdf.Facades fornecem acesso aos campos AcroForm, formatação de aparência e extensões JavaScript ao nível de campo.

O exemplo a seguir demonstra o padrão round‑trip: criar um novo documento PDF, adicionar uma anotação de link de ação URI à primeira página, salvar em um stream e recarregar para verificar se a anotação persiste.

using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());
var annot = (LinkAnnotation)doc2.Pages[1].Annotations[1];
Console.WriteLine(annot.Uri); // https://aspose.com

O método estático Document.Open aceita um byte[] ou um stream. doc.Pages[1] acessa a primeira página por índice baseado em 1 — a mesma convenção de índice usada em toda a biblioteca. Após salvar em um MemoryStream, o documento pode ser recarregado e todas as anotações são preservadas.


Pesquisando Texto em uma Página

TextFragmentAbsorber fornece pesquisa por palavra‑chave no fluxo de conteúdo de qualquer página. Passe uma frase de pesquisa ao construtor para restringir os resultados, ou use a sobrecarga sem argumentos para coletar todos os fragmentos:

using var doc = Document.Open("path/to/document.pdf");
var absorber = new TextFragmentAbsorber("Hello");
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text}");
}

Cada TextFragment na coleção resultante expõe propriedades incluindo Text, FontSize e dados posicionais, facilitando a criação de fluxos de trabalho de pesquisa, realce ou redação sobre os fragmentos extraídos.


Licença MIT e Desenvolvimento Aberto

Todo o código‑fonte está publicado no GitHub e distribuído sob a Licença MIT. Não há marca d’água de avaliação, limite de uso, nem arquivo de licença separado para gerenciar. A propriedade Document.IsLicensed sempre retorna true na compilação FOSS.

O pacote está atualmente na versão 0.1.0-alpha, refletindo desenvolvimento ativo. A superfície da API já é substancial — 805 classes, 7.488 reclamações — e a designação alfa indica que as assinaturas da API podem evoluir antes do lançamento 1.0.


Introdução

Recursos Relacionados