Η βασική διαχείριση εγγράφων PDF καλύπτει τις λειτουργίες που εμφανίζονται σχεδόν σε κάθε ροή εργασίας PDF: άνοιγμα ή δημιουργία ενός εγγράφου, πρόσβαση στις σελίδες και το περιεχόμενό τους, ανάγνωση και εγγραφή σχολίων, εξαγωγή κειμένου και εργασία με διαδραστικές ενέργειες. Aspose.PDF FOSS for .NET παρέχει ένα .NET 8+ API που διαχειρίζεται όλες αυτές τις εργασίες μέσω ενός συνεπούς μοντέλου αντικειμένων που επικεντρώνεται στους τύπους Document και Page.
Κύκλος ζωής εγγράφου: Δημιουργία, Άνοιγμα, Αποθήκευση
Κάθε ροή εργασίας ξεκινά είτε με τη δημιουργία ενός νέου εγγράφου είτε με τη φόρτωση ενός υπάρχοντος. Document.Create() επιστρέφει ένα νέο, κενό Document instance. Document.Open(data) δέχεται ένα byte[] ή Stream και αναλύει τη δομή του PDF:
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
Αυτό το απόσπασμα ανοίγει ένα ελάχιστο PDF, προσθέτει μια σημείωση συνδέσμου στη σελίδα 1, αποθηκεύει σε ένα MemoryStream και επαληθεύει ότι η σημείωση διατηρείται μετά την επαναφόρτωση. Η υπερφόρτωση Document.Save(Stream) γράφει τη πλήρη ενημερωμένη δομή· Document.ToArray() επιστρέφει τα bytes απευθείας.
Πρόσβαση σε Σελίδες και η Συλλογή Σελίδων
Οι σελίδες προσπελάζονται μέσω της ιδιότητας Pages χρησιμοποιώντας δείκτη ακέραιου 1‑βάσης: doc.Pages[1] επιστρέφει την πρώτη σελίδα, doc.Pages[doc.Pages.Count] επιστρέφει την τελευταία. Κάθε αντικείμενο Page εκθέτει:
Annotations— τοAnnotationCollectionγια αυτή τη σελίδα, υποστηρίζονταςAddLinkAnnotationκαι απαρίθμηση των υπαρχουσών σημειώσεων κατά τύπο.- Χειριστές ροής περιεχομένου — χαμηλού επιπέδου πρόσβαση στις εντολές σχεδίασης της σελίδας μέσω της συλλογής
Operators.
Ο δείκτης που ξεκινά από το 1 είναι συνεπής σε όλο το API: αναζητήσεις σχολίων, δείκτες σελίδων προορισμού ενέργειας GoTo και όλες οι άλλες αναφορές σελίδων χρησιμοποιούν την ίδια σύμβαση.
Εξαγωγή κειμένου με TextFragmentAbsorber
TextFragmentAbsorber είναι το τυπικό σημείο εισόδου για την ανάγνωση κειμένου από μια σελίδα PDF. Χρησιμοποιήστε τον κατασκευαστή χωρίς ορίσματα για να εξάγετε όλα τα τμήματα, ή περάστε μια φράση αναζήτησης για να φιλτράρετε το αντίστοιχο κείμενο:
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} size={fragment.FontSize}");
}
Καλέστε absorber.Visit(page) για να επεξεργαστείτε μια μόνο σελίδα. Η προκύπτουσα συλλογή TextFragments περιέχει TextFragment αντικείμενα· το καθένα εκθέτει Text (το περιεχόμενο της συμβολοσειράς) και FontSize (το εμφανιζόμενο μέγεθος σημείου). Μια δεύτερη υπερφόρτωση TextFragmentAbsorber(searchPhrase, isRegex) δέχεται μια σημαία κανονικής έκφρασης για αναζήτηση βάσει προτύπου.
Διαδραστικές Ενέργειες
PdfAction είναι η κλάση εργοστασίου για όλους τους τυπικούς τύπους ενεργειών PDF. Τέσσερις στατικές μεθόδους εργοστασίου καλύπτουν τις πιο κοινές περιπτώσεις:
PdfAction.CreateUri(uri)— ανοίγει ένα URL στον περιηγητή του χρήστη.PdfAction.CreateGoTo(pageIndex, fitType)— πλοηγείται σε συγκεκριμένη σελίδα εντός του εγγράφου.PdfAction.CreateJavaScript(script)— εκτελεί μια συμβολοσειρά JavaScript στον προβολέα PDF.PdfAction.CreateLaunch(filePath)— εκκινεί ένα εξωτερικό αρχείο ή εφαρμογή.
Οι ενέργειες συνδέονται με τις σελίδες μέσω σχολίων. AnnotationCollection.AddLinkAnnotation(rectangle, action) τοποθετεί ένα LinkAnnotation πάνω στην καθορισμένη ορθογώνια περιοχή με την δεδομένη ενέργεια συνδεδεμένη:
using var doc = Document.Create();
doc.Pages.Add();
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://example.org");
var annot = page.Annotations.AddLinkAnnotation(new Rectangle(10, 10, 100, 30), action);
Console.WriteLine(page.Annotations.Count); // 1
Console.WriteLine(annot.AnnotationType); // Link
AnnotationType.Link επιβεβαιώνει ότι η σημείωση δημιουργήθηκε ως τύπος συνδέσμου. Ο Rectangle κατασκευαστής λαμβάνει τις συντεταγμένες αριστερά, κάτω, δεξιά και πάνω σε μονάδες χώρου χρήστη PDF.
Μεταδεδομένα Εγγράφου και Αδειοδότηση
Η κλάση Document εκθέτει IsLicensed (επιστρέφει true στη FOSS έκδοση), JavaScript (ένα JavaScriptCollection για σενάρια επιπέδου εγγράφου) και DocumentActions για γεγονότα κύκλου ζωής όπως BeforeClosing και BeforeSaving.
Το πακέτο FOSS εγκαθίσταται μέσω του NuGet:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha
Δεν απαιτείται κλειδί άδειας. Η άδεια MIT επιτρέπει τη χρήση σε εμπορικές εφαρμογές χωρίς απαιτήσεις αποδότησης πέραν της διατήρησης της ειδοποίησης άδειας.