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.Listener und das Interface IConverterListener sind veraltet; sie wurden durch Lebenszyklus‑Ereignisse auf ConversionEvents ersetzt.
  • Das alte per‑Dokument‑Ereignis OnConversionCompleted wurde in OnDocumentConverted umbenannt. 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());

2. Vereinheitlichtes Ereignis