Comment travailler avec le Core PDF API en TypeScript

Comment travailler avec le Core PDF API en TypeScript

Ce guide montre comment ouvrir, créer, modifier, diviser et enregistrer des documents PDF avec Aspose.PDF FOSS pour TypeScript. Les classes Document et Page sont les points d’entrée pour chaque opération de la bibliothèque — ouverture et création de fichiers, modification des pages sur place, division et combinaison de documents, et enregistrement du résultat. La bibliothèque ne nécessite que Node.js 22 ou une version ultérieure.

Guide étape par étape

Étape 1: installer le paquet

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

Vérifiez l’installation en important la classe Document dans un nouveau fichier TypeScript — cette ligne doit se résoudre sans erreur une fois le paquet installé:

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

Étape 2: importer les classes requises

Importez Document pour charger ou créer un PDF, et PageFormat si vous prévoyez de commencer un document à partir de zéro:

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

Étape3: Ouvrir un PDF existant et modifier les pages

Document.OpenFile() ouvre un PDF à partir d’un chemin de fichier; Document.Open() accepte un Uint8Array en mémoire. Les pages peuvent être inspectées et modifiées sur place, et Document.WriteTo() écrit le résultat en sortie.

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

Étape4: Créer un nouveau PDF à partir de rien

Document.New() démarre un document vierge à l’emplacement indiqué par PageFormat. Page.AddText() place du texte positionné, et Document.AddPage() ajoute d’autres pages.

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

Étape5: Diviser, extraire et combiner les pages

Document.Split() renvoie un Document par page. Document.ExtractPages() accepte une liste de pages indexée à 1, autorisant les répétitions, et renvoie un nouveau Document ne contenant que ces pages. Document.Append() et Document.InsertPage() copient des pages entre documents, et Document.Merge() combine plusieurs documents en un seul.

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

Problèmes courants et solutions

Document.OpenFile() throws InvalidPasswordError. Le PDF est protégé par mot de passe et aucun mot de passe (ou le mauvais) n’a été fourni. Pass { password: '...' } to Document.OpenFile() / Document.Open().

RemovePage() or ExtractPages() supprime ou extrait la mauvaise page. Ces méthodes utilisent des numéros de page à base 1, tandis que doc.Pages est un tableau à base 0 simple — les deux schémas d’indexation sont faciles à confondre.

WriteTo() la sortie est plus grande que prévu. L’enregistrement par défaut n’utilise pas la compression xref/object-stream. Pass { compressed: true } to Document.WriteTo() pour l’activer.

Modifications apportées à doc.Pages[i] n’apparaissent pas dans le fichier enregistré. Les modifications de page doivent se produire avant l’appel à Document.WriteTo() / Document.Save() — il n’y a pas d’étape “commit” distincte, mais les modifications apportées après l’enregistrement ne seront pas reflétées dans un fichier déjà écrit sur le disque.

Foire aux questions

Comment charger un PDF depuis un tampon en mémoire au lieu d’un chemin de fichier?

Transmettez un Uint8Array à Document.Open() au lieu d’un chemin vers Document.OpenFile().

Comment faire pivoter une page?

Définissez page.Rotate sur 90, 180 ou 270, puis enregistrez le document avec Document.WriteTo().

Puis-je copier une seule page d’un document dans un autre?

Oui — Document.InsertPage(at, sourcePage) copie une page d’un autre document à la position indiquée (indexée à 1), sans copier le document complet.

Est-ce que Document.ExtractPages() autorise la même page à apparaître deux fois?

Oui. La liste de numéros de pages transmise à Document.ExtractPages() autorise les répétitions, ainsi la même page source peut apparaître plusieurs fois dans le résultat.

Voir aussi

 Français