Cómo trabajar con el Core PDF API en TypeScript

Cómo trabajar con el Core PDF API en TypeScript

Esta guía muestra cómo abrir, crear, editar, dividir y guardar documentos PDF con Aspose.PDF FOSS para TypeScript. Las clases Document y Page son los puntos de entrada para cada operación en la biblioteca — abrir y crear archivos, editar páginas in situ, dividir y combinar documentos, y guardar el resultado. Sólo requiere Node.js 22 o posterior.

Guía paso a paso

Paso 1: Instalar el paquete

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

Verifique la instalación importando la clase Document en un nuevo archivo TypeScript — esta línea debería resolverse sin error una vez que el paquete esté instalado:

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

Paso 2: Importar clases requeridas

Importa Document para cargar o crear un PDF, y PageFormat si planeas comenzar un documento desde cero:

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

Paso 3: Abrir un PDF existente y editar páginas

Document.OpenFile() abre un PDF desde una ruta de archivo; Document.Open() acepta un Uint8Array en memoria. Las páginas pueden inspeccionarse y editarse in situ, y Document.WriteTo() escribe el resultado de vuelta.

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

Paso 4: Crear un PDF nuevo desde cero

Document.New() inicia un documento en blanco en un PageFormat dado. Page.AddText() coloca texto posicionado, y Document.AddPage() agrega más páginas.

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

Paso 5: Dividir, extraer y combinar páginas

Document.Split() devuelve un Document por página. Document.ExtractPages() toma una lista de páginas basada en 1, que permite repeticiones, y devuelve un nuevo Document con solo esas páginas. Document.Append() y Document.InsertPage() copian páginas entre documentos, y Document.Merge() combina varios documentos en 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

Problemas comunes y soluciones

Document.OpenFile() throws InvalidPasswordError. El PDF está protegido con contraseña y no se proporcionó una contraseña (o se proporcionó una incorrecta). Pass { password: '...' } to Document.OpenFile() / Document.Open().

RemovePage() or ExtractPages() elimina o extrae la página incorrecta. Estos métodos utilizan números de página basados en 1, mientras que doc.Pages es una simple matriz basada en 0 — los dos esquemas de indexación son fáciles de confundir.

WriteTo() la salida es más grande de lo esperado. La guardado predeterminado no usa compresión xref/object-stream. Pass { compressed: true } to Document.WriteTo() para habilitarla.

Ediciones realizadas a doc.Pages[i] no aparecen en el archivo guardado. Las ediciones de la página deben realizarse antes de la llamada a Document.WriteTo() / Document.Save() — no hay un paso de “commit” separado, pero las ediciones realizadas después de guardar no se reflejarán en un archivo que ya se haya escrito en el disco.

Preguntas frecuentes

¿Cómo cargo un PDF desde un búfer en memoria en lugar de una ruta de archivo?

Pase un Uint8Array a Document.Open() en lugar de una ruta a Document.OpenFile().

¿Cómo giro una página?

Establezca page.Rotate a 90, 180 o 270, luego guarde el documento con Document.WriteTo().

¿Puedo copiar una sola página de un documento a otro?

Sí — Document.InsertPage(at, sourcePage) copia una página de otro documento en la posición dada basada en 1, sin copiar todo el documento.

¿Document.ExtractPages() permite que la misma página aparezca dos veces?

Sí. La lista de números de página pasada a Document.ExtractPages() permite repeticiones, por lo que la misma página de origen puede aparecer más de una vez en el resultado.

Ver también

 Español