GroupDocs.Conversion voor .NET v26.6 is nu beschikbaar. Deze release voegt uitgebreidere ondersteuning voor conversie‑events toe, aangepaste afbeeldingsverwerking voor PDF‑naar‑Markdown, RTL‑auto‑detectie voor DOCX en meerdere stabiliteitsverbeteringen.
Wat is nieuw in deze release
| Sleutel | Categorie | Samenvatting |
|---|---|---|
| CONVERSIONNET-7934 | Functie | PDF naar Markdown: sta aangepaste afbeeldingsextractie en plaatsaanduiding toe |
| CONVERSIONNET-8286 | Functie | Introduceer ConversionEvents‑aggregator met per‑call/global handler‑precedentie |
| CONVERSIONNET-8314 | Functie | Voeg OnFontSubstituted conversie‑event toe |
| CONVERSIONNET-8263 | Verbetering | NuGet‑pakket‑splitsing |
| CONVERSIONNET-8280 | Verbetering | Auto‑detectie van RTL‑richting voor DOCX met ontbrekende/onjuiste bidi‑markup |
| CONVERSIONNET-8325 | Verbetering | Spreadsheet‑naar‑PDF‑conversies met SkipEmptyRowsAndColumns overlappen tekst wanneer het blad formulier‑besturingselementen bevat |
| CONVERSIONNET-7912 | Fout | Beschadigde tekens in JPEG/TIFF‑output |
| CONVERSIONNET-8281 | Fout | Een bepaalde XFA‑PDF naar afbeelding converteren loopt vast en levert geen resultaat op |
| CONVERSIONNET-8321 | Fout | Probleem bij het converteren van publisher – Unable to load Aspose.PDF |
Openbare API‑wijzigingen
⚠️ Brekende wijzigingen
- Event‑namen zijn hernoemd en het event‑aggregatiemodel is gewijzigd. Bestaande per‑resultaat‑event‑eigenschappen en fluent‑chain‑methoden zijn verouderd en worden verwijderd in v26.9.
ConverterSettings.Listeneren deIConverterListener‑interface zijn verouderd; ze zijn vervangen door lifecycle‑events opConversionEvents.- Het oude
OnConversionCompletedper‑document‑event is hernoemd naarOnDocumentConverted. dezelfde naam wordt nu gebruikt voor het pipeline‑lifecycle‑event dat één keer wordt getriggerd aan het einde van een conversierun.
1. Nieuw lettertype‑substitutie‑event
| API | Beschrijving |
|---|---|
ConversionEvents.OnFontSubstituted |
Wordt geactiveerd wanneer een lettertype dat door het bron‑document vereist is ontbreekt en een vervanging wordt gebruikt (automatisch of via een door de gebruiker gedefinieerde regel). |
FontSubstitutionContext |
Biedt details over de substitutie: SourceFileName, OriginalFontName, SubstituteFontName, Reason. |
FontSubstitute |
Vertegenwoordigt een door de gebruiker opgegeven substitutieregel (bijv. FontSubstitute.Create("MissingFont", "Arial")). |
Referentie:
Klassiek API‑voorbeeld
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‑voorbeeld
FluentConverter
.WithEvents(e => e.OnFontSubstituted = ctx =>
Console.WriteLine($"Font substituted: {ctx.Reason ?? ctx.OriginalFontName}"))
.Load("source.docx")
.ConvertTo("output.pdf")
.WithOptions(new PdfConvertOptions())
.Convert();
Voorbeeld van substitutieregel (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());