Come lavorare con il Core PDF API in TypeScript

Come lavorare con il Core PDF API in TypeScript

Questa guida mostra come aprire, creare, modificare, dividere e salvare documenti PDF con Aspose.PDF FOSS per TypeScript. Le classi Document e Page sono i punti di ingresso per ogni operazione nella libreria — apertura e creazione di file, modifica delle pagine in loco, divisione e combinazione dei documenti, e salvataggio del risultato. Richiede solo Node.js 22 o successivo.

Guida passo passo

Passo 1: Installa il pacchetto

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

Verifica l’installazione importando la classe Document in un nuovo file TypeScript — questa riga dovrebbe risolversi senza errori una volta che il pacchetto è installato:

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

Passo 2: Importa le classi richieste

Importa Document per caricare o creare un PDF, e PageFormat se prevedi di iniziare un documento da zero:

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

Passo 3: Apri un PDF esistente e modifica le pagine

Document.OpenFile() apre un PDF da un percorso file; Document.Open() accetta un Uint8Array in memoria. Le pagine possono essere ispezionate e modificate in loco, e Document.WriteTo() scrive nuovamente il risultato.

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

Passo 4: Crea un nuovo PDF da zero

Document.New() avvia un documento vuoto in un dato PageFormat. Page.AddText() inserisce testo posizionato, e Document.AddPage() aggiunge ulteriori pagine.

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

Passo 5: Dividi, estrai e combina le pagine

Document.Split() restituisce un Document per pagina. Document.ExtractPages() accetta un elenco di pagine basato su indice 1, con permessi di ripetizione, e restituisce un nuovo Document contenente solo quelle pagine. Document.Append() e Document.InsertPage() copiano pagine tra documenti, e Document.Merge() combina più documenti in uno.

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

Problemi comuni e soluzioni

Document.OpenFile() throws InvalidPasswordError. Il PDF è protetto da password e non è stata fornita alcuna password (o è stata fornita quella errata). Pass { password: '...' } to Document.OpenFile() / Document.Open().

RemovePage() or ExtractPages() rimuove o estrae la pagina sbagliata. Questi metodi usano numeri di pagina a base 1, mentre doc.Pages è un semplice array a base 0 — i due schemi di indicizzazione sono facili da confondere.

WriteTo() l’output è più grande del previsto. Il salvataggio predefinito non utilizza la compressione xref/object-stream. Pass { compressed: true } to Document.WriteTo() per abilitarla.

Modifiche apportate a doc.Pages[i] non compaiono nel file salvato. Le modifiche alla pagina devono avvenire prima della chiamata a Document.WriteTo() / Document.Save() — non esiste uno step di “commit” separato, ma le modifiche effettuate dopo il salvataggio non saranno riflesse in un file già scritto su disco.

Domande frequenti

Come posso caricare un PDF da un buffer in memoria invece che da un percorso file?

Passa un Uint8Array a Document.Open() invece di un percorso a Document.OpenFile().

Come ruoto una pagina?

Imposta page.Rotate su 90, 180 o 270, quindi salva il documento con Document.WriteTo().

Posso copiare una singola pagina da un documento a un altro?

Sì — Document.InsertPage(at, sourcePage) copia una pagina da un altro documento nella posizione a base 1 indicata, senza copiare l’intero documento.

Consente Document.ExtractPages() che la stessa pagina appaia due volte?

Sì. L’elenco di numeri di pagina passato a Document.ExtractPages() consente ripetizioni, quindi la stessa pagina di origine può comparire più di una volta nel risultato.

Vedi anche

 Italiano