PDFsharp
Ανοιχτού κώδικα .NET API για επεξεργασία PDF
Δημιουργία, χειραγώγηση, Μετατροπή και επεξεργασία εγγράφων PDF μέσω της δωρεάν βιβλιοθήκης C# .NET.
Τι είναι το PDFsharp;
Βιβλιοθήκη ανοιχτού κώδικα .NET που μπορεί να χρησιμοποιηθεί για τη δημιουργία, απόδοση, συγχώνευση, διαχωρισμό, τροποποίηση, εκτύπωση και εξαγωγή κειμένου ή μεταδεδομένων αρχείων PDF. Το PDFsharp API υποστηρίζει τη δημιουργία εγγράφων PDF εν κινήσει από οποιαδήποτε γλώσσα .NET. Υποστηρίζει επίσης την εισαγωγή δεδομένων από διάφορες πηγές μέσω αρχείων XML ή άμεσων διεπαφών. Υποστηρίζει πολλές επιλογές για διάταξη σελίδας, μορφοποίηση κειμένου και σχεδιασμό εγγράφων.
Το PDFsharp παρέχει γραφική υλοποίηση που βασίζεται είτε στο GDI+ είτε στο WPF. Το API διευκολύνει τη δουλειά του προγραμματιστή παρέχοντας δυνατότητες για τη χρήση ενός πηγαίου κώδικα για τη σχεδίαση σε μια σελίδα PDF, καθώς και σε ένα παράθυρο ή στον εκτυπωτή. Υποστηρίζει πολλές σημαντικές λειτουργίες για την επεξεργασία αρχείων PDF, όπως τροποποίηση PDF, συγχώνευση ή διαχωρισμό αρχείων PDF, μετατροπή XPS σε PDF, απόδοση PDF, εξαγωγή δεδομένων PDF, ενσωμάτωση γραμματοσειράς και υπορύθμιση, υποστήριξη Unicode και πολλά άλλα.
Ξεκινώντας με το PDFsharp
Το PDFsharp διαθέτει διπλή άδεια ως λογισμικό AGPL/Commercial. Η AGPL είναι μια άδεια λογισμικού ελεύθερου/ανοικτού κώδικα.
Συνιστάται ιδιαίτερα η χρήση του NuGet για να προσθέσετε PDFsharp στο έργο σας,
Εντολή NuGet
Install-Package PdfSharp
Με το Visual Studio μπορείτε να εγκαταστήσετε το NuGet Package Manager για εύκολη πρόσβαση στα πακέτα NuGet. Λειτουργεί με το VS 2012 Express καθώς και με τις κοινοτικές εκδόσεις των VS 2013 και VS 2015. Στο Visual Studio μεταβείτε στα "Εργαλεία" => "Επεκτάσεις και ενημερώσεις..." για να εγκαταστήσετε το NuGet Package Manager αν δεν το έχετε ακόμα. Το NuGet Package Manager θα κατεβάσει το πακέτο για εσάς, θα το εγκαταστήσει και θα προσθέσει μια αναφορά στο έργο σας.
Δημιουργία και τροποποίηση εγγράφων PDF μέσω του δωρεάν .NET API
Οι προγραμματιστές λογισμικού μπορούν να χρησιμοποιήσουν το PDFsharp API για να δημιουργήσουν ένα νέο έγγραφο PDF μέσα στις δικές τους εφαρμογές .NET. Μόλις δημιουργηθεί το έγγραφο, μπορείτε να προσθέσετε μια κενή σελίδα καθώς και να εισαγάγετε γραφικά ή κείμενο με ευκολία. Διευκολύνει επίσης τους προγραμματιστές να τροποποιήσουν το υπάρχον έγγραφο σύμφωνα με τις ανάγκες τους και να το αποθηκεύσουν με το όνομα της επιλογής τους. Χρησιμοποιώντας τα παρακάτω βήματα, μπορείτε να δημιουργήσετε και να χειριστείτε έγγραφα PDF σε C#.
- Εκκινήστε το PdfDocument
- Προσθήκη σελίδας
- Αποκτήστε ένα αντικείμενο XGraphics για σχέδιο
- Δημιουργήστε μια γραμματοσειρά
- Προσθέστε κείμενο
- Αποθήκευση εγγράφου
Δημιουργία PDF χρησιμοποιώντας 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");
Δημιουργήστε σχολιασμούς PDF μέσω .NET API
Οι σχολιασμοί επιτρέπουν στους χρήστες να προσθέτουν προσαρμοσμένο περιεχόμενο σε σελίδες PDF. Οι εφαρμογές PDF επιτρέπουν συνήθως τη δημιουργία και την τροποποίηση διαφόρων τύπων σχολιασμών, όπως κείμενο, γραμμές, σημειώσεις ή σχήματα κ.λπ. Το PDFsharp επιτρέπει στους προγραμματιστές να δημιουργούν διάφορους τύπους σχολιασμών PDF μέσα στις δικές τους εφαρμογές. Η βιβλιοθήκη υποστηρίζει τη δημιουργία σχολιασμών κειμένου, συνδέσμων και σχολιασμών από καουτσούκ.
Δημιουργία σχολιασμού κειμένου PDF μέσω 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);
Συνδυάστε πολλαπλά έγγραφα PDF μέσω .NET
Έχετε πολλά έγγραφα PDF που πρέπει να συνδυαστούν σε ένα μεγάλο έγγραφο; Το PDFsharp API σάς παρέχει τη λειτουργικότητα για το συνδυασμό πολλών αρχείων PDF σε ένα μόνο με λίγες μόνο γραμμές κώδικα. Οι προγραμματιστές μπορούν εύκολα να δημιουργήσουν ένα νέο έγγραφο από υπάρχοντα αρχεία PDF. Αυτό μπορεί να είναι χρήσιμο για οπτική σύγκριση ή πολλές άλλες σημαντικές εργασίες.
Συνδυάστε έγγραφα μέσω 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);