GroupDocs.Conversion for .NET v26.6 is now available. This release adds richer conversion event support, custom image handling for PDF‑to‑Markdown, RTL auto‑detection for DOCX, and multiple stability improvements.
มีอะไรใหม่ในรุ่นนี้
| คีย์ | ประเภท | สรุป |
|---|---|---|
| CONVERSIONNET-7934 | ฟีเจอร์ | PDF เป็น Markdown: อนุญาตการดึงภาพแบบกำหนดเองและการแทรกตัวแทน |
| CONVERSIONNET-8286 | ฟีเจอร์ | แนะนำตัวรวม ConversionEvents พร้อมลำดับความสำคัญของตัวจัดการต่อการเรียกแต่ละครั้ง/ทั่วโลก |
| CONVERSIONNET-8314 | ฟีเจอร์ | เพิ่มเหตุการณ์การแปลง OnFontSubstituted |
| CONVERSIONNET-8263 | การปรับปรุง | แยกแพ็กเกจ NuGet |
| CONVERSIONNET-8280 | การปรับปรุง | ตรวจจับทิศทาง RTL อัตโนมัติสำหรับ DOCX ที่ขาดหรือมีการทำเครื่องหมาย bidi ไม่ถูกต้อง |
| CONVERSIONNET-8325 | การปรับปรุง | การแปลง Spreadsheet เป็น PDF พร้อม SkipEmptyRowsAndColumns ทำให้ข้อความทับซ้อนเมื่อแผ่นงานมีฟอร์มคอนโทรล |
| CONVERSIONNET-7912 | บั๊ก | อักขระเสียหายในผลลัพธ์ JPEG/TIFF |
| CONVERSIONNET-8281 | บั๊ก | การแปลง XFA PDF เฉพาะเป็นภาพค้างและไม่ให้ผลลัพธ์ใดๆ |
| CONVERSIONNET-8321 | บั๊ก | ปัญหาในการแปลง publisher - ไม่สามารถโหลด Aspose.PDF |
การเปลี่ยนแปลง Public API
⚠️ การเปลี่ยนแปลงที่ทำให้เกิดการแตกหัก
- ชื่อเหตุการณ์ได้ถูกเปลี่ยนชื่อและโมเดลการรวมเหตุการณ์ได้เปลี่ยนแปลงแล้ว คุณสมบัติเหตุการณ์ต่อผลลัพธ์และเมธอดเชนแบบ fluent ที่มีอยู่เดิม ล้าสมัย และจะถูกลบในเวอร์ชัน v26.9
ConverterSettings.Listenerและอินเทอร์เฟซIConverterListenerล้าสมัย; พวกมันถูกแทนที่ด้วยเหตุการณ์วงจรชีวิตบนConversionEvents- เหตุการณ์ per‑document เก่า
OnConversionCompletedได้รับการเปลี่ยนชื่อเป็นOnDocumentConvertedชื่อเดียวกันนี้ตอนนี้ใช้สำหรับเหตุการณ์วงจรชีวิตของ pipeline ที่ทำงานหนึ่งครั้งเมื่อการแปลงเสร็จสิ้น
1. เหตุการณ์การแทนที่ฟอนต์ใหม่
| API | คำอธิบาย |
|---|---|
ConversionEvents.OnFontSubstituted |
ถูกเรียกเมื่อฟอนต์ที่เอกสารต้นฉบับต้องการหายไปและมีการใช้ฟอนต์ทดแทน (อัตโนมัติหรือผ่านกฎที่ผู้ใช้กำหนด) |
FontSubstitutionContext |
ให้รายละเอียดเกี่ยวกับการแทนที่: SourceFileName, OriginalFontName, SubstituteFontName, Reason |
FontSubstitute |
แสดงกฎการแทนที่ที่ผู้ใช้กำหนด (เช่น FontSubstitute.Create("MissingFont", "Arial")) |
Reference:
ตัวอย่าง Classic 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());
ตัวอย่าง 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();
ตัวอย่างกฎการแทนที่ (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());