Aspose.PDF FOSS for TypeScript Recursos
Aspose.PDF FOSS para TypeScript Recursos
Esta página examina as principais áreas de capacidade do Aspose.PDF FOSS para TypeScript e as classes que funcionam como seus pontos de entrada, para que você possa encontrar a página de guia do desenvolvedor correta para a tarefa em questão. Cada área é abordada em profundidade em sua própria página.
Gerenciamento de Documentos e Páginas
Document é o ponto de entrada para cada operação: Document.New() inicia um documento em branco em um determinado PageFormat, e Document.OpenFile() / Document.Open() carregam um existente a partir de um caminho de arquivo ou de bytes em memória. doc.Pages é um array de objetos Page, e Document.WriteTo() / Document.Save() escrevem o resultado de volta.
import { Document, PageFormat } from '@asposefoss/pdf';
const doc = Document.New(PageFormat.A4);
doc.Pages[0].AddText('Hello from Aspose.PDF FOSS!', 72, 720, { fontSize: 14 });
doc.WriteTo('hello.pdf');Veja Core API para o ciclo de vida do documento, divisão, mesclagem e montagem de páginas.
Conversão de Formato
Document.ToHtml(), Document.ToDocx() e Document.ToMarkdown() renderizam cada página de um documento para outro formato; os mesmos métodos existem em Page para renderizar uma única página, além de Page.ToImage() para saída raster PNG e Page.ToSvg() para SVG autônomo.
const doc = Document.OpenFile('report.pdf');
const html = doc.ToHtml(); // standalone HTML, all pages
const png = doc.Pages[0].ToImage({ scale: 2 }); // PNG bytes for page 1
Veja Conversion para o conjunto completo de formatos de exportação e opções.
Anotações
Page.AddHighlight() e seu método irmão Page.Add*() criam anotações de marcação e forma; cada um retorna um manipulador Annotation ativo. Annotation.Flatten() incorpora a aparência de uma anotação diretamente no fluxo de conteúdo da página e a remove de /Annots, tornando-a permanente e não interativa.
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();Veja Annotations para o conjunto completo de tipos de anotação e busca de texto de anotação.
Formulários e Aplainamento de Campos
Campos AcroForm são criados através de doc.Form, uma fachada Form, ou diretamente em um Page com Page.AddTextField() / Page.AddCheckbox(). Form.AddTextField() e Form.AddCheckbox() retornam um manipulador de campo cujo próprio método Flatten() o incorpora ao conteúdo estático da mesma forma que Annotation.Flatten() faz.
const field = doc.Form.AddTextField({
page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();Veja Forms para o conjunto completo de tipos de campo.
Security
Document.OpenFile() e Document.Open() aceitam uma opção password para abrir documentos protegidos, e Document.Save() aceita uma opção encrypt para proteger um ao salvar. Document.Sign() e Document.Certify() adicionam assinaturas digitais, e Document.VerifySignatures() verifica todas as assinaturas já presentes em um documento.
import { Document, InvalidPasswordError } from '@asposefoss/pdf';
try {
const doc = Document.OpenFile('secret.pdf', { password: 'hunter2' });
doc.WriteTo('decrypted.pdf');
} catch (e) {
if (e instanceof InvalidPasswordError) console.error('wrong password');
else throw e;
}Veja Security para criptografia, assinatura e verificação de assinatura.
Redaction
Page.AddRedact() marca uma região retangular para redação sem ainda alterar a página; Page.ApplyRedactions() então reescreve destrutivamente o fluxo de conteúdo, removendo permanentemente o conteúdo marcado e retornando o número de redações aplicadas.
page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();Veja Redaction para modo de marcação vs. redações aplicadas em mais detalhes.
Estrutura do Documento e Acessibilidade
Document.AutoTag() infere e cria um /StructTreeRoot a partir do layout da página — cabeçalhos por agrupamento de tamanho de fonte, parágrafos e (com opts.alt) figuras — e retorna um AutoTagReport. Document.GetStructTree() lê de volta a árvore de estrutura resultante, e Document.ValidatePdfUa() verifica o documento contra um subconjunto verificável por máquina de PDF/UA-1.
const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);Veja Structure para contornos, marcação e destinos nomeados.
Dicas e Melhores Práticas
- Modifique os objetos
Pagealcançados através dedoc.Pagesdiretamente — uma anotação, campo ou página mantida em uma variável separada que não foi obtida do documento ao vivo não é refletida quando você chamaSave()/WriteTo(). Flatten()está disponível tanto emAnnotationquanto nos manipuladores de campo de formulário (TextField,CheckboxFielde os outros tipos de campo) — chame-o quando o conteúdo interativo deve se tornar permanente, conteúdo de página não editável.- Chame
Page.ApplyRedactions()somente depois que cada marcaPage.AddRedact()para essa página tenha sido adicionada; marcas adicionadas após a chamada permanecem não aplicadas. - Capture
InvalidPasswordErrorespecificamente antes de um tratamento mais amplo ao chamarDocument.OpenFile()/Document.Open()em entradas não confiáveis. Document.AutoTag()produz uma árvore de estrutura heurística — sempre verifique pontualmente o resultado comDocument.GetStructTree()ouValidatePdfUa()em vez de presumir conformidade total de acessibilidade.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
Document.OpenFile() / Document.Open() lança InvalidPasswordError | O documento está protegido por senha e nenhuma senha, ou a senha errada, foi fornecida | Passe { password: '...' } para Document.OpenFile() / Document.Open() |
| Marca de redação não tem efeito | Page.ApplyRedactions() nunca foi chamado, ou foi chamado antes da marca ser adicionada | Chame Page.AddRedact() para cada marca primeiro, então Page.ApplyRedactions() uma vez |
| Campo ou anotação achatado ainda é exibido como interativo | Flatten() foi chamado em uma cópia em vez do identificador retornado pela chamada Add*() | Chame Flatten() no objeto retornado diretamente por AddTextField() / AddHighlight() / etc. |
ValidatePdfUa() ainda relata estrutura ausente após AutoTag() | AutoTag() é heurístico e pode não marcar todas as figuras sem um callback alt | Passe uma função opts.alt para AutoTag() para fornecer texto alternativo para imagens |
FAQ
O Aspose.PDF FOSS para TypeScript depende de um mecanismo PDF comercial?
Não. É lançado sob a licença MIT e sua lógica de renderização, conversão e assinatura é executada inteiramente em TypeScript/JavaScript.
Posso converter um PDF diretamente para HTML, Markdown ou DOCX?
Sim — Document.ToHtml(), Document.ToMarkdown() e Document.ToDocx() renderizam todas as páginas do documento; os métodos equivalentes Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() renderizam uma única página.
Qual é a diferença entre marcar e aplicar uma redação?
Page.AddRedact() apenas marca uma região — o conteúdo subjacente ainda está presente e pode ser copiado e selecionado até que Page.ApplyRedactions() seja chamado, o que o remove de forma destrutiva.
Como faço para tornar uma anotação ou campo de formulário permanente e não editável?
Chame Flatten() no objeto retornado pela chamada Add*() que o criou — Annotation.Flatten() para anotações, ou o próprio Flatten() do manipulador de campo para campos AcroForm.
Para onde devo ir a seguir?
Getting Started cobre a instalação e um primeiro exemplo funcional. Este guia do desenvolvedor continua com páginas dedicadas para cada área de capacidade vinculada acima.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
Document | Ponto de entrada — criar, carregar, salvar e gerenciar um PDF |
Document.New() / Document.OpenFile() / Document.Open() | Inicie um documento em branco, ou carregue um a partir de um caminho de arquivo ou de bytes na memória |
Document.WriteTo() / Document.Save() | Grave o documento em um caminho de arquivo ou retorne bytes |
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Renderize cada página para outro formato |
Page.ToImage() / Page.ToSvg() | Renderizar uma única página para PNG ou SVG |
Page.AddHighlight() e outros métodos de anotação Page.Add*() | Criar uma anotação, retornando um manipulador ativo |
Annotation.Flatten() | Incorporar a aparência de uma anotação ao conteúdo estático da página |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm fachada e criação de campo |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | Adicionar ou verificar assinaturas digitais |
Page.AddRedact() / Page.ApplyRedactions() | Marcar e aplicar a redação de conteúdo |
Document.AutoTag() / Document.GetStructTree() | Autor e ler a árvore de estrutura lógica do documento |