Jak pracovat s jádrem PDF API v TypeScript
Tento průvodce ukazuje, jak otevírat, vytvářet, upravovat, rozdělovat a ukládat PDF dokumenty pomocí Aspose.PDF FOSS pro TypeScript. Třídy Document a Page jsou vstupními body pro každou operaci v knihovně — otevírání a vytváření souborů, úpravu stránek na místě, rozdělování a slučování dokumentů a ukládání výsledku. Vyžaduje pouze Node.js 22 nebo novější.
Průvodce krok za krokem
Krok 1: Nainstalujte balíček
git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run buildOvěřte instalaci importováním třídy Document v novém souboru TypeScript — tento řádek by se měl po instalaci balíčku vyřešit bez chyby:
import { Document } from '@asposefoss/pdf';Krok 2: Importujte požadované třídy
Importujte Document pro načtení nebo vytvoření PDF a PageFormat, pokud plánujete začít dokument od nuly:
import { Document, PageFormat } from '@asposefoss/pdf';Krok 3: Otevřete existující PDF a upravte stránky
Document.OpenFile() otevírá PDF z cesty k souboru; Document.Open() přijímá paměťový Uint8Array. Stránky lze prohlížet a upravovat přímo, a Document.WriteTo() zapíše výsledek zpět.
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();
Krok 4: Vytvořte nové PDF od začátku
Document.New() zahajuje prázdný dokument na zadaném PageFormat. Page.AddText() umisťuje text na určené pozice a Document.AddPage() přidává další stránky.
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');Krok 5: Rozdělit, extrahovat a spojit stránky
Document.Split() vrací jeden Document na stránku. Document.ExtractPages() přijímá seznam stránek číslovaný od 1, s povoleným opakováním, a vrací nový Document jen s těmito stránkami. Document.Append() a Document.InsertPage() kopírují stránky mezi dokumenty a Document.Merge() spojuje několik dokumentů do jednoho.
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
Běžné problémy a opravy
Document.OpenFile() throws InvalidPasswordError. PDF je chráněno heslem a nebylo zadáno žádné heslo (nebo bylo zadáno špatné). Pass { password: '...' } to Document.OpenFile() / Document.Open().
RemovePage() or ExtractPages() odstraňuje nebo extrahuje špatnou stránku. Tyto metody používají číslování stránek od jedné, zatímco doc.Pages je prostý pole indexované od nuly — oba schémata indexování se snadno zamění.
WriteTo() výstup je větší, než se očekávalo. Výchozí uložení nepoužívá kompresi xref/object-stream. Pass { compressed: true } to Document.WriteTo() pro její povolení.
Úpravy provedené v doc.Pages[i] neobjeví se v uloženém souboru. Úpravy stránky musí proběhnout před voláním Document.WriteTo() / Document.Save() — neexistuje samostatný krok „commit“, ale úpravy provedené po uložení nebudou odraženy v souboru, který již byl zapsán na disk.
Často kladené otázky
Jak načíst PDF z paměťového bufferu místo cesty k souboru?
Předávejte Uint8Array do Document.Open() místo cesty k Document.OpenFile().
Jak otočím stránku?
Nastavte page.Rotate na 90, 180 nebo 270, a pak uložte dokument pomocí Document.WriteTo().
Mohu zkopírovat jednu stránku z jednoho dokumentu do jiného?
Ano — Document.InsertPage(at, sourcePage) zkopíruje jednu stránku z jiného dokumentu na zadané 1-založené pozici, aniž by zkopíroval celý dokument.
Umožňuje Document.ExtractPages(), aby se stejná stránka objevila dvakrát?
Ano. Seznam čísel stránek předaný do Document.ExtractPages() umožňuje opakování, takže stejná zdrojová stránka může být ve výsledku zobrazena vícekrát.