GroupDocs.Conversion pro .NET v26.6 je nyní k dispozici. Toto vydání přidává bohatší podporu událostí konverze, vlastní zpracování obrázků pro PDF‑na‑Markdown, automatické rozpoznání RTL pro DOCX a řadu vylepšení stability.
Co je nového v tomto vydání
| Klíč | Kategorie | Shrnutí |
|---|---|---|
| CONVERSIONNET-7934 | Funkce | PDF na Markdown: umožnit vlastní extrakci obrázků a vložení zástupného textu |
| CONVERSIONNET-8286 | Funkce | Zavést agregátor ConversionEvents s předností obsluhy na úrovni volání/globální |
| CONVERSIONNET-8314 | Funkce | Přidat událost konverze OnFontSubstituted |
| CONVERSIONNET-8263 | Vylepšení | Rozdělení NuGet balíčku |
| CONVERSIONNET-8280 | Vylepšení | Automatické rozpoznání RTL směru pro DOCX s chybějícím/nesprávným bidi markup |
| CONVERSIONNET-8325 | Vylepšení | Konverze Spreadsheet do PDF s přeskakováním prázdných řádků a sloupců překrývá text, když list obsahuje ovládací prvky formuláře |
| CONVERSIONNET-7912 | Chyba | Poškozené znaky ve výstupu JPEG/TIFF |
| CONVERSIONNET-8281 | Chyba | Převod konkrétního XFA PDF na obrázek se zasekne a nevytvoří žádný výsledek |
| CONVERSIONNET-8321 | Chyba | Problém s převodem publisher – Nelze načíst Aspose.PDF |
Změny veřejného API
⚠️ Zlomové změny
- Názvy událostí byly přejmenovány a model agregace událostí byl změněn. Stávající vlastnosti událostí na úrovni výsledku a fluent řetězcové metody jsou zastaralé a budou odstraněny ve verzi v26.9.
ConverterSettings.Listenera rozhraníIConverterListenerjsou zastaralé; jsou nahrazeny životním cyklem událostí naConversionEvents.- Stará událost
OnConversionCompletedna úrovni dokumentu byla přejmenována naOnDocumentConverted. Stejný název se nyní používá pro událost životního cyklu pipeline, která se spustí jednou na konci běhu konverze.
1. Nová událost substituce písma
| API | Popis |
|---|---|
ConversionEvents.OnFontSubstituted |
Spustí se, když je ve zdrojovém dokumentu požadováno písmo, které chybí, a je použita náhrada (automaticky nebo pomocí uživatelem definovaného pravidla). |
FontSubstitutionContext |
Poskytuje podrobnosti o substituci: SourceFileName, OriginalFontName, SubstituteFontName, Reason. |
FontSubstitute |
Reprezentuje uživatelem dodané pravidlo substituce (např. FontSubstitute.Create("MissingFont", "Arial")). |
Reference:
Příklad klasického API
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());
Příklad Fluent API
FluentConverter
.WithEvents(e => e.OnFontSubstituted = ctx =>
Console.WriteLine($"Font substituted: {ctx.Reason ?? ctx.OriginalFontName}"))
.Load("source.docx")
.ConvertTo("output.pdf")
.WithOptions(new PdfConvertOptions())
.Convert();
Příklad pravidla substituce (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());