GroupDocs.Conversion für .NET v26.6 ist jetzt verfügbar. Dieses Release fügt erweiterte Unterstützung für Konvertierungsereignisse, benutzerdefinierte Bildverarbeitung für PDF‑zu‑Markdown, automatische RTL‑Erkennung für DOCX und mehrere Stabilitätsverbesserungen hinzu.
Was ist neu in diesem Release
| Schlüssel | Kategorie | Zusammenfassung |
|---|---|---|
| CONVERSIONNET-7934 | Feature | PDF to Markdown: allow custom image extraction and placeholder insertion |
| CONVERSIONNET-8286 | Feature | Introduce ConversionEvents aggregator with per-call/global handler precedence |
| CONVERSIONNET-8314 | Feature | Add OnFontSubstituted conversion event |
| CONVERSIONNET-8263 | Improvement | NuGet Package Split |
| CONVERSIONNET-8280 | Improvement | Auto-detect RTL direction for DOCX with missing/incorrect bidi markup |
| CONVERSIONNET-8325 | Improvement | Spreadsheet to PDF conversions with SkipEmptyRowsAndColumns overlap text when the sheet has form controls |
| CONVERSIONNET-7912 | Bug | Corrupted characters in JPEG/TIFF output |
| CONVERSIONNET-8281 | Bug | Converting a particular XFA PDF to image hangs and does not produce any result |
| CONVERSIONNET-8321 | Bug | Problem converting publisher - Unable to load Aspose.PDF |
Änderungen der öffentlichen API
⚠️ Breaking Changes
- Ereignisnamen wurden umbenannt und das Ereignis‑Aggregationsmodell hat sich geändert. Bestehende per‑Ergebnis‑Ereigniseigenschaften und Fluent‑Chain‑Methoden sind veraltet und werden in v26.9 entfernt.
ConverterSettings.Listenerund das InterfaceIConverterListenersind veraltet; sie wurden durch Lebenszyklus‑Ereignisse aufConversionEventsersetzt.- Das alte per‑Dokument‑Ereignis
OnConversionCompletedwurde inOnDocumentConvertedumbenannt. Der gleiche Name wird nun für das Pipeline‑Lebenszyklus‑Ereignis verwendet, das einmal am Ende eines Konvertierungslaufs ausgelöst wird.
1. Neues Schriftart‑Ersetzungs‑Ereignis
| API | Beschreibung |
|---|---|
ConversionEvents.OnFontSubstituted |
Wird ausgelöst, wenn eine für das Quell‑Dokument erforderliche Schriftart fehlt und eine Ersatzschriftart verwendet wird (entweder automatisch oder über eine benutzerdefinierte Regel). |
FontSubstitutionContext |
Stellt Details zur Ersetzung bereit: SourceFileName, OriginalFontName, SubstituteFontName, Reason. |
FontSubstitute |
Repräsentiert eine vom Benutzer bereitgestellte Ersetzungsregel (z. B. FontSubstitute.Create("MissingFont", "Arial")). |
Referenz:
Klassisches API‑Beispiel
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