Jak pracovat s jádrem PDF API v TypeScript

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 build

Ověř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.

Viz také:

 Čeština