Πώς να εργαστείτε με το Core PDF API σε TypeScript
Αυτός ο οδηγός δείχνει πώς να ανοίγετε, να δημιουργείτε, να επεξεργάζεστε, να διαχωρίζετε και να αποθηκεύετε έγγραφα PDF με το Aspose.PDF FOSS για TypeScript. Οι κλάσεις Document και Page είναι τα σημεία εισόδου για κάθε λειτουργία στη βιβλιοθήκη — το άνοιγμα και η δημιουργία αρχείων, η επεξεργασία σελίδων επί τόπου, ο διαχωρισμός και ο συνδυασμός εγγράφων, και η αποθήκευση του αποτελέσματος. Απαιτεί μόνο το Node.js 22 ή νεότερο.
Οδηγός βήμα προς βήμα
Βήμα 1: Εγκατάσταση του πακέτου
git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run buildΕπαληθεύστε την εγκατάσταση εισάγοντας την κλάση Document σε ένα νέο αρχείο TypeScript — αυτή η γραμμή πρέπει να λυθεί χωρίς σφάλμα μόλις το πακέτο εγκατασταθεί:
import { Document } from '@asposefoss/pdf';Βήμα 2: Εισαγωγή των απαιτούμενων κλάσεων
Εισάγετε Document για να φορτώσετε ή να δημιουργήσετε ένα PDF, και PageFormat εάν σκοπεύετε να ξεκινήσετε ένα έγγραφο από την αρχή:
import { Document, PageFormat } from '@asposefoss/pdf';Βήμα 3: Ανοίξτε ένα Υπάρχον PDF και Επεξεργαστείτε τις Σελίδες
Document.OpenFile() ανοίγει ένα PDF από διαδρομή αρχείου· Document.Open() δέχεται ένα Uint8Array στη μνήμη. Οι σελίδες μπορούν να εξεταστούν και να επεξεργαστούν επί τόπου, και Document.WriteTo() γράφει το αποτέλεσμα εκ νέου.
import { Document } from '@asposefoss/pdf';
// Open from disk (or Document.Open(uint8array) for in-memory data)
const doc = Document.OpenFile('input.pdf');
// Inspect and edit pages
const pages = doc.Pages;
console.log(pages.length);
pages[0].Rotate = 90;
doc.RemovePage(2); // 1-based page number
doc.Reorder([3, 1, 2]);
// Save
doc.WriteTo('output.pdf'); // or: const bytes = doc.Save();
Βήμα 4: Δημιουργήστε ένα Νέο PDF από την Αρχή
Document.New() ξεκινά ένα κενό έγγραφο σε ένα δεδομένο PageFormat. Page.AddText() τοποθετεί κειμένο με θέση, και Document.AddPage() προσθέτει περαιτέρω σελίδες.
import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4); // one blank A4 page
doc.Pages[0].AddText('Hello', 72, 720, { fontSize: 14 });
doc.AddPage(PageFormat.A4.landscape()); // append more as you go
doc.WriteTo('scratch.pdf');Βήμα 5: Χωρίστε, Εξάγετε και Συνδυάστε Σελίδες
Document.Split() επιστρέφει ένα Document ανά σελίδα. Document.ExtractPages() λαμβάνει μια λίστα σελίδων με αρίθμηση που ξεκινά από το 1, επιτρέποντας επαναλήψεις, και επιστρέφει ένα νέο Document μόνο με αυτές τις σελίδες. Document.Append() και Document.InsertPage() αντιγράφουν σελίδες μεταξύ εγγράφων, και Document.Merge() συνδυάζει πολλά έγγραφα σε ένα.
const parts = doc.Split(); // one Document per page
const chapter = doc.ExtractPages([3, 4, 5]); // subset (1-based, repeats allowed) as a new Document
docA.Append(docB); // copy all of docB's pages onto docA
docA.InsertPage(1, docB.Pages[0]); // copy a single page across documents
Κοινά Προβλήματα και Διορθώσεις
Document.OpenFile() throws InvalidPasswordError. Το PDF είναι προστατευμένο με κωδικό πρόσβασης και δεν δόθηκε κωδικός (ή δόθηκε λάθος). Pass { password: '...' } to Document.OpenFile() / Document.Open().
RemovePage() or ExtractPages() αφαιρεί ή εξάγει τη λάθος σελίδα. Αυτές οι μέθοδοι λαμβάνουν αριθμούς σελίδων που ξεκινούν από το 1, ενώ doc.Pages είναι ένας απλός πίνακας που ξεκινά από το 0 — οι δύο σχήματα δεικτοδότησης είναι εύκολο να μπερδευτούν.
WriteTo() η έξοδος είναι μεγαλύτερη από το αναμενόμενο. Η προεπιλεγμένη αποθήκευση δεν χρησιμοποιεί συμπίεση xref/object-stream. Pass { compressed: true } to Document.WriteTo() για να το ενεργοποιήσετε.
Επεξεργασίες που έγιναν στο doc.Pages[i] δεν εμφανίζονται στο αποθηκευμένο αρχείο. Οι επεξεργασίες σελίδας πρέπει να γίνουν πριν από την κλήση στο Document.WriteTo() / Document.Save() — δεν υπάρχει ξεχωριστό βήμα “commit”, αλλά οι επεξεργασίες που γίνονται μετά την αποθήκευση δεν θα αντικατοπτρίζονται σε αρχείο που έχει ήδη γραφτεί στον δίσκο.
Συχνές Ερωτήσεις
Πώς μπορώ να φορτώσω ένα PDF από buffer μνήμης αντί για διαδρομή αρχείου;
Περάστε ένα Uint8Array στο Document.Open() αντί για διαδρομή στο Document.OpenFile().
Πώς μπορώ να περιστρέψω μια σελίδα;
Ορίστε το page.Rotate σε 90, 180 ή 270, έπειτα αποθηκεύστε το έγγραφο με Document.WriteTo().
Μπορώ να αντιγράψω μία σελίδα από ένα έγγραφο σε άλλο;
Ναι — το Document.InsertPage(at, sourcePage) αντιγράφει μία σελίδα από ένα άλλο έγγραφο στη συγκεκριμένη θέση που ξεκινά από το 1, χωρίς να αντιγράψει ολόκληρο το έγγραφο.
Επιτρέπει το Document.ExtractPages() η ίδια σελίδα να εμφανιστεί δύο φορές;
Ναι. Η λίστα αριθμών σελίδων που περνιέται στο Document.ExtractPages() επιτρέπει επαναλήψεις, έτσι η ίδια πηγή σελίδας μπορεί να εμφανιστεί περισσότερες από μία φορές στο αποτέλεσμα.