Aspose.PDF FOSS for TypeScript Funzionalità
Caratteristiche Aspose.PDF FOSS per TypeScript
Questa pagina esamina le principali aree di funzionalità di Aspose.PDF FOSS per TypeScript e le classi che fungono da punti di ingresso, così da poter trovare la pagina della guida per sviluppatori più adatta al compito in questione. Ogni area è trattata in profondità nella sua pagina.
Gestione dei Documenti e delle Pagine
Document è il punto di ingresso per ogni operazione: Document.New() avvia un documento vuoto a un dato PageFormat, e Document.OpenFile() / Document.Open() caricano uno esistente da un percorso file o da byte in memoria. doc.Pages è un array di oggetti Page, e Document.WriteTo() / Document.Save() scrivono il risultato in uscita.
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');Vedi Core API per il ciclo di vita del documento, la divisione, l’unione e l’assemblaggio delle pagine.
Conversione di Formato
Document.ToHtml(), Document.ToDocx() e Document.ToMarkdown() rendono ogni pagina di un documento in un altro formato; gli stessi metodi esistono su Page per rendere una singola pagina, oltre a Page.ToImage() per l’output raster PNG e Page.ToSvg() per SVG autonomo.
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
Vedi Conversion per l’intero insieme di formati di esportazione e opzioni.
Annotazioni
Page.AddHighlight() e i suoi metodi fratelli Page.Add*() creano annotazioni di markup e forma; ciascuno restituisce un handle Annotation attivo. Annotation.Flatten() incorpora l’aspetto di un’annotazione direttamente nel flusso di contenuto della pagina e lo rimuove da /Annots, rendendolo permanente e non interattivo.
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();Vedi Annotations per l’intero insieme di tipi di annotazione e la ricerca del testo delle annotazioni.
Moduli e appiattimento dei campi
AcroForm i campi sono creati tramite doc.Form, una facciata Form, o direttamente su un Page con Page.AddTextField() / Page.AddCheckbox(). Form.AddTextField() e Form.AddCheckbox() restituiscono un handle di campo il cui metodo Flatten() lo incorpora nel contenuto statico nello stesso modo in cui lo fa Annotation.Flatten().
const field = doc.Form.AddTextField({
page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();Vedi Forms per l’intero insieme di tipi di campo.
Security
Document.OpenFile() e Document.Open() accettano un’opzione password per aprire documenti protetti, e Document.Save() accetta un’opzione encrypt per proteggerne uno al salvataggio. Document.Sign() e Document.Certify() aggiungono firme digitali, e Document.VerifySignatures() verifica ogni firma già presente in 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;
}Vedi Security per la crittografia, la firma e la verifica della firma.
Redaction
Page.AddRedact() segna una regione rettangolare per la redazione senza ancora modificare la pagina; Page.ApplyRedactions() quindi riscrive distruttivamente lo stream di contenuto, rimuovendo definitivamente il contenuto contrassegnato e restituendo il numero di redazioni applicate.
page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();Vedi Redaction per mark-mode vs. redazioni applicate in modo più dettagliato.
Struttura del documento e accessibilità
Document.AutoTag() inferisce e crea un /StructTreeRoot dal layout della pagina — intestazioni per raggruppamento per dimensione del carattere, paragrafi e (con opts.alt) figure — e restituisce un AutoTagReport. Document.GetStructTree() legge nuovamente l’albero di struttura risultante, e Document.ValidatePdfUa() verifica il documento rispetto a un sottoinsieme verificabile da macchina di PDF/UA-1.
const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);Vedi Structure per le outline, il tagging e le destinazioni nominate.
Suggerimenti e migliori pratiche
- Modifica direttamente gli oggetti
Pageraggiunti tramitedoc.Pages— un’annotazione, campo o pagina mantenuta in una variabile separata che non è stata ottenuta dal documento live non viene riflessa quando chiamiSave()/WriteTo(). Flatten()è disponibile sia suAnnotationsia sui gestori di campi modulo (TextField,CheckboxFielde gli altri tipi di campo) — chiamalo una volta che il contenuto interattivo dovrebbe diventare contenuto di pagina permanente e non modificabile.- Chiama
Page.ApplyRedactions()solo dopo che ogni contrassegnoPage.AddRedact()per quella pagina è stato aggiunto; i contrassegni aggiunti dopo la chiamata rimangono non applicati. - Cattura
InvalidPasswordErrorspecificamente prima di un catch-all più ampio quando chiamiDocument.OpenFile()/Document.Open()su input non attendibili. Document.AutoTag()genera un albero di struttura euristico — verifica sempre il risultato conDocument.GetStructTree()oValidatePdfUa()invece di presumere la piena conformità di accessibilità.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
Document.OpenFile() / Document.Open() lancia InvalidPasswordError | Il documento è protetto da password e non è stata fornita alcuna password, o è stata fornita quella sbagliata | Passa { password: '...' } a Document.OpenFile() / Document.Open() |
| Il segno di redazione non ha effetto | Page.ApplyRedactions() non è mai stato chiamato, o è stato chiamato prima che il segno fosse aggiunto | Chiama Page.AddRedact() per ogni segno prima, poi Page.ApplyRedactions() una volta |
| Il campo o l’annotazione appiattito appare ancora come interattivo | Flatten() è stato chiamato su una copia anziché sull’handle restituito dalla chiamata Add*() | Chiama Flatten() sull’oggetto restituito direttamente da AddTextField() / AddHighlight() / ecc. |
ValidatePdfUa() segnala ancora struttura mancante dopo AutoTag() | AutoTag() è euristico e potrebbe non etichettare ogni figura senza una callback alt | Passa una funzione opts.alt a AutoTag() per fornire testo alternativo per le immagini |
FAQ
Il Aspose.PDF FOSS per TypeScript dipende da un motore PDF commerciale?
No. È rilasciato sotto licenza MIT e la sua logica di rendering, conversione e firma viene eseguita interamente in TypeScript/JavaScript.
Posso convertire un PDF direttamente in HTML, Markdown o DOCX?
Sì — Document.ToHtml(), Document.ToMarkdown() e Document.ToDocx() rendono ogni pagina del documento; i metodi equivalenti Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() rendono una singola pagina.
Qual è la differenza tra marcare e applicare una censura?
Page.AddRedact() segna solo una regione — il contenuto sottostante è ancora presente e selezionabile per la copia finché non viene chiamato Page.ApplyRedactions(), che lo rimuove in modo distruttivo.
Come posso rendere un’annotazione o un campo modulo permanente e non modificabile?
Chiama Flatten() sull’oggetto restituito dalla chiamata Add*() che lo ha creato — Annotation.Flatten() per le annotazioni, o il Flatten() proprio della maniglia del campo per i campi AcroForm.
Dove devo andare dopo?
Getting Started copre l’installazione e un primo esempio funzionante. Questa guida per gli sviluppatori continua con pagine dedicate per ciascuna area di capacità collegata sopra.
API Reference Riepilogo
| Classe/Metodo | Descrizione |
|---|---|
Document | Punto di ingresso — crea, carica, salva e gestisci un PDF |
Document.New() / Document.OpenFile() / Document.Open() | Avvia un documento vuoto, oppure caricane uno da un percorso file o da byte in memoria |
Document.WriteTo() / Document.Save() | Scrivi il documento su un percorso file o restituisci i byte |
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Renderizza ogni pagina in un altro formato |
Page.ToImage() / Page.ToSvg() | Genera una singola pagina in PNG o SVG |
Page.AddHighlight() e altri metodi di annotazione Page.Add*() | Crea un’annotazione, restituendo un handle attivo |
Annotation.Flatten() | Incorpora l’aspetto di un’annotazione nel contenuto statico della pagina |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm facciata e creazione del campo |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | Aggiungi o verifica le firme digitali |
Page.AddRedact() / Page.ApplyRedactions() | Contrassegna e applica la redazione del contenuto |
Document.AutoTag() / Document.GetStructTree() | Autore e leggi l’albero della struttura logica del documento |