PDFsharp
API .NET cu sursă deschisă pentru procesarea PDF
Creați, manipulați, convertiți și procesați documente PDF prin biblioteca gratuită C# .NET.
Ce este PDFsharp?
Bibliotecă Open Source .NET care poate fi utilizată pentru a crea, randa, îmbina, împărți, modifica, imprimă și extrage text sau metadate ale fișierelor PDF. API-ul PDFsharp acceptă crearea de documente PDF din orice limbă .NET. De asemenea, acceptă importarea datelor din diverse surse prin fișiere XML sau interfețe directe. Acceptă numeroase opțiuni pentru aspectul paginii, formatarea textului și proiectarea documentelor.
PDFsharp oferă implementare grafică bazată fie pe GDI+, fie pe WPF. API-ul facilitează munca dezvoltatorului, oferind funcții pentru utilizarea unui cod sursă pentru desenul pe o pagină PDF, precum și într-o fereastră sau pe imprimantă. Acceptă mai multe funcții importante pentru procesarea fișierelor PDF, cum ar fi modificarea PDF, îmbinare sau împărțire PDF-uri, conversie XPS în PDF, randare PDF, extragerea datelor PDF, încorporarea și subsetarea fonturilor, suport Unicode și multe altele.
Noțiuni introductive cu PDFsharp
PDFsharp are licență duală ca software AGPL/Comercial. AGPL este o licență software gratuită/open-source.
Este foarte recomandat să utilizați NuGet pentru a adăuga PDFsharp la proiectul dvs.,
Comanda NuGet
Install-Package PdfSharp
Cu Visual Studio puteți instala Managerul de pachete NuGet pentru a accesa cu ușurință pachetele NuGet. Funcționează cu VS 2012 Express, precum și cu edițiile comunitare ale VS 2013 și VS 2015. În Visual Studio, accesați „Instrumente” => „Extensii și actualizări...” pentru a instala NuGet Package Manager dacă nu îl aveți încă. Managerul de pachete NuGet va descărca pachetul pentru dvs., îl va instala și va adăuga o referință la proiectul dvs.
Generați și modificați documente PDF prin API-ul .NET gratuit
Dezvoltatorii de software pot folosi PDFsharp API pentru a crea un nou document PDF în propriile aplicații .NET. Odată ce documentul este creat, puteți adăuga o pagină goală și puteți insera cu ușurință elemente grafice sau text. De asemenea, facilitează dezvoltatorilor să modifice documentul existent în funcție de nevoile lor și să-l salveze cu numele la alegere. Utilizând următorii pași, puteți genera și manipula documente PDF în C#.
- Inițializați PdfDocument
- Adauga pagina
- Obțineți un obiect XGraphics pentru desen
- Creați un font
- Adaugă text
- Salvați documentul
Creați PDF folosind 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ți adnotări PDF prin .NET API
Adnotările permit utilizatorilor să adauge conținut personalizat pe paginile PDF. Aplicațiile PDF permit în mod normal crearea și modificarea diferitelor tipuri de adnotări, cum ar fi text, linii, note sau forme etc. PDFsharp permite programatorilor să creeze diferite tipuri de adnotări PDF în propriile aplicații. Biblioteca acceptă crearea de adnotări text, legături și adnotări de ștampile de cauciuc.
Creați o adnotare text PDF prin 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ți mai multe documente PDF prin .NET
Aveți numeroase documente PDF care trebuie combinate într-un singur document mare? PDFsharp API vă oferă funcționalitatea pentru a combina mai multe fișiere PDF într-unul singur, cu doar câteva linii de cod. Dezvoltatorii pot crea cu ușurință un document nou din fișierele PDF existente. Acest lucru poate fi util pentru comparație vizuală sau pentru câteva alte sarcini importante.
Combinați documente prin 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);