PDFsharp
Open Source .NET API do przetwarzania plików PDF
Twórz, manipuluj, konwertuj i przetwarzaj dokumenty PDF za pomocą bezpłatnej biblioteki C# .NET.
Co to jest PDFsharp?
Biblioteka Open Source .NET, której można używać do tworzenia, renderowania, scalania, dzielenia, modyfikowania, drukowania i wyodrębniania tekstu lub metadanych z plików PDF. PDFsharp API obsługuje tworzenie dokumentów PDF na bieżąco z dowolnego języka .NET. Obsługuje również importowanie danych z różnych źródeł za pośrednictwem plików XML lub bezpośrednich interfejsów. Obsługuje wiele opcji układu strony, formatowania tekstu i projektowania dokumentów.
PDFsharp zapewnia graficzną implementację opartą na GDI+ lub WPF. Interfejs API ułatwia pracę programisty, udostępniając funkcje korzystania z jednego kodu źródłowego do rysowania na stronie PDF, a także w oknie lub na drukarce. Obsługuje kilka ważnych funkcji przetwarzania plików PDF, takich jak modyfikowanie plików PDF, scalanie lub dzielenie plików PDF, konwersja XPS na PDF, renderowanie PDF, ekstrakcja danych PDF, osadzanie i podstawianie czcionek, obsługa Unicode i wiele innych.
Pierwsze kroki z PDFsharp
PDFsharp posiada podwójną licencję jako oprogramowanie AGPL/Commercial. AGPL jest licencją na oprogramowanie typu free/open source.
Zdecydowanie zaleca się użycie NuGet w celu dodania PDFsharp do projektu,
Polecenie NuGet
Install-Package PdfSharp
Za pomocą programu Visual Studio można zainstalować Menedżera pakietów NuGet, aby łatwo uzyskać dostęp do pakietów NuGet. Działa z VS 2012 Express, a także z wersjami społecznościowymi VS 2013 i VS 2015. W programie Visual Studio przejdź do „Narzędzia” => „Rozszerzenia i aktualizacje...”, aby zainstalować Menedżera pakietów NuGet, jeśli jeszcze go nie masz. Menedżer pakietów NuGet pobierze pakiet, zainstaluje go i doda odwołanie do projektu.
Generuj i modyfikuj dokumenty PDF za pomocą bezpłatnego interfejsu .NET API
Deweloperzy oprogramowania mogą używać interfejsu PDFsharp API do tworzenia nowego dokumentu PDF we własnych aplikacjach .NET. Po utworzeniu dokumentu możesz z łatwością dodać pustą stronę, a także wstawić grafikę lub tekst. Ułatwia również programistom modyfikowanie istniejącego dokumentu zgodnie z ich potrzebami i zapisywanie go pod wybraną nazwą. Korzystając z poniższych kroków, możesz generować i manipulować dokumentami PDF w C#.
- Zainicjuj dokument PDF
- Dodaj stronę
- Uzyskaj obiekt XGraphics do rysowania
- Utwórz czcionkę
- Dodaj tekst
- Zapisz dokument
Utwórz PDF za pomocą 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");
Twórz adnotacje PDF za pomocą .NET API
Adnotacje umożliwiają użytkownikom dodawanie niestandardowych treści na stronach PDF. Aplikacje PDF zwykle umożliwiają tworzenie i modyfikowanie różnego rodzaju adnotacji, takich jak tekst, linie, notatki lub kształty itp. PDFsharp umożliwia programistom tworzenie różnych typów adnotacji PDF we własnych aplikacjach. Biblioteka obsługuje tworzenie adnotacji tekstowych, linków i adnotacji pieczątek.
Utwórz adnotację tekstową PDF za pomocą 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);
Połącz wiele dokumentów PDF przez .NET
Masz wiele dokumentów PDF, które trzeba połączyć w jeden duży dokument? PDFsharp API zapewnia funkcjonalność łączenia wielu plików PDF w jeden za pomocą kilku linijek kodu. Deweloperzy mogą łatwo tworzyć nowy dokument z istniejących plików PDF. Może to być przydatne do wizualnego porównania lub kilku innych ważnych zadań.
Połącz dokumenty za pomocą 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);