Aspose.PDF FOSS for TypeScript Fonctionnalités
Aspose.PDF FOSS pour TypeScript Fonctionnalités
Cette page passe en revue les principales zones de capacité de Aspose.PDF FOSS pour TypeScript ainsi que les classes qui servent de points d’entrée, afin que vous puissiez trouver la page du guide du développeur appropriée pour la tâche à accomplir. Chaque zone est traitée en profondeur sur sa propre page.
Gestion des documents et des pages
Document est le point d’entrée pour chaque opération: Document.New() démarre un document vierge à un PageFormat donné, et Document.OpenFile() / Document.Open() chargent un existant depuis un chemin de fichier ou des octets en mémoire. doc.Pages est un tableau d’objets Page, et Document.WriteTo() / Document.Save() écrivent le résultat en sortie.
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');Voir Core API pour le cycle de vie des documents, le fractionnement, la fusion et l’assemblage des pages.
Conversion de format
Document.ToHtml(), Document.ToDocx() et Document.ToMarkdown() rendent chaque page d’un document dans un autre format; les mêmes méthodes existent sur Page pour rendre une page unique, ainsi que Page.ToImage() pour la sortie raster PNG et Page.ToSvg() pour le SVG autonome.
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
Voir Conversion pour l’ensemble complet des formats d’exportation et des options.
Annotations
Page.AddHighlight() et sa méthode sœur Page.Add*() créent des annotations de balisage et de forme; chacune renvoie un handle Annotation en direct. Annotation.Flatten() intègre l’apparence d’une annotation directement dans le flux de contenu de la page et la supprime de /Annots, la rendant permanente et non interactive.
const highlight = doc.Pages[0].AddHighlight({ quadPoints: [72, 700, 200, 700, 72, 685, 200, 685] });
highlight.Flatten();Voir Annotations pour l’ensemble complet des types d’annotation et la recherche de texte d’annotation.
Formulaires et aplatissement des champs
AcroForm les champs sont créés via doc.Form, une façade Form, ou directement sur un Page avec Page.AddTextField() / Page.AddCheckbox(). Form.AddTextField() et Form.AddCheckbox() renvoient un handle de champ dont la propre méthode Flatten() l’intègre dans le contenu statique de la même manière que Annotation.Flatten() le fait.
const field = doc.Form.AddTextField({
page: 0, rect: [72, 660, 300, 680], name: 'FullName', value: 'Jane Doe',
});
field.Flatten();Voir Forms pour l’ensemble complet des types de champs.
Security
Document.OpenFile() et Document.Open() acceptent une option password pour ouvrir des documents protégés, et Document.Save() accepte une option encrypt pour en protéger un lors de l’enregistrement. Document.Sign() et Document.Certify() ajoutent des signatures numériques, et Document.VerifySignatures() vérifie chaque signature déjà présente dans un document.
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;
}Voir Security pour le chiffrement, la signature et la vérification de signature.
Redaction
Page.AddRedact() marque une région rectangulaire pour la rédaction sans modifier encore la page ; Page.ApplyRedactions() réécrit alors de manière destructive le flux de contenu, supprimant définitivement le contenu marqué et renvoie le nombre de rédactions appliquées.
page.AddRedact({ rect: [220, 550, 460, 566], fill: [0, 0, 0], overlayText: '[REDACTED]' });
const applied = page.ApplyRedactions();Voir Redaction pour le mode de marquage versus les rédactions appliquées, plus en détail.
Structure du document et accessibilité
Document.AutoTag() déduit et crée un /StructTreeRoot à partir de la mise en page — titres par regroupement de tailles de police, paragraphes, et (avec opts.alt) figures — et renvoie un AutoTagReport. Document.GetStructTree() relit l’arbre de structure résultant, et Document.ValidatePdfUa() vérifie le document par rapport à un sous-ensemble vérifiable par machine de PDF/UA-1.
const report = doc.AutoTag({ lang: 'en-US', title: 'Quarterly Report', tables: true });
console.log(report);Voir Structure pour les signets, le balisage et les destinations nommées.
Conseils et meilleures pratiques
- Modifiez les objets
Pageatteints viadoc.Pagesdirectement — une annotation, un champ ou une page détenus dans une variable distincte qui n’a pas été obtenue à partir du document en direct n’est pas reflétée lorsque vous appelezSave()/WriteTo(). Flatten()est disponible à la fois surAnnotationet les poignées de champs de formulaire (TextField,CheckboxFieldet les autres types de champs) — appelez-le une fois que le contenu interactif doit devenir du contenu de page permanent, non modifiable.- Appelez
Page.ApplyRedactions()uniquement après que chaque marquePage.AddRedact()pour cette page a été ajoutée; les marques ajoutées après l’appel restent non appliquées. - Attrapez
InvalidPasswordErrorspécifiquement avant un attrape-tout plus large lors de l’appel deDocument.OpenFile()/Document.Open()sur des entrées non fiables. Document.AutoTag()génère un arbre de structure heuristique — vérifiez toujours le résultat avecDocument.GetStructTree()ouValidatePdfUa()plutôt que de supposer une conformité totale à l’accessibilité.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
Document.OpenFile() / Document.Open() lance InvalidPasswordError | Le document est protégé par mot de passe et aucun mot de passe, ou le mauvais, n’a été fourni | Passez { password: '...' } à Document.OpenFile() / Document.Open() |
| La marque de rédaction n’a aucun effet | Page.ApplyRedactions() n’a jamais été appelé, ou a été appelé avant que la marque ne soit ajoutée | Appelez Page.AddRedact() pour chaque marque d’abord, puis Page.ApplyRedactions() une fois |
| Le champ ou l’annotation aplati apparaît toujours comme interactif | Flatten() a été appelé sur une copie plutôt que sur le handle renvoyé par l’appel Add*() | Appelez Flatten() sur l’objet renvoyé directement par AddTextField() / AddHighlight() / etc. |
ValidatePdfUa() signale toujours une structure manquante après AutoTag() | AutoTag() est heuristique et peut ne pas taguer chaque figure sans un alt callback | Passez une fonction opts.alt à AutoTag() pour fournir du texte alternatif aux images |
FAQ
Le Aspose.PDF FOSS pour TypeScript dépend-il d’un moteur PDF commercial?
Non. Il est publié sous licence MIT et sa logique de rendu, de conversion et de signature s’exécute entièrement dans TypeScript/JavaScript.
Puis-je convertir directement un PDF en HTML, Markdown ou DOCX?
Oui — Document.ToHtml(), Document.ToMarkdown() et Document.ToDocx() rendent chaque page du document; les méthodes équivalentes Page.ToHtml() / Page.ToMarkdown() / Page.ToDocx() rendent une seule page.
Quelle est la différence entre marquer et appliquer une rédaction?
Page.AddRedact() ne fait que marquer une région — le contenu sous-jacent est toujours présent et sélectionnable jusqu’à ce que Page.ApplyRedactions() soit appelé, ce qui le supprime de manière destructive.
Comment rendre une annotation ou un champ de formulaire permanent et non modifiable?
Appelez Flatten() sur l’objet renvoyé par l’appel Add*() qui l’a créé — Annotation.Flatten() pour les annotations, ou la propre Flatten() du handle de champ pour les champs AcroForm.
Où dois-je aller ensuite?
Getting Started couvre l’installation et un premier exemple fonctionnel. Ce guide du développeur se poursuit avec des pages dédiées pour chaque domaine de capacité liés ci-dessus.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
Document | Point d’entrée — créer, charger, enregistrer et gérer un PDF |
Document.New() / Document.OpenFile() / Document.Open() | Démarrer un document vierge, ou en charger un depuis un chemin de fichier ou des octets en mémoire |
Document.WriteTo() / Document.Save() | Écrire le document vers un chemin de fichier ou renvoyer les octets |
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Rendre chaque page dans un autre format |
Page.ToImage() / Page.ToSvg() | Rendre une page unique en PNG ou SVG |
Page.AddHighlight() et d’autres méthodes d’annotation Page.Add*() | Créer une annotation, renvoyant un handle actif |
Annotation.Flatten() | Intégrer l’apparence d’une annotation dans le contenu statique de la page |
Form / Form.AddTextField() / Form.AddCheckbox() | AcroForm façade et création de champ |
Document.Sign() / Document.Certify() / Document.VerifySignatures() | Ajouter ou vérifier les signatures numériques |
Page.AddRedact() / Page.ApplyRedactions() | Marquer et appliquer la censure du contenu |
Document.AutoTag() / Document.GetStructTree() | Rédiger et lire l’arbre de la structure logique du document |