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.ListenerveIConverterListenerarayüzü eski;ConversionEventsüzerindeki yaşam döngüsü olaylarıyla değiştirildi.- Eski
OnConversionCompletedbelge‑başına olayıOnDocumentConvertedolarak 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());