GroupDocs.Conversion cho .NET v26.6 hiện đã có sẵn. Bản phát hành này bổ sung hỗ trợ sự kiện chuyển đổi phong phú hơn, xử lý ảnh tùy chỉnh cho PDF‑to‑Markdown, tự động phát hiện RTL cho DOCX và nhiều cải thiện ổn định.

Có gì mới trong bản phát hành này

Khóa Thể loại Tóm tắt
CONVERSIONNET-7934 Feature PDF to Markdown: cho phép trích xuất ảnh tùy chỉnh và chèn trình giữ chỗ
CONVERSIONNET-8286 Feature Giới thiệu bộ tổng hợp ConversionEvents với ưu tiên trình xử lý per‑call/global
CONVERSIONNET-8314 Feature Thêm sự kiện chuyển đổi OnFontSubstituted
CONVERSIONNET-8263 Improvement Tách gói NuGet
CONVERSIONNET-8280 Improvement Tự động phát hiện hướng RTL cho DOCX khi thiếu/đánh dấu bidi không đúng
CONVERSIONNET-8325 Improvement Chuyển đổi Spreadsheet sang PDF với SkipEmptyRowsAndColumns gây chồng chồng văn bản khi sheet có điều khiển biểu mẫu
CONVERSIONNET-7912 Bug Ký tự bị hỏng trong đầu ra JPEG/TIFF
CONVERSIONNET-8281 Bug Chuyển đổi một XFA PDF cụ thể sang ảnh bị treo và không tạo ra kết quả nào
CONVERSIONNET-8321 Bug Vấn đề chuyển đổi publisher - Không thể tải Aspose.PDF

Thay đổi API công khai

⚠️ Thay đổi gây phá vỡ

  • Tên sự kiện đã được đổi tên và mô hình tổng hợp sự kiện đã thay đổi. Các thuộc tính sự kiện per‑result hiện có và các phương thức chuỗi fluent đã lỗi thời và sẽ bị loại bỏ trong v26.9.
  • ConverterSettings.Listener và giao diện IConverterListener đã đã lỗi thời; chúng được thay thế bằng các sự kiện vòng đời trên ConversionEvents.
  • Sự kiện OnConversionCompleted per‑document cũ đã được đổi tên thành OnDocumentConverted. Tên này hiện được sử dụng cho sự kiện vòng đời pipeline, được kích hoạt một lần vào cuối quá trình chuyển đổi.

1. Sự kiện thay thế phông chữ mới

API Mô tả
ConversionEvents.OnFontSubstituted Được kích hoạt khi một phông chữ cần thiết cho tài liệu nguồn bị thiếu và một phông chữ thay thế được sử dụng (có thể tự động hoặc qua quy tắc do người dùng định nghĩa).
FontSubstitutionContext Cung cấp chi tiết về việc thay thế: SourceFileName, OriginalFontName, SubstituteFontName, Reason.
FontSubstitute Đại diện cho một quy tắc thay thế do người dùng cung cấp (ví dụ, FontSubstitute.Create("MissingFont", "Arial")).

Tham khảo:

Ví dụ API cổ điển

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

Ví dụ API fluent

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

Ví dụ quy tắc thay thế (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. Sự kiện hợp nhất