Como trabalhar com o Core PDF API em TypeScript

Como trabalhar com o Core PDF API em TypeScript

Este guia mostra como abrir, criar, editar, dividir e salvar documentos PDF com Aspose.PDF FOSS para TypeScript. As classes Document e Page são os pontos de entrada para cada operação na biblioteca — abrir e criar arquivos, editar páginas in situ, dividir e combinar documentos, e salvar o resultado. Requer apenas Node.js 22 ou superior.

Guia passo a passo

Etapa 1: Instalar o pacote

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 a instalação importando a classe Document em um novo arquivo TypeScript — esta linha deve ser resolvida sem erro assim que o pacote for instalado:

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

Etapa 2: Importar classes necessárias

Importe Document para carregar ou criar um PDF, e PageFormat se você pretende iniciar um documento do zero:

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

Etapa 3: Abra um PDF existente e edite páginas

Document.OpenFile() abre um PDF a partir de um caminho de arquivo; Document.Open() aceita um Uint8Array em memória. As páginas podem ser inspecionadas e editadas no local, e Document.WriteTo() grava o resultado de volta.

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

Etapa 4: Crie um novo PDF do zero

Document.New() inicia um documento em branco em um determinado PageFormat. Page.AddText() posiciona texto, e Document.AddPage() adiciona páginas adicionais.

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

Etapa 5: Divida, extraia e combine páginas

Document.Split() retorna um Document por página. Document.ExtractPages() recebe uma lista de páginas baseada em 1, permitindo repetições, e retorna um novo Document contendo apenas essas páginas. Document.Append() e Document.InsertPage() copiam páginas entre documentos, e Document.Merge() combina vários documentos em um.

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 Comuns e Soluções

Document.OpenFile() throws InvalidPasswordError. O PDF está protegido por senha e nenhuma senha (ou a errada) foi fornecida. Pass { password: '...' } to Document.OpenFile() / Document.Open().

RemovePage() or ExtractPages() remove ou extrai a página errada. Esses métodos utilizam números de página baseados em 1, enquanto doc.Pages é um array simples baseado em 0 — os dois esquemas de indexação são fáceis de confundir.

WriteTo() a saída é maior do que o esperado. A gravação padrão não usa compressão xref/object-stream. Pass { compressed: true } to Document.WriteTo() para habilitá-la.

Edições feitas em doc.Pages[i] não aparecem no arquivo salvo. As edições da página devem ocorrer antes da chamada para Document.WriteTo() / Document.Save() — não há uma etapa de “commit” separada, mas edições feitas após salvar não serão refletidas em um arquivo já gravado no disco.

Perguntas Frequentes

Como carregar um PDF a partir de um buffer em memória em vez de um caminho de arquivo?

Passe um Uint8Array para Document.Open() em vez de um caminho para Document.OpenFile().

Como faço para girar uma página?

Defina page.Rotate como 90, 180 ou 270, então salve o documento com Document.WriteTo().

Posso copiar uma única página de um documento para outro?

Sim — Document.InsertPage(at, sourcePage) copia uma página de outro documento na posição baseada em 1 fornecida, sem copiar o documento inteiro.

O Document.ExtractPages() permite que a mesma página apareça duas vezes?

Sim. A lista de números de página passada para Document.ExtractPages() permite repetições, de modo que a mesma página de origem pode aparecer mais de uma vez no resultado.

Ver também

 Português