GroupDocs.Conversion עבור .NET v26.6 זמין כעת. גרסה זו מוסיפה תמיכה משופרת באירועי המרה, טיפול מותאם בתמונות עבור PDF‑ל‑Markdown, זיהוי אוטומטי של RTL עבור DOCX, ושיפורי יציבות מרובים.

מה חדש במהדורה זו

מפתח קטגוריה סיכום
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 באג המרת PDF XFA מסוים לתמונה נתקעת ולא מייצרת תוצאה
CONVERSIONNET-8321 באג בעיה בהמרת publisher – לא ניתן לטעון Aspose.PDF

שינויים ב‑Public API

⚠️ שינויים שבורים

  • שמות האירועים שונו ומודל צבירת האירועים השתנה. תכונות אירועי‑תוצאה קיימות ושיטות שרשרת Fluent הן מיושנות ותוסרנה ב‑v26.9.
  • ConverterSettings.Listener והממשק IConverterListener הם מיושנים; הם הוחלפו באירועי מחזור החיים ב‑ConversionEvents.
  • אירוע OnConversionCompleted הישן לכל מסמך שונה לשם OnDocumentConverted. אותו שם משמש כעת לאירוע מחזור החיים של הצינור שמופעל פעם אחת בסיום ריצת המרה.

1. אירוע החלפת גופנים חדש

API תיאור
ConversionEvents.OnFontSubstituted מתבצע כאשר גופן הנדרש במסמך המקור חסר ומשתמשים בגופן חלופי (אוטומטית או לפי כלל שהוגדר על‑ידי המשתמש).
FontSubstitutionContext מספק פרטים על ההחלפה: SourceFileName, OriginalFontName, SubstituteFontName, Reason.
FontSubstitute מייצג כלל החלפה שסופק על‑ידי המשתמש (למשל, FontSubstitute.Create("MissingFont", "Arial")).

הפניות:

דוגמת 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());

2. אירוע מאוחד