Cum să lucrați cu Core PDF API în TypeScript
Acest ghid arată cum să deschideți, creați, editați, împărțiți și salvați documente PDF cu Aspose.PDF FOSS pentru TypeScript. Clasele Document și Page sunt punctele de intrare pentru fiecare operație din bibliotecă — deschiderea și crearea fișierelor, editarea paginilor la fața locului, împărțirea și combinarea documentelor și salvarea rezultatului. Necesită doar Node.js 22 sau o versiune ulterioară.
Ghid pas cu pas
Pasul 1: Instalați pachetul
git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run buildVerificați instalarea importând clasa Document într-un fișier nou TypeScript — această linie ar trebui să se rezolve fără eroare odată ce pachetul este instalat:
import { Document } from '@asposefoss/pdf';Pasul 2: Importați clasele necesare
Importă Document pentru a încărca sau crea un PDF și PageFormat dacă intenționezi să începi un document de la zero:
import { Document, PageFormat } from '@asposefoss/pdf';Pasul 3: Deschide un PDF existent și editează paginile
Document.OpenFile() deschide un PDF dintr-o cale de fișier; Document.Open() acceptă un Uint8Array în memorie. Paginile pot fi inspectate și editate la fața locului, iar Document.WriteTo() scrie rezultatul înapoi.
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();
Pasul 4: Creează un PDF nou de la zero
Document.New() începe un document gol la un PageFormat dat. Page.AddText() plasează text poziționat, iar Document.AddPage() adaugă pagini suplimentare.
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');Pasul 5: Împarte, extrage și combină paginile
Document.Split() returnează un Document pentru fiecare pagină. Document.ExtractPages() primește o listă de pagini bazată pe indexare de la 1, cu permisiune de repetiție și returnează un nou Document cu doar acele pagini. Document.Append() și Document.InsertPage() copiază pagini între documente, iar Document.Merge() combină mai multe documente într-unul.
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
Probleme comune și soluții
Document.OpenFile() throws InvalidPasswordError. PDF-ul este protejat prin parolă și nu a fost furnizată nicio parolă (sau a fost greșită). Pass { password: '...' } to Document.OpenFile() / Document.Open().
RemovePage() or ExtractPages() elimină sau extrage pagina greșită. Aceste metode folosesc numere de pagină începând de la 1, în timp ce doc.Pages este un simplu tablou indexat de la 0 — cele două scheme de indexare se pot amesteca ușor.
WriteTo() ieșirea este mai mare decât se aștepta. Salvarea implicită nu folosește compresia xref/object-stream. Pass { compressed: true } to Document.WriteTo() pentru a o activa.
Editări efectuate la doc.Pages[i] nu apar în fișierul salvat. Editările paginii trebuie să aibă loc înainte de apelul la Document.WriteTo() / Document.Save() — nu există un pas separat de „commit”, dar modificările efectuate după salvare nu vor fi reflectate într-un fișier deja scris pe disc.
Întrebări frecvente
Cum pot încărca un PDF dintr-un buffer în memorie în loc de o cale de fișier?
Transmite un Uint8Array către Document.Open() în loc de o cale către Document.OpenFile().
Cum pot roti o pagină?
Setați page.Rotate la 90, 180 sau 270, apoi salvați documentul cu Document.WriteTo().
Pot copia o singură pagină dintr-un document în altul?
Da — Document.InsertPage(at, sourcePage) copiază o pagină dintr-un alt document la poziția dată, numerotată de la 1, fără a copia întregul document.
Permite Document.ExtractPages() ca aceeași pagină să apară de două ori?
Da. Lista de numere de pagină transmisă către Document.ExtractPages() permite repetiții, astfel încât aceeași pagină sursă poate apărea de mai multe ori în rezultat.