Aspose.PDF FOSS for TypeScript Características
Aspose.PDF FOSS para TypeScript Características
Esta página examina las principales áreas de capacidad de Aspose.PDF FOSS para TypeScript y las clases que actúan como sus puntos de entrada, para que puedas encontrar la página adecuada de la guía del desarrollador para la tarea en cuestión. Cada área se cubre en profundidad en su propia página.
Gestión de Documentos y Páginas
Document es el punto de entrada para cada operación: Document.New() inicia un documento en blanco en un PageFormat dado, y Document.OpenFile() / Document.Open() cargan uno existente desde una ruta de archivo o bytes en memoria. doc.Pages es un array de objetos Page, y Document.WriteTo() / Document.Save() escriben el resultado de nuevo.
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');Ver Core API para el ciclo de vida del documento, división, fusión y ensamblaje de páginas.
Conversión de Formato
Document.ToHtml(), Document.ToDocx() y Document.ToMarkdown() renderizan cada página de un documento a otro formato; los mismos métodos existen en Page para renderizar una sola página, además Page.ToImage() para salida rasterizada PNG y Page.ToSvg() para SVG independiente.
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
Ver Conversion para el conjunto completo de formatos de exportación y opciones.
Anotaciones
Page.AddHighlight() y su método hermano Page.Add*() crean anotaciones de marcado y forma; cada uno devuelve un manejador Annotation en vivo. Annotation.Flatten() incorpora la apariencia de una anotación directamente en el flujo de contenido de la página y la elimina de /Annots, haciéndola permanente y no interactiva.
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();Ver Annotations para el conjunto completo de tipos de anotación y búsqueda de texto de anotación.
Formularios y aplanado de campos
Los campos AcroForm se crean a través de doc.Form, una fachada Form, o directamente en un Page con Page.AddTextField() / Page.AddCheckbox(). Form.AddTextField() y Form.AddCheckbox() devuelven un manejador de campo cuyo propio método Flatten() lo incorpora al contenido estático de la misma manera que lo hace Annotation.Flatten().
const field = doc.Form.AddTextField({
page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();Ver Forms para el conjunto completo de tipos de campo.
Security
Document.OpenFile() y Document.Open() aceptan una opción password para abrir documentos protegidos, y Document.Save() acepta una opción encrypt para proteger uno al guardar. Document.Sign() y Document.Certify() añaden firmas digitales, y Document.VerifySignatures() verifica cada firma ya presente en un 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;
}Ver Security para cifrado, firma y verificación de firmas.
Redaction
Page.AddRedact() marca una región rectangular para la redacción sin cambiar aún la página; Page.ApplyRedactions() luego reescribe de forma destructiva el flujo de contenido, eliminando permanentemente el contenido marcado y devolviendo el número de redacciones aplicadas.
page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();Ver Redaction para modo de marcas vs. redactados aplicados con más detalle.
Estructura del documento y accesibilidad
Document.AutoTag() infiere y crea un /StructTreeRoot a partir del diseño de página — encabezados mediante agrupación por tamaño de fuente, párrafos y (con opts.alt) figuras — y devuelve un AutoTagReport. Document.GetStructTree() lee el árbol de estructura resultante, y Document.ValidatePdfUa() verifica el documento contra un subconjunto verificable por máquina de PDF/UA-1.
const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);Ver Structure para marcadores, etiquetado y destinos con nombre.
Consejos y mejores prácticas
- Modifique los objetos
Pagea los que se accede a través dedoc.Pagesdirectamente — una anotación, campo o página mantenida en una variable separada que no se obtuvo del documento en vivo no se refleja cuando llama aSave()/WriteTo(). Flatten()está disponible tanto enAnnotationcomo en los manejadores de campos de formulario (TextField,CheckboxFieldy los demás tipos de campo) — llámelo una vez que el contenido interactivo deba convertirse en contenido de página permanente y no editable.- Llame a
Page.ApplyRedactions()solo después de que se haya añadido cada marcaPage.AddRedact()para esa página; las marcas añadidas después de la llamada permanecen sin aplicar. - Capture
InvalidPasswordErrorespecíficamente antes de un manejo más amplio al llamar aDocument.OpenFile()/Document.Open()sobre entradas no confiables. Document.AutoTag()produce un árbol de estructura heurística — siempre verifique el resultado conDocument.GetStructTree()oValidatePdfUa()en lugar de asumir cumplimiento total de accesibilidad.
Problemas comunes
| Problema | Causa | Corrección |
|---|---|---|
Document.OpenFile() / Document.Open() lanza InvalidPasswordError | El documento está protegido con contraseña y no se proporcionó ninguna contraseña, o se proporcionó una incorrecta | Pase { password: '...' } a Document.OpenFile() / Document.Open() |
| La marca de redacción no tiene efecto | Page.ApplyRedactions() nunca se llamó, o se llamó antes de que se añadiera la marca | Llame a Page.AddRedact() para cada marca primero, luego Page.ApplyRedactions() una vez |
| El campo aplanado o la anotación sigue apareciendo como interactivo | Flatten() se llamó sobre una copia en lugar del manejador devuelto por la llamada a Add*() | Llame a Flatten() sobre el objeto devuelto directamente por AddTextField() / AddHighlight() / etc. |
ValidatePdfUa() sigue informando de estructura faltante después de AutoTag() | AutoTag() es heurístico y puede no etiquetar cada figura sin una callback alt | Pase una función opts.alt a AutoTag() para proporcionar texto alternativo para imágenes |
FAQ
¿Depende Aspose.PDF FOSS para TypeScript de un motor PDF comercial?
No. Se distribuye bajo la licencia MIT y su lógica de renderizado, conversión y firma se ejecuta completamente en TypeScript/JavaScript.
¿Puedo convertir un PDF directamente a HTML, Markdown o DOCX?
Sí — Document.ToHtml(), Document.ToMarkdown() y Document.ToDocx() renderizan cada página del documento; los métodos equivalentes Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() renderizan una sola página.
¿Cuál es la diferencia entre marcar y aplicar una redacción?
Page.AddRedact() solo marca una región — el contenido subyacente sigue presente y es seleccionable para copiar hasta que se llama a Page.ApplyRedactions(), que lo elimina de forma destructiva.
¿Cómo hago que una anotación o campo de formulario sea permanente e ineditable?
Llame a Flatten() sobre el objeto devuelto por la llamada Add*() que lo creó — Annotation.Flatten() para anotaciones, o el propio Flatten() del manejador de campo para campos AcroForm.
¿A dónde voy a continuación?
Getting Started cubre la instalación y un primer ejemplo funcional. Esta guía para desarrolladores continúa con páginas dedicadas para cada área de capacidad vinculada arriba.
API Reference Resumen
| Clase/Método | Descripción |
|---|---|
Document | Punto de entrada — crear, cargar, guardar y gestionar un PDF |
Document.New() / Document.OpenFile() / Document.Open() | Inicia un documento en blanco, o cárgalo desde una ruta de archivo o bytes en memoria |
Document.WriteTo() / Document.Save() | Escribe el documento en una ruta de archivo o devuelve los bytes |
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Renderiza cada página a otro formato |
Page.ToImage() / Page.ToSvg() | Renderizar una página única a PNG o SVG |
Page.AddHighlight() y otros métodos de anotación Page.Add*() | Crear una anotación, devolviendo un manejador activo |
Annotation.Flatten() | Incrustar la apariencia de una anotación en el contenido estático de la página |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm fachada y creación de campos |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | Agregar o verificar firmas digitales |
Page.AddRedact() / Page.ApplyRedactions() | Marcar y aplicar la redacción de contenido |
Document.AutoTag() / Document.GetStructTree() | Autor y leer el árbol de estructura lógica del documento |