Aspose.PDF FOSS for .NET είναι μια δωρεάν, βιβλιοθήκη .NET με άδεια MIT για ανάγνωση, δημιουργία και διαχείριση εγγράφων PDF. Κυκλοφορεί υπό μια επιτρεπτική άδεια ανοιχτού κώδικα, αφαιρεί το παραδοσιακό εμπόδιο στις δυνατότητες PDF επιπέδου επιχείρησης — κάθε λειτουργία στη βιβλιοθήκη είναι διαθέσιμη χωρίς αγορά εμπορικής άδειας.

Τι είναι το Aspose.PDF FOSS για .NET;

Η βιβλιοθήκη στοχεύει στο .NET 8 και μεταγενέστερες εκδόσεις. Δημοσιεύεται στο NuGet με το αναγνωριστικό πακέτου Aspose.Pdf.Foss και μπορεί να προστεθεί σε οποιοδήποτε έργο .NET 8+ με μία εντολή:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

Ο κύριος χώρος ονομάτων είναι Aspose.Pdf, με σχετικούς χώρους ονομάτων που περιλαμβάνουν Aspose.Pdf.Text, Aspose.Pdf.Forms και Aspose.Pdf.Facades. Η βιβλιοθήκη εκθέτει 805 δημόσιες κλάσεις API που υποστηρίζονται από 7,488 τεκμηριωμένες αξιώσεις και 100 αποσπάσματα κώδικα που εξάγονται απευθείας από το σύνολο δοκιμών.

Βασικές Δυνατότητες

Το API καλύπτει ολόκληρο τον κύκλο ζωής ενός εγγράφου PDF:

  • Δημιουργία και φόρτωση εγγράφουDocument.Create() δημιουργεί ένα κενό έγγραφο· Document.Open(data) φορτώνει ένα υπάρχον PDF από πίνακα byte ή ροή.
  • Πρόσβαση σε σελίδες και περιεχόμενο — η συλλογή Pages παρέχει πρόσβαση με δείκτη 1‑βάση σε μεμονωμένες σελίδες, καθεμία από τις οποίες εκθέτει σημειώσεις, τελεστές και ροές περιεχομένου.
  • Εξαγωγή κειμένουTextFragmentAbsorber επισκέπτεται μια σελίδα και συλλέγει κάθε απόσπασμα κειμένου, με προαιρετικό φιλτράρισμα φράσεων αναζήτησης και υποστήριξη κανονικών εκφράσεων.
  • Διαδραστικές ενέργειεςPdfAction.CreateUri, PdfAction.CreateGoTo, PdfAction.CreateJavaScript και PdfAction.CreateLaunch καλύπτουν τους τυπικούς τύπους ενεργειών PDF.
  • ΣημειώσειςAnnotationCollection.AddLinkAnnotation προσθέτει μια σημείωση συνδέσμου με συσχετισμένη ενέργεια σε οποιαδήποτε ορθογώνια περιοχή σε μια σελίδα.
  • Φόρμες — ο χώρος ονομάτων Aspose.Pdf.Forms και Aspose.Pdf.Facades παρέχουν πρόσβαση σε πεδία AcroForm, μορφοποίηση εμφάνισης και επεκτάσεις JavaScript επιπέδου πεδίου.

Άνοιγμα ενός εγγράφου και προσθήκη συνδέσμου

Το παρακάτω παράδειγμα δείχνει το πρότυπο round‑trip: δημιουργήστε ένα νέο έγγραφο PDF, προσθέστε μια σημείωση συνδέσμου δράσης URI στην πρώτη σελίδα, αποθηκεύστε σε ροή και φορτώστε ξανά για να επαληθεύσετε ότι η σημείωση παραμένει.

using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
using var doc2 = Document.Open(ms.ToArray());
var annot = (LinkAnnotation)doc2.Pages[1].Annotations[1];
Console.WriteLine(annot.Uri); // https://aspose.com

Η στατική μέθοδος Document.Open δέχεται ένα byte[] ή μια ροή. Η doc.Pages[1] προσπελαύνει την πρώτη σελίδα με δείκτη που ξεκινά από 1 — η ίδια σύμβαση δείκτη που χρησιμοποιείται σε όλη τη βιβλιοθήκη. Μετά την αποθήκευση σε ένα MemoryStream, το έγγραφο μπορεί να φορτωθεί ξανά και όλες οι σημειώσεις διατηρούνται.


Αναζήτηση κειμένου σε μια σελίδα

TextFragmentAbsorber παρέχει αναζήτηση με λέξεις‑κλειδιά στο ρεύμα περιεχομένου οποιασδήποτε σελίδας. Περνάτε μια φράση αναζήτησης στον κατασκευαστή για να περιορίσετε τα αποτελέσματα ή χρησιμοποιήστε την υπερφόρτωση χωρίς ορίσματα για να συλλέξετε όλα τα τμήματα:

using var doc = Document.Open("path/to/document.pdf");
var absorber = new TextFragmentAbsorber("Hello");
absorber.Visit(doc.Pages[1]);
foreach (var fragment in absorber.TextFragments)
{
    Console.WriteLine($"Found: {fragment.Text}");
}

Κάθε TextFragment στη δημιουργούμενη συλλογή εκθέτει ιδιότητες, συμπεριλαμβανομένων των Text, FontSize και δεδομένων θέσης, καθιστώντας εύκολο το χτίσιμο ροών εργασίας αναζήτησης, επισήμανσης ή διαγραφής πάνω στα εξαγόμενα τμήματα.


Άδεια MIT και Ανοιχτή Ανάπτυξη

Όλος ο πηγαίος κώδικας δημοσιεύεται στο GitHub και διανέμεται υπό την άδεια MIT. Δεν υπάρχει υδατογράφημα αξιολόγησης, κανένας περιορισμός χρήσης και κανένα ξεχωριστό αρχείο άδειας για διαχείριση. Η ιδιότητα Document.IsLicensed επιστρέφει πάντα true στην έκδοση FOSS.

Το πακέτο βρίσκεται αυτή τη στιγμή στην έκδοση 0.1.0-alpha, αντανακλώντας ενεργή ανάπτυξη. Η επιφάνεια του API είναι ήδη σημαντική — 805 κλάσεις, 7,488 αξιώσεις — και η αλφα ονομασία υποδηλώνει ότι οι υπογραφές του API μπορεί να εξελιχθούν πριν από την έκδοση 1.0.


Ξεκινώντας

Σχετικοί πόροι