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 | Funktion | PDF zu Markdown: benutzerdefinierte Bildextraktion und Platzhalter‑Einfügung zulassen |
| CONVERSIONNET-8286 | Funktion | Einführung des ConversionEvents‑Aggregators mit Vorrang für per‑Call/global‑Handler |
| CONVERSIONNET-8314 | Funktion | Hinzufügen des OnFontSubstituted‑Konvertierungsereignisses |
| CONVERSIONNET-8263 | Verbesserung | Aufteilung des NuGet‑Pakets |
| CONVERSIONNET-8280 | Verbesserung | Automatische RTL‑Richtungserkennung für DOCX mit fehlender/inkorrekter Bidi‑Markup |
| CONVERSIONNET-8325 | Verbesserung | Spreadsheet‑zu‑PDF‑Konvertierungen mit SkipEmptyRowsAndColumns überlappen Text, wenn das Blatt Formularsteuerelemente enthält |
| CONVERSIONNET-7912 | Fehler | Beschädigte Zeichen in JPEG/TIFF‑Ausgabe |
| CONVERSIONNET-8281 | Fehler | Konvertierung eines bestimmten XFA‑PDFs zu Bild hängt und liefert kein Ergebnis |
| CONVERSIONNET-8321 | Fehler | Problem bei der Konvertierung von Publisher – Unable to load Aspose.PDF |
Änderungen an der öffentlichen API
⚠️ Breaking Changes
- Ereignisnamen wurden umbenannt und das Ereignis‑Aggregationsmodell hat sich geändert. Bestehende per‑Result‑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 Font‑Substitutionsereignis
| 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 |
Liefert Details zur Substitution: SourceFileName, OriginalFontName, SubstituteFontName, Reason. |
FontSubstitute |
Stellt eine vom Benutzer bereitgestellte Substitutionsregel dar (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 Converter(
"source.docx",
() => new ConverterSettings(),
() => events);
converter.Convert("output.pdf", new PdfConvertOptions());
Fluent API‑Beispiel
FluentConverter
.WithEvents(e => e.OnFontSubstituted = ctx =>
Console.WriteLine($"Font substituted: {ctx.Reason ?? ctx.OriginalFontName}"))
.Load("source.docx")
.ConvertTo("output.pdf")
.WithOptions(new PdfConvertOptions())
.Convert();
Beispiel für Substitutionsregel (Word‑Processing / Spreadsheet / 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());