GroupDocs.Conversion for .NET v26.6 est maintenant disponible. Cette version ajoute une prise en charge plus riche des événements de conversion, la gestion personnalisée des images pour PDF‑vers‑Markdown, la détection automatique RTL pour DOCX, ainsi que de multiples améliorations de stabilité.

Nouveautés de cette version

Clé Catégorie Résumé
CONVERSIONNET-7934 Fonctionnalité PDF vers Markdown : autoriser l’extraction d’images personnalisées et l’insertion de substituts
CONVERSIONNET-8286 Fonctionnalité Introduire l’agrégateur ConversionEvents avec priorité des gestionnaires par appel/global
CONVERSIONNET-8314 Fonctionnalité Ajouter l’événement de conversion OnFontSubstituted
CONVERSIONNET-8263 Amélioration Division du package NuGet
CONVERSIONNET-8280 Amélioration Détection automatique de la direction RTL pour DOCX avec balisage bidi manquant/incorrect
CONVERSIONNET-8325 Amélioration Conversions de feuilles de calcul vers PDF avec SkipEmptyRowsAndColumns qui chevauchent le texte lorsque la feuille contient des contrôles de formulaire
CONVERSIONNET-7912 Bug Caractères corrompus dans la sortie JPEG/TIFF
CONVERSIONNET-8281 Bug La conversion d’un PDF XFA particulier en image se bloque et ne produit aucun résultat
CONVERSIONNET-8321 Bug Problème de conversion de l’éditeur – Impossible de charger Aspose.PDF

Modifications de l’API publique

⚠️ Modifications majeures

  • Les noms d’événements ont été renommés et le modèle d’agrégation des événements a changé. Les propriétés d’événement par résultat existantes et les méthodes de chaîne fluide sont obsolètes et seront supprimées dans la v26.9.
  • ConverterSettings.Listener et l’interface IConverterListener sont obsolètes ; ils sont remplacés par des événements du cycle de vie sur ConversionEvents.
  • L’ancien événement OnConversionCompleted par document a été renommé en OnDocumentConverted. Le même nom est désormais utilisé pour l’événement du pipeline qui se déclenche une fois à la fin d’une exécution de conversion.

1. Nouvel événement de substitution de police

API Description
ConversionEvents.OnFontSubstituted Se déclenche lorsqu’une police requise par le document source est manquante et qu’une substitution est utilisée (automatiquement ou via une règle définie par l’utilisateur).
FontSubstitutionContext Fournit les détails de la substitution : SourceFileName, OriginalFontName, SubstituteFontName, Reason.
FontSubstitute Représente une règle de substitution fournie par l’utilisateur (par ex., FontSubstitute.Create("MissingFont", "Arial")).

Référence :

Exemple d’API classique

using GroupDocs.Conversion;
using GroupDocs.Conversion.Contracts;
using GroupDocs.Conversion.Options.Convert;

var events = new ConversionEvents
{
    OnFontSubstituted = ctx =>
    {
        var detail = ctx.OriginalFontName != null
            ? $"{ctx.OriginalFontName} -> {ctx.SubstituteFontName}"
            : ctx.Reason;
        Console.WriteLine($"Font substituted in '{ctx.SourceFileName}': {detail}");
    }
};

using var converter = new Converter(
    "source.docx",
    () => new ConverterSettings(),
    () => events);

converter.Convert("output.pdf", new PdfConvertOptions());

Exemple d’API fluide

FluentConverter
    .WithEvents(e => e.OnFontSubstituted = ctx =>
        Console.WriteLine($"Font substituted: {ctx.Reason ?? ctx.OriginalFontName}"))
    .Load("source.docx")
    .ConvertTo("output.pdf")
    .WithOptions(new PdfConvertOptions())
    .Convert();

Exemple de règle de substitution (traitement de texte / feuille de calcul / PDF)

using GroupDocs.Conversion.Options.Load;

using var converter = new Converter(
    "source.docx",
    _ => new WordProcessingLoadOptions
    {
        FontSubstitutes = new List<FontSubstitute>
        {
            FontSubstitute.Create("MissingFont", "Arial")
        }
    },
    () => new ConverterSettings(),
    () => events);

converter.Convert("output.pdf", new PdfConvertOptions());

2. Événement unifié