![](https://products-qa.fileformat.com/it/pdf/net/pdfsharp/header-image.png)
PDFsharp
API .NET open source per l'elaborazione PDF
Crea, manipola, converti ed elabora documenti PDF tramite la libreria C# .NET gratuita.
Cos'è PDFsharp?
Libreria .NET open source che può essere utilizzata per creare, eseguire il rendering, unire, dividere, modificare, stampare ed estrarre testo o metadati di file PDF. L'API PDFsharp supporta la creazione di documenti PDF al volo da qualsiasi linguaggio .NET. Supporta anche l'importazione di dati da varie fonti tramite file XML o interfacce dirette. Supporta numerose opzioni per il layout di pagina, la formattazione del testo e la progettazione di documenti.
PDFsharp fornisce un'implementazione grafica basata su GDI+ o WPF. L'API semplifica il lavoro dello sviluppatore fornendo funzionalità per l'utilizzo di un codice sorgente per disegnare su una pagina PDF, in una finestra o sulla stampante. Supporta diverse funzioni importanti per l'elaborazione di file PDF come la modifica di PDF, unire o dividere PDF, conversione da XPS a PDF, rendering PDF, estrazione di dati PDF, incorporamento e sottoimpostazione dei caratteri, supporto Unicode e molti altri.
Guida introduttiva a PDFsharp
PDFsharp ha una doppia licenza come software AGPL/Commerciale. AGPL è una licenza software gratuita/open source.
Si consiglia vivamente di utilizzare NuGet per aggiungere PDFsharp al progetto,
Comando NuGet
Install-Package PdfSharp
Con Visual Studio puoi installare NuGet Package Manager per accedere facilmente ai pacchetti NuGet. Funziona con VS 2012 Express così come con le edizioni della community di VS 2013 e VS 2015. In Visual Studio vai su "Strumenti" => "Estensioni e aggiornamenti..." per installare NuGet Package Manager se non lo si dispone ancora. NuGet Package Manager scaricherà il pacchetto per te, lo installerà e aggiungerà un riferimento al tuo progetto.
Genera e modifica documenti PDF tramite l'API .NET gratuita
Gli sviluppatori di software possono utilizzare l'API PDFsharp per creare un nuovo documento PDF all'interno delle proprie applicazioni .NET. Una volta creato il documento, puoi aggiungere una pagina vuota e inserire facilmente grafica o testo. Facilita inoltre agli sviluppatori di modificare il documento esistente in base alle proprie esigenze e salvarlo con il nome di loro scelta. Utilizzando i seguenti passaggi puoi generare e manipolare documenti PDF in C#.
- Inizializza PdfDocument
- Aggiungi pagina
- Ottieni un oggetto XGraphics per il disegno
- Crea un carattere
- Aggiungi testo
- Salva documento
Crea 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");
Crea annotazioni PDF tramite .NET API
Le annotazioni consentono agli utenti di aggiungere contenuto personalizzato alle pagine PDF. Le applicazioni PDF normalmente consentono la creazione e la modifica di vari tipi di annotazioni, come testo, linee, note o forme, ecc. PDFsharp consente ai programmatori di creare vari tipi di annotazioni PDF all'interno delle proprie applicazioni. La libreria supporta la creazione di annotazioni di testo, collegamenti e annotazioni con timbri in gomma.
Crea un'annotazione di testo PDF tramite 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);
Combina più documenti PDF tramite .NET
Hai numerosi documenti PDF che devono essere combinati in un unico grande documento? L'API PDFsharp ti offre la funzionalità per combinare più file PDF in uno solo con poche righe di codice. Gli sviluppatori possono creare facilmente un nuovo documento da file PDF esistenti. Questo può essere utile per il confronto visivo o per molte altre attività importanti.
Combina documenti tramite 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);