Hoe te werken met de Core PDF API in TypeScript

Hoe te werken met de Core PDF API in TypeScript

Deze gids laat zien hoe je PDF-documenten kunt openen, maken, bewerken, splitsen en opslaan met Aspose.PDF FOSS voor TypeScript. De Document en Page klassen zijn de toegangspunten voor elke bewerking in de bibliotheek — het openen en aanmaken van bestanden, het bewerken van pagina’s in-place, het splitsen en combineren van documenten, en het opslaan van het resultaat. Het vereist alleen Node.js 22 of hoger.

Stapsgewijze gids

Stap 1: Installeer het pakket

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

Verifieer de installatie door de Document klasse te importeren in een nieuw TypeScript bestand — deze regel zou zonder fout moeten worden opgelost zodra het pakket is geïnstalleerd:

import { Document } from '@asposefoss/pdf';

Stap 2: Importeer vereiste klassen

Importeer Document om een PDF te laden of te maken, en PageFormat als je van plan bent een document vanaf nul te starten:

import { Document, PageFormat } from '@asposefoss/pdf';

Stap 3: Open een bestaande PDF en bewerk pagina’s

Document.OpenFile() opent een PDF vanuit een bestandspad; Document.Open() accepteert een in-memory Uint8Array. Pagina’s kunnen worden geïnspecteerd en ter plaatse bewerkt, en Document.WriteTo() schrijft het resultaat terug weg.

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();

Stap 4: Maak een nieuwe PDF vanaf nul

Document.New() start een leeg document op een gegeven PageFormat. Page.AddText() plaatst gepositioneerde tekst, en Document.AddPage() voegt verdere pagina’s toe.

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');

Stap 5: Splitsen, extraheren en pagina’s combineren

Document.Split() retourneert één Document per pagina. Document.ExtractPages() neemt een 1-gebaseerde, herhalingen-toegestane paginalijst en retourneert een nieuwe Document met alleen die pagina’s. Document.Append() en Document.InsertPage() kopiëren pagina’s tussen documenten, en Document.Merge() combineert meerdere documenten tot één.

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

Veelvoorkomende problemen en oplossingen

Document.OpenFile() throws InvalidPasswordError. De PDF is beveiligd met een wachtwoord en er is geen wachtwoord (of het verkeerde) opgegeven. Pass { password: '...' } to Document.OpenFile() / Document.Open().

RemovePage() or ExtractPages() verwijdert of extraheert de verkeerde pagina. Deze methoden gebruiken paginanummers die bij 1 beginnen, terwijl doc.Pages een gewone array met indexering vanaf 0 is — de twee indexeringsschema’s zijn gemakkelijk te verwarren.

WriteTo() output is groter dan verwacht. De standaardopslag gebruikt geen xref/object-streamcompressie. Pass { compressed: true } to Document.WriteTo() om het in te schakelen.

Aanpassingen gemaakt aan doc.Pages[i] verschijnen niet in het opgeslagen bestand. Pagina-bewerkingen moeten plaatsvinden vóór de aanroep van Document.WriteTo() / Document.Save() — er is geen aparte “commit”-stap, maar bewerkingen die na het opslaan zijn gemaakt, zullen niet worden weergegeven in een bestand dat al naar schijf is geschreven.

Veelgestelde vragen

Hoe laad ik een PDF vanuit een in-memory buffer in plaats van een bestandspad?

Geef een Uint8Array door aan Document.Open() in plaats van een pad naar Document.OpenFile().

Hoe roteer ik een pagina?

Stel page.Rotate in op 90, 180 of 270, en sla vervolgens het document op met Document.WriteTo().

Kan ik een enkele pagina van het ene document naar het andere kopiëren?

Ja — Document.InsertPage(at, sourcePage) kopieert één pagina uit een ander document op de opgegeven 1-gebaseerde positie, zonder het hele document te kopiëren.

Staat Document.ExtractPages() toe dat dezelfde pagina twee keer verschijnt?

Ja. De paginanummerlijst die aan Document.ExtractPages() wordt doorgegeven staat herhalingen toe, zodat dezelfde bronpagina meer dan eens in het resultaat kan voorkomen.

Zie ook

 Nederlands