PDFsharp
Open Source .NET API för PDF-bearbetning
Skapa, manipulera, konvertera och bearbeta PDF-dokument via gratis C# .NET Library.
Vad är PDFsharp?
Open Source .NET-bibliotek som kan användas för att skapa, rendera, sammanfoga, dela, modifiera, skriva ut och extrahera text eller metadata från PDF-filer. PDFsharp API stöder att skapa PDF-dokument direkt från alla .NET-språk. Det stöder också import av data från olika källor via XML-filer eller direkta gränssnitt. Den stöder många alternativ för sidlayout, textformatering och dokumentdesign.
PDFsharp tillhandahåller grafisk implementering baserad på antingen GDI+ eller WPF. API:et gör utvecklarens jobb enkelt genom att tillhandahålla funktioner för att använda en källkod för att rita på en PDF-sida såväl som i ett fönster eller på skrivaren. Den stöder flera viktiga funktioner för att bearbeta PDF-filer som att modifiera PDF, sammanfoga eller dela PDF-filer, XPS till PDF-konvertering, PDF-rendering, PDF-dataextraktion, Fontinbäddning och underinställning, Unicode-stöd och många fler.
Komma igång med PDFsharp
PDFsharp är dubbellicensierad som AGPL/kommersiell programvara. AGPL är en fri/öppen källkodslicens.
Det rekommenderas starkt att använda NuGet för att lägga till PDFsharp till ditt projekt,
NuGet kommando
Install-Package PdfSharp
Med Visual Studio kan du installera NuGet Package Manager för att enkelt komma åt NuGet-paket. Det fungerar med VS 2012 Express såväl som med community-utgåvorna av VS 2013 och VS 2015. Gå till "Verktyg" i Visual Studio => "Extensions and Updates..." för att installera NuGet Package Manager om du inte har det ännu. NuGet Package Manager kommer att ladda ner paketet åt dig, installera det och lägga till en referens till ditt projekt.
Generera och ändra PDF-dokument via gratis .NET API
Mjukvaruutvecklare kan använda PDFsharp API för att skapa ett nytt PDF-dokument i sina egna .NET-applikationer. När dokumentet har skapats kan du lägga till en tom sida samt infoga grafik eller text med lätthet. Det underlättar också utvecklare att modifiera det befintliga dokumentet efter deras behov och spara det med det namn de väljer. Med hjälp av följande steg kan du generera och manipulera PDF-dokument i C#.
- Initiera PdfDocument
- Lägg till sida
- Skaffa ett XGraphics-objekt för att rita
- Skapa ett typsnitt
- Lägg till text
- Spara dokument
Skapa PDF med 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");
Skapa PDF-anteckningar via .NET API
Anteckningar tillåter användare att lägga till anpassat innehåll på PDF-sidor. PDF-applikationer tillåter normalt skapande och modifieringar av olika typer av kommentarer, såsom text, linjer, anteckningar eller former, etc. PDFsharp gör det möjligt för programmerare att skapa olika typer av PDF-anteckningar i sina egna applikationer. Biblioteket stöder skapandet av textkommentarer, länkar och stämpelkommentarer.
Skapa en PDF-textanteckning 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);
Kombinera flera PDF-dokument via .NET
Har du många PDF-dokument som behöver kombineras till ett stort dokument? PDFsharp API ger dig funktionen för att kombinera flera PDF-filer till en enda med bara några rader kod. Utvecklare kan enkelt skapa ett nytt dokument från befintliga PDF-filer. Detta kan vara användbart för visuell jämförelse eller flera andra viktiga uppgifter.
Kombinera dokument 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);