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.Listeneret l’interfaceIConverterListenersont obsolètes ; ils sont remplacés par des événements du cycle de vie surConversionEvents.- L’ancien événement
OnConversionCompletedpar document a été renommé enOnDocumentConverted. 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());