GroupDocs.Conversion for .NET v26.6 artık kullanılabilir. Bu sürüm daha zengin dönüşüm olayı desteği, PDF‑to‑Markdown için özel görüntü işleme, DOCX için RTL otomatik algılama ve birden fazla kararlılık iyileştirmesi ekler.

Bu sürümde yenilikler

Anahtar Kategori Özet
CONVERSIONNET-7934 Özellik PDF’den Markdown’a: özel görüntü çıkarımına ve yer tutucu eklemeye izin ver
CONVERSIONNET-8286 Özellik ConversionEvents toplayıcısını, çağrı başına/genel işleyici önceliği ile tanıt
CONVERSIONNET-8314 Özellik OnFontSubstituted dönüşüm olayını ekle
CONVERSIONNET-8263 İyileştirme NuGet Paketi Bölünmesi
CONVERSIONNET-8280 İyileştirme Eksik/yanlış çift yönlü işaretleme içeren DOCX için RTL yönünü otomatik algıla
CONVERSIONNET-8325 İyileştirme Sayfa form denetimlerine sahip olduğunda SkipEmptyRowsAndColumns ile metni üst üste getiren Elektronik Tablo’dan PDF’ye dönüşümler
CONVERSIONNET-7912 Hata JPEG/TIFF çıktısında bozuk karakterler
CONVERSIONNET-8281 Hata Belirli bir XFA PDF’yi görüntüye dönüştürürken takılıyor ve sonuç üretmiyor
CONVERSIONNET-8321 Hata Yayıncı dönüştürme sorunu - Aspose.PDF yüklenemiyor

Genel API değişiklikleri

⚠️ Kırıcı değişiklikler

  • Olay adları yeniden adlandırıldı ve olay toplama modeli değişti. Mevcut sonuç‑başına olay özellikleri ve akıcı zincir yöntemleri eski kabul edilir ve v26.9’da kaldırılacak.
  • ConverterSettings.Listener ve IConverterListener arayüzü eski; ConversionEvents üzerindeki yaşam döngüsü olaylarıyla değiştirildi.
  • Eski OnConversionCompleted belge‑başına olayı OnDocumentConverted olarak yeniden adlandırıldı. Aynı ad şimdi dönüşüm çalışmasının sonunda bir kez tetiklenen pipeline‑yaşam döngüsü olayı için kullanılıyor.

1. Yeni yazı tipi‑değiştirme olayı

API Açıklama
ConversionEvents.OnFontSubstituted Kaynak belge tarafından gereken bir yazı tipi eksik olduğunda ve bir yedek kullanıldığında (otomatik olarak ya da kullanıcı‑tanımlı kural aracılığıyla) tetiklenir.
FontSubstitutionContext Değiştirme hakkında ayrıntılar sağlar: SourceFileName, OriginalFontName, SubstituteFontName, Reason.
FontSubstitute Kullanıcı tarafından sağlanan bir değiştirme kuralını temsil eder (örnek: FontSubstitute.Create("MissingFont", "Arial")).

Referans:

Klasik API örneği

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());

Akıcı API örneği

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

Değiştirme kuralı örneği (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. Birleştirilmiş olay