1. Produtos
  2.   PDF
  3.   .NET
  4.   PDFsharp

PDFsharp

 
 

API .NET de código aberto para processamento de PDF

Crie, manipule, converta e processe documentos PDF por meio da biblioteca C# .NET gratuita.

O que é PDFsharp?

Biblioteca .NET de código aberto que pode ser usada para criar, renderizar, mesclar, dividir, modificar, imprimir e extrair texto ou metadados de arquivos PDF. A API PDFsharp suporta a criação de documentos PDF em tempo real a partir de qualquer linguagem .NET. Ele também suporta a importação de dados de várias fontes por meio de arquivos XML ou interfaces diretas. Ele suporta várias opções de layout de página, formatação de texto e design de documentos.

PDFsharp fornece implementação gráfica baseada em GDI+ ou WPF. A API facilita o trabalho do desenvolvedor fornecendo recursos para usar um código-fonte para desenhar em uma página PDF, bem como em uma janela ou na impressora. Ele suporta vários recursos importantes para processar arquivos PDF, como modificar PDF, mesclar ou dividir PDFs, conversão de XPS para PDF, renderização de PDF, extração de dados de PDF, incorporação e subconfiguração de fontes, suporte a Unicode e muito mais.

Previous Next

Primeiros passos com o PDFsharp

O PDFsharp é licenciado duplamente como software AGPL/Commercial. AGPL é uma licença de software livre/de código aberto.

É altamente recomendável usar o NuGet para adicionar PDFsharp ao seu projeto,

Comando NuGet

 Install-Package PdfSharp

Com o Visual Studio, você pode instalar o Gerenciador de Pacotes NuGet para acessar facilmente os pacotes NuGet. Funciona com o VS 2012 Express, bem como com as edições da comunidade do VS 2013 e VS 2015. No Visual Studio vá para "Ferramentas" => "Extensões e Atualizações..." para instalar o Gerenciador de Pacotes NuGet, caso ainda não o tenha. O Gerenciador de Pacotes NuGet baixará o pacote para você, o instalará e adicionará uma referência ao seu projeto.

Gere e modifique documentos PDF via API .NET gratuita

Os desenvolvedores de software podem usar a API PDFsharp para criar um novo documento PDF dentro de seus próprios aplicativos .NET. Uma vez que o documento é criado, você pode adicionar uma página vazia, bem como inserir gráficos ou texto com facilidade. Também facilita aos desenvolvedores modificar o documento existente de acordo com suas necessidades e salvá-lo com o nome de sua escolha. Usando as etapas a seguir, você pode gerar e manipular documentos PDF em C#.

  1. Inicializar PDFDocument
  2. Adicionar Página
  3. Obter um objeto XGraphics para desenho
  4. Criar uma fonte
  5. Adicione texto
  6. Salvar documento

Criar PDF usando C#

// Create a new PDF document
PdfDocument pdfDocument = new PdfDocument();
// Create an empty page
PdfPage pdfPage = pdfDocument.AddPage();
// Get an XGraphics object for drawing
XGraphics xGraphics = XGraphics.FromPdfPage(pdfPage);
// Create a font
XFont xFont = new XFont("Verdana", 20, XFontStyle.BoldItalic);
// Draw the text
xGraphics.DrawString("File Format Developer Guide", xFont, XBrushes.Black,
    new XRect(0, 0, pdfPage.Width, pdfPage.Height),
    XStringFormats.Center);
// Save the document...
pdfDocument.Save("fileformat.pdf");
    

Criar anotações em PDF por meio da API .NET

As anotações permitem que os usuários adicionem conteúdo personalizado em páginas PDF. Os aplicativos PDF normalmente permitem a criação e modificação de vários tipos de anotações, como texto, linhas, notas ou formas, etc. O PDFsharp permite que os programadores criem vários tipos de anotações PDF dentro de seus próprios aplicativos. A biblioteca suporta a criação de anotações de texto, links e anotações de carimbo de borracha.

Criar uma anotação de texto PDF via C#

 // Create a PDF text annotation
PdfTextAnnotation textAnnot = new PdfTextAnnotation();
textAnnot.Title = "This is the title";
textAnnot.Subject = "This is the subject";
textAnnot.Contents = "This is the contents of the annotation.\rThis is the 2nd line.";
textAnnot.Icon = PdfTextAnnotationIcon.Note;
gfx.DrawString("The first text annotation", font, XBrushes.Black, 30, 50, XStringFormats.Default);
// Convert rectangle from world space to page space. This is necessary because the annotation is
// placed relative to the bottom left corner of the page with units measured in point.
XRect rect = gfx.Transformer.WorldToDefaultPage(new XRect(new XPoint(30, 60), new XSize(30, 30)));
textAnnot.Rectangle = new PdfRectangle(rect);
// Add the annotation to the page
page.Annotations.Add(textAnnot);

Combine vários documentos PDF via .NET

Você tem vários documentos PDF que precisam ser combinados em um grande documento? A API PDFsharp fornece a funcionalidade de combinar vários arquivos PDF em um único com apenas algumas linhas de código. Os desenvolvedores podem criar facilmente um novo documento a partir de arquivos PDF existentes. Isso pode ser útil para comparação visual ou várias outras tarefas importantes.

Combinar documentos via Java

 // Open the input files
PdfDocument inputDocument1 = PdfReader.Open(filename1, PdfDocumentOpenMode.Import);
PdfDocument inputDocument2 = PdfReader.Open(filename2, PdfDocumentOpenMode.Import);
// Create the output document
PdfDocument outputDocument = new PdfDocument();
// Show consecutive pages facing. Requires Acrobat 5 or higher.
outputDocument.PageLayout = PdfPageLayout.TwoColumnLeft;
XFont font = new XFont("Verdana", 10, XFontStyle.Bold);
XStringFormat format = new XStringFormat();
format.Alignment = XStringAlignment.Center;
format.LineAlignment = XLineAlignment.Far;
XGraphics gfx;
XRect box;
int count = Math.Max(inputDocument1.PageCount, inputDocument2.PageCount);
for (int idx = 0; idx < count; idx++)
{
// Get page from 1st document
PdfPage page1 = inputDocument1.PageCount > idx ?
inputDocument1.Pages[idx] : new PdfPage();
// Get page from 2nd document
PdfPage page2 = inputDocument2.PageCount > idx ?
inputDocument2.Pages[idx] : new PdfPage();
// Add both pages to the output document
page1 = outputDocument.AddPage(page1);
page2 = outputDocument.AddPage(page2);
// Write document file name and page number on each page
gfx = XGraphics.FromPdfPage(page1);
box = page1.MediaBox.ToXRect();
box.Inflate(0, -10);
gfx.DrawString(String.Format("{0} • {1}", filename1, idx + 1),
font, XBrushes.Red, box, format);
gfx = XGraphics.FromPdfPage(page2);
box = page2.MediaBox.ToXRect();
box.Inflate(0, -10);
gfx.DrawString(String.Format("{0} • {1}", filename2, idx + 1),
font, XBrushes.Red, box, format);
}
// Save the document...
const string filename = "CompareDocument1_tempfile.pdf";
outputDocument.Save(filename);
 Português