Διαχείριση Εγγράφων

Διαχείριση Εγγράφων

Διαχείριση Εγγράφων

Document είναι το αντικείμενο ρίζας στο Aspose.PDF FOSS για .NET. Αντιπροσωπεύει ένα
ολόκληρο αρχείο PDF και παρέχει πρόσβαση σε σελίδες, μεταδεδομένα, πεδία φόρμας και όλα
τα άλλα δομικά στοιχεία PDF. Ανοίξτε υπάρχοντα αρχεία με Document.Open και δημιουργήστε νέα
με τον κατασκευαστή Document.


Άνοιγμα και δημιουργία εγγράφων

// Open from a byte array
using var doc = Document.Open(File.ReadAllBytes("input.pdf"));

// Open from a file path
using var doc2 = new Document("input.pdf");

// Create a new empty document
using var newDoc = new Document();
newDoc.Pages.Add();
newDoc.Save("new.pdf");

Εργασία με σελίδες

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

using var doc = Document.Open(pdfBytes);

// Access first page
var page = doc.Pages[1];

// Add a blank page
var newPage = doc.Pages.Add();

// Get page count
int count = doc.Pages.Count;

Γεωμετρία σελίδας

Κάθε σελίδα ορίζει αρκετά πλαίσια οριοθέτησης. Χρησιμοποιήστε τις μεθόδους setter στο Page για να τις προσαρμόσετε.

var page = doc.Pages[1];
page.SetMediaBox(new Rectangle(0, 0, 612, 792));
page.SetCropBox(new Rectangle(36, 36, 576, 756));
page.SetRotation(90);

Αποθήκευση εγγράφων

Αποθηκεύστε σε διαδρομή αρχείου, ροή ή πίνακα byte.

// Save to file
doc.Save("output.pdf");

// Save to stream
using var ms = new MemoryStream();
doc.Save(ms);

Συνημμένα αρχείων

FileSpecification αντιπροσωπεύει ενσωματωμένα συνημμένα αρχεία σε ένα PDF.

var spec = new FileSpecification("data.csv", "Embedded data file");
doc.EmbeddedFiles.Add(spec);

Σφραγίδες εικόνας

ImageStamp επικάλυπεί μια raster εικόνα σε μια σελίδα σε καθορισμένη θέση.

var stamp = new ImageStamp("logo.png");
stamp.Put(doc.Pages[1]);
doc.Save("stamped.pdf");

Συλλογές τελεστών

OperatorCollection σε κάθε σελίδα περιέχει τους ακατέργαστους τελεστές ροής περιεχομένου. Χρησιμοποιήστε το για χαμηλού επιπέδου έλεγχο ή επεξεργασία περιεχομένου.

var ops = doc.Pages[1].Contents;
foreach (var op in ops)
{
    // Inspect each operator
}

Συμβουλές και βέλτιστες πρακτικές

  • Τυλίξτε το Document σε μια δήλωση using για να απελευθερώσετε άμεσα τους χειριστές αρχείων.
  • Χρησιμοποιήστε το Document.Open(byte[]) για ροές εργασίας στη μνήμη ώστε να αποφύγετε προβλήματα κλειδώματος αρχείων.
  • Τροποποιήστε τα κουτιά σελίδας (MediaBox, CropBox) πριν προσθέσετε περιεχόμενο για να εξασφαλίσετε σωστό χώρο συντεταγμένων.
  • Καλέστε το Save μόνο μία φορά μετά από όλες τις τροποποιήσεις — οι επαναλαμβανόμενες αποθηκεύσεις είναι πιο αργές αλλά ασφαλείς.
  • Χρησιμοποιήστε το PageCollection.Accept(AnnotationSelector) για μαζική επεξεργασία σχολίων σε όλες τις σελίδες.

Κοινά προβλήματα

IssueCauseFix
Document.Open προκαλεί εξαίρεση σε έγκυρο PDFΤο αρχείο είναι κρυπτογραφημένο με κωδικό πρόσβασηςΔώστε την παράμετρο κωδικού πρόσβασης στον κατασκευαστή
Ο αριθμός σελίδων είναι 0 μετά τη δημιουργίαΤο νέο Document() ξεκινά κενόΚαλέστε το doc.Pages.Add() για να προσθέσετε μια κενή σελίδα
Το αποθηκευμένο αρχείο είναι μεγαλύτερο από το αναμενόμενοΕικόνες ή γραμματοσειρές ενσωματωμένες πολλαπλές φορέςΧρησιμοποιήστε βελτιστοποίηση (δείτε τον οδηγό Conversion and Optimization guide)
Pages[0] προκαλεί σφάλμα δείκτηΟι σελίδες είναι 1‑βάσιμες, όχι 0‑βάσιμεςΧρησιμοποιήστε το Pages[1] για την πρώτη σελίδα

Συχνές ερωτήσεις

Πώς μπορώ να συγχωνεύσω δύο έγγραφα PDF;

Χρησιμοποιήστε PdfFileEditor.Concatenate από το Facades API, ή αντιγράψτε χειροκίνητα σελίδες από ένα έγγραφο σε άλλο χρησιμοποιώντας PageCollection.

Μπορώ να ανοίξω ένα PDF από URL ή ροή;

Ναι. Διαβάστε το περιεχόμενο του URL σε ένα byte[] πρώτα, έπειτα περάστε το στο Document.Open(byte[]).

Πώς διαγράφω μια σελίδα;

Καλέστε doc.Pages.Delete(pageNumber) όπου pageNumber είναι 1-based.

Το Document είναι ασφαλές ως προς νήματα;

Όχι. Κάθε νήμα πρέπει να λειτουργεί με τη δική του παρουσία Document.


API Περίληψη Αναφοράς

Class / MethodDescription
DocumentΑντικείμενο ρίζας PDF· διατηρεί σελίδες, μεταδεδομένα και πεδία φόρμας
Document.OpenΣτατική μέθοδος κατασκευής για άνοιγμα PDF από πίνακα byte
Document.SaveΣειριοποίηση του εγγράφου σε αρχείο ή ροή
PageΜονή σελίδα PDF με περιεχόμενο, σημειώσεις και γεωμετρία
Page.SetMediaBoxΟρισμός του media box της σελίδας
Page.SetCropBoxΟρισμός της ορατής περιοχής περικοπής
Page.SetRotationΠεριστροφή της σελίδας κατά 0, 90, 180 ή 270 μοίρες
PageCollectionΤαξινομημένη συλλογή σελίδων σε έγγραφο
PageCollection.AddΠροσθήκη κενής σελίδας
OperatorCollectionΑκατέργαστοι τελεστές ροής περιεχομένου για μια σελίδα
FileSpecificationΠεριγραφέας ενσωματωμένου συνημμένου αρχείου
ImageStampΣφραγίδα επικάλυψης εικόνας για σελίδες
XFormCollectionΕπαναχρησιμοποιήσιμα XObjects φόρμας στο έγγραφο

Δείτε επίσης

 Ελληνικά