Conversion
Conversion
Cette page couvre le rendu d’un PDF vers d’autres formats et la conversion d’un document vers la conformité PDF/A. Document expose une méthode To*() par format de sortie pour l’ensemble du document; les mêmes méthodes existent sur Page pour rendre une seule page.
Rendu vers d’autres formats de document
Document.ToHtml(), Document.ToDocx() et Document.ToMarkdown() rendent chaque page; Page.ToSvg() et Page.ToImage() rendent une page en une chaîne SVG autonome ou des octets PNG. Chacun accepte ses propres options— mode sur DocxOptions (‘flow’ reflows content, ’textbox’ keeps each page’s own geometry) et images sur MarkdownExportOptions (‘inline’ embeds image data URIs, ’external’ writes separate files into imageDir).
const doc = Document.OpenFile('in.pdf');
const svg = doc.Pages[0].ToSvg(); // standalone <svg> string
const png = doc.Pages[0].ToImage({ scale: 2 }); // Uint8Array of PNG bytes @144 DPI
const html = doc.ToHtml(); // standalone semantic HTML, all pages
const md = doc.ToMarkdown(); // GFM Markdown, all pages
const docx = doc.ToDocx(); // .docx bytes, reflowed, images in the package
const fixed = doc.ToDocx({ mode: 'textbox' }); // .docx keeping each page's own geometry
ImageOptions (pour Page.ToImage()) accepte également format, quality, scale, un width / height explicite, et background (‘white’ ou ’transparent’).
Conversion vers PDF/A
Document.ConvertToPdfA() tente de remédier un document vers un PDF/A level (‘b’ ou ‘u’) et le re-valide, renvoyant un ConversionReport avec applied (les actions de remédiation effectuées), unresolved (les problèmes qu’il n’a pas pu corriger), et passed. Exécutez-le sur une copie — par exemple une créée avec Document.ExtractPages() — afin que le document en cours d’utilisation ne soit jamais modifié par la conversion.
// ExtractPages gives an independent copy; ConvertToPdfA never touches the original.
const copy = doc.ExtractPages(doc.Pages.map((_, i) => i + 1));
const conversion = copy.ConvertToPdfA('2b');
console.log(`applied ${conversion.applied.length} action(s), `
+ `${conversion.unresolved.length} unresolved, `
+ `result: ${conversion.passed ? 'passes' : 'still fails'} PDF/A-2b`);
copy.WriteTo('output-pdfa.pdf');Autres formats d’exportation
Au-delà de HTML, Markdown, DOCX, SVG et PNG, la bibliothèque exporte également TIFF (TiffExportOptions, encodeTiff()) et importe/exports les valeurs de champ AcroForm en FDF et XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — utile pour échanger les données de formulaire remplies séparément du PDF lui-même.
Conseils et meilleures pratiques
- Exécutez
Document.ConvertToPdfA()sur une copie (par exemple à partir deDocument.ExtractPages()), jamais sur le document en direct que vous devez encore enregistrer non converti. - Vérifiez
ConversionReport.unresolvedmême lorsquepassedesttruepour un niveau de validation plus souple — certaines actions de remédiation ne se résolvent complètement qu’à un niveau plus strict. - Utilisez
mode: 'textbox'surDocxOptionslorsque la sortie DOCX doit conserver la géométrie visuelle exacte de chaque page; utilisez le mode'flow'par défaut lorsqu’elle doit se réenrouler comme un document de traitement de texte normal. - Fournissez
images: 'external'et unimageDirsurMarkdownExportOptionspour les documents volumineux, plutôt que les URI de données en ligne par défaut, afin de garder le fichier Markdown lui-même petit.
Problèmes courants
| Problème | Cause | Correction |
|---|---|---|
ConvertToPdfA() signale toujours passed: false | Tous les problèmes que ConversionReport.unresolved répertorie ne peuvent pas être automatiquement corrigés (p. ex. polices intégrées manquantes ou un /OutputIntent manquant) | Appliquez manuellement les règles spécifiques de unresolved, puis relancez ConvertToPdfA() |
| Le document en direct a été modifié de façon inattendue après une tentative de conversion PDF/A | ConvertToPdfA() a été appelé directement sur le document de travail au lieu d’une copie | Appelez-le sur une copie créée avec Document.ExtractPages() |
| L’export Markdown produit un seul gros fichier | Le images: 'inline' par défaut intègre chaque image sous forme d’URI de données | Passez { images: 'external', imageDir: '...' } pour écrire les images en fichiers séparés |
| La sortie DOCX perd la mise en page originale | Le mode: 'flow' par défaut reformate le contenu comme un traitement de texte | Passez { mode: 'textbox' } pour conserver la géométrie propre à chaque page |
FAQ
Vers quels formats un PDF peut-il être converti?
HTML, Markdown et DOCX pour le document complet (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG et PNG par page (Page.ToSvg() / Page.ToImage()); plus TIFF et export de form-data FDF/XFDF.
La conversion en PDF/A modifie-t-elle mon document original?
Seulement si vous appelez ConvertToPdfA() directement dessus. Appelez-le sur une copie — par exemple doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — pour garder le document original non converti.
Comment savoir si une conversion PDF/A a réellement réussi?
Vérifiez ConversionReport.passed. applied indique ce que la conversion a corrigé, et unresolved indique ce qu’elle n’a pas pu corriger — inspectez unresolved même lorsque passed est true.
Puis-je exporter uniquement les valeurs des champs de formulaire remplis, sans le PDF lui-même?
Oui — exportFdfFile() et exportXfdfFile() écrivent les valeurs actuelles du champ AcroForm dans un fichier FDF ou XFDF séparé ; importFdfFile() / importXfdfFile() les lisent à nouveau dans un document.
API Reference Résumé
| Classe/Méthode | Description |
|---|---|
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown() | Rendre chaque page dans un autre format de document |
Page.ToSvg() / Page.ToImage() | Rendre une page unique au format SVG ou PNG |
DocxOptions / MarkdownExportOptions / ImageOptions | Options de rendu par format |
Document.ConvertToPdfA() | Remédier un document à un niveau PDF/A et le revalider |
ConversionReport | Le résultat de la conversion : applied, unresolved, passed |
TiffExportOptions / encodeTiff() | Exporter au format TIFF |
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile() | Exporter ou importer les valeurs du champ AcroForm en tant que FDF/XFDF |