Πώς να εργαστείτε με τη διαχείριση κεντρικών εγγράφων στο .NET
Aspose.PDF FOSS for .NET provides the Document κλάση ως κεντρικό σημείο εισόδου για όλες τις λειτουργίες PDF. εγκαταστήστε το πακέτο με dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha και χρησιμοποιεί Document.Create(), Document.Open(), Document.Save(),και Document.Merge() Διαχείριση PDF σε λογισμικό στο .NET 8+.
Βήμα προς βήμα οδηγός
Βήμα 1: Εγκατάσταση του πακέτου
Προσθήκη του FOSS.PDF στο έργο σας:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaΕλέγξτε την αναφορά σας στο .csproj:
<PackageReference Include="Aspose.Pdf.Foss" Version="0.1.0-alpha" />Βήμα 2: Εισαγωγή απαιτούμενων τάξεων
Προσθέστε τις απαραίτητες οδηγίες χρήσης στην κορυφή του αρχείου σας:
using Aspose.Pdf;
using Aspose.Pdf.Annotations;Βήμα 3: Δημιουργία νέου PDF έγγραφα
Χρησιμοποιήστε Document.Create() Για να δημιουργήσετε ένα κενό έγγραφο μνήμης:
using var doc = Document.Create();
// The document has no pages yet; add pages before saving
using var ms = new MemoryStream();
doc.Save(ms);
byte[] pdfBytes = ms.ToArray();Βήμα 4: Ανοίξτε ένα υπάρχον PDF
Document.Open αποδέχεται μια γραμμή byte, το δρομολόγιο αρχείων ή τη ροή. using Για να διασφαλιστεί ότι το έγγραφο απορρίπτεται μετά τη χρήση:
// From a file path
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
// From a byte array loaded elsewhere
byte[] data = File.ReadAllBytes("input.pdf");
using var doc2 = Document.Open(data);Βήμα 5: Πρόσβαση σε σελίδες
Η Document.Pages Η ιδιοκτησία επιστρέφει σε PageCollection.Οι σελίδες είναι 1 ενσωματωμένες:
using var doc = Document.Open("input.pdf");
int pageCount = doc.Pages.Count;
var firstPage = doc.Pages[1];
double width = firstPage.Width;
double height = firstPage.Height;Βήμα 6: Αποθηκεύστε ένα έγγραφο
Σώστε σε μια ροή με Document.Save(),ή να ανακαλύψετε σε μια συλλογή με Document.ToArray():
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com/test");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
byte[] savedBytes = ms.ToArray();Βήμα 7: Συμμετοχή πολλών εγγράφων
Χρησιμοποιήστε Document.Merge() Για να συνδυάσουμε πολλαπλά Document Εναλλακτικά σε ένα:
using var doc1 = Document.Open("part1.pdf");
using var doc2 = Document.Open("part2.pdf");
var merged = Document.Merge(new[] { doc1, doc2 });
merged.Save("combined.pdf");Document.MergeDocuments() είναι ένα ισοδύναμο υπερφόρτωση που δέχεται τα αρχεία διαδρομής αρέσεις απευθείας.
Κοινά προβλήματα και τακτοποιήσεις
Η συλλογή σελίδων είναι κενή μετά από το Document.Create() Document.Create() επιστρέφει ένα έγγραφο χωρίς σελίδες. πρέπει να προσθέσετε ρητά μια σελίδα πριν από την πρόσβαση σε αυτό doc.Pages[1].Προσπαθώντας να αποκτήσουν πρόσβαση σε έναν δείκτη που δεν υπάρχει, ρίχνει ένα IndexOutOfRangeException.
InvalidOperationΕξαίρεση όταν καλείτε Document.Open σε ένα διαφθορά αρχείο Εάν το PDF byte array ή αρχείο είναι κρυμμένο ή αναποτελεσματικό, Document.Open Ελέγξτε ότι η γραμμή byte προέλευσης είναι ένα πλήρες PDF (αρχές με %PDF-Πριν περάσει στο Open.
Έγγραφο που δεν έχει διαγραφεί - απορρίψεις μνήμης σε σενάρια υψηλής ταχύτητας Πάντα κρεμάστε Document.Open και Document.Create Η κλήση σε ένα using Η δήλωση. το Document Εφαρμογές τάξης IDisposable;· η αποτυχία να το διαγράψει προκαλεί την υποκείμενη ροή και τη διασταυρωμένη πίνακα αναφοράς να παραμένουν στη μνήμη.
Αποθηκεύστε (ms) μετά το ms.Η θέση δεν επαναπροσδιορίζεται Όταν διαβάζουμε πίσω από το A MemoryStream Μετά από doc.Save(ms),Ανακατεύθυνση ms.Position = 0 Η παραμέληση αυτού του βήματος προκαλεί στον αναγνώστη να συναντήσει ένα κενό ή μερική PDF.
Η MEGA παράγει ένα έγγραφο με απροσδόκητη αριθμό σελίδων Βεβαιωθείτε ότι όλα τα αρχεία προέλευσης είναι πλήρως φορτωμένα πριν μεταφερθούν σε Document.Merge.Η τοποθέτηση ενός εγγράφου πηγής πριν από την κλήση συγχώνευσης μπορεί να οδηγήσει σε ένα ατελείωτο δέντρο σελίδας.
Συχνές ερωτήσεις
Μπορώ να ανοίξω ένα προστατευμένο από κωδικό PDF;?
Ναι, χρησιμοποιήστε το Document.Open(data, password) ή Document.Open(path, password) να παρέχει στον ιδιοκτήτη ή τον κωδικό πρόσβασης του χρήστη ως δεύτερο επιχείρημα.
Διαφέρει το Document.ToArray() από την αποθήκευση σε ένα MemoryStream;?
Document.ToArray() Είναι μια μέθοδος ευκολίας που εσωτερικά σώζει σε ένα MemoryStream και επιστρέφει την προκύπτουσα γραμμή byte. Και οι δύο δρόμοι παράγουν ταυτόσημη έκδοση PDF.
Ποιο είναι το είδος ιδιοκτησίας των σελίδων;?
Document.Pages Είναι τύπου PageCollection.Είναι 1 εντός του δείκτη.; doc.Pages[1] Είναι η πρώτη σελίδα.
Μπορώ να αποθηκεύσω ένα έγγραφο πολλές φορές;?
Ναι, μπορείτε να καλέσετε doc.Save() ή doc.ToArray() Πολλές φορές στην ίδια περίπτωση εγγράφου.Κάθε κλήση σερικώνει την τρέχουσα κατάσταση του εδράμματος.
Πώς μπορώ να ελέγξω εάν ένα έγγραφο είναι αδειοδοτημένο;?
Document.IsLicensed Επιστρέφει ο Α bool για το Aspose.PDF FOSS αυτό είναι ενημερωτικό μόνο - δεν απαιτείται ενεργοποίηση.