ما خوشحالیم که انتشار GroupDocs.Conversion for .NET v26.10 را اعلام می‌کنیم، که از اکتبر 2026 در دسترس است. این نسخه درباره کنترل بر آنچه یک سند می‌تواند بارگذاری کند است: کد شما اکنون می‌تواند درباره هر منبع خارجی که سند درخواست می‌کند تصمیم بگیرد و تنظیمات پیش‌فرض برای اسناد ناشناخته ایمن هستند. همچنین تبدیل‌ها فرمت خروجی و انتخاب صفحهٔ درخواست‌شده را رعایت می‌کنند، مجموعه‌ای از خطاهای تبدیل و مشکلات بارگذاری .NET Framework را رفع می‌کنند و یک وابستگی حساس به امنیت را به‌روز می‌کنند — در مجموع ۶۰ ویژگی، بهبود و رفع باگ.

نکات برجسته

تصمیم‌گیری دربارهٔ آنچه هر سند می‌تواند بارگذاری کند

اسناد اغلب به منابع خارج از خود اشاره می‌کنند: تصاویر روی CDN، سبک‌نامه‌ها، اسکریپت‌ها، بافت‌های 3D، طبقه‌بندی‌های XBRL. در نسخهٔ 26.10 می‌توانید هر یک از این درخواست‌ها را ببینید و در کد تصمیم بگیرید. IExternalResourceHandler را پیاده‌سازی کنید و از طریق ویژگی ExternalResourceHandler گزینه‌های بارگذاری آن را تنظیم کنید. این هندلر هر منبع را همراه با تصمیم پیش‌فرض دریافت می‌کند و می‌تواند آن را اجازه دهد، نادیده بگیرد یا — برای اکثر فرمت‌ها — محتوا را خودتان فراهم کند، برای مثال از کش خود، به‌طوری که هیچ درخواست خارجی‌ای انجام نشود.

این هندلر تصاویر JPEG را از یک میزبان مورد اعتماد بارگذاری می‌کند، علاوه بر آنچه پیش‌فرض‌ها اجازه می‌دهند:

public class TrustedJpegHandler : IExternalResourceHandler
{
    public void OnLoading(ExternalResourceLoadingArgs args)
    {
        Uri uri;
        if (Uri.TryCreate(args.Uri, UriKind.Absolute, out uri)
            && uri.Scheme == Uri.UriSchemeHttps
            && string.Equals(uri.Host, "cdn.example.com", StringComparison.OrdinalIgnoreCase)
            && (uri.AbsolutePath.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase)
                || uri.AbsolutePath.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase)))
        {
            args.Skipped = false;
        }
    }
}
WebLoadOptions loadOptions = new WebLoadOptions
{
    ExternalResourceHandler = new TrustedJpegHandler()
};
using (Converter converter = new Converter("sample.html", (LoadContext loadContext) => loadOptions))
{
    converter.Convert("converted.pdf", new PdfConvertOptions());
}

این هندلر با گزینه‌های بارگذاری برای وب، XML، پردازش واژه، صفحه‌گسترده، CSV و TSV، ارائه، ایمیل، SVG، مالی و اسناد 3D کار می‌کند.

پیش‌فرض‌های ایمن برای اسناد غیرقابل اعتماد

تبدیل فایلی که کسی بارگذاری کرده است نباید سرور شما را وادار به خواندن فایل‌های دیگر یا دسترسی به میزبان‌های دلخواه کند. با تنظیمات پیش‌فرض در 26.10:

  • فقط فایل‌های محلی را از پوشهٔ خود سند بارگذاری می‌کند و هرگز از مسیرهای UNC استفاده نمی‌کند؛
  • اسکریپت‌ها را در اسناد HTML، MHTML، XHTML و SVG اجرا نمی‌کند و هیچ فایل اسکریپتی درخواست نمی‌شود؛
  • همان قوانین را برای تبدیل‌های SVG، مدل‌های 3D، XBRL، XSL‑FO، Markdown و ایمیل‑به‑صفحه‌گسترده اعمال می‌کند.

زمانی که اسناد شما به‌طور مشروع به منابع خارجی نیاز دارند، می‌توانید آن‌ها را به‌روشی که مناسب است اجازه دهید: مکان‌های مورد اعتماد را در WhitelistedResources فهرست کنید، با هندلر برای هر منبع تصمیم بگیرید، یا برای اسنادی که به آن‌ها اعتماد دارید SkipExternalResources = false تنظیم کنید. اسکریپت‌ها فقط زمانی اجرا می‌شوند که ExecuteScripts = true را روی WebLoadOptions یا SvgLoadOptions تنظیم کنید. مسیرهای UNC و ارجاعات javascript: یا vbscript: هرگز بارگذاری نمی‌شوند، صرف‌نظر از تنظیمات.

خروجی‌ای که درخواست کرده‌اید

برخی تبدیل‌ها بخشی از درخواست را نادیده می‌گرفتند. چندین مورد همیشه DOCX، XLSX، PPTX یا یک TIFF چند‑قاب را صرف‌نظر از فرمت هدف شما می‌نوشتند و انتخاب صفحه برای ایمیل، وب و TIFF چند‑صفحه به پردازش واژه، برای اسناد Word Flat OPC، و برای تبدیل Project به PS و PCL نادیده گرفته می‌شد. اکنون همهٔ این‌ها خروجی‌ای که گزینه‌های تبدیل درخواست می‌کند تولید می‌کنند. واترمارک‌ها نیز هنگام تبدیل اسناد غیر‑تصویری به تصویر و هنگام تبدیل CSV و TSV ظاهر می‌شوند، صفحات MHT و MHTML به‌جای نمایش منبع MIME رندر می‌شوند و پس‌زمینه‌های شفاف دیگر در خروجی‌های J2K، JP2، WMF و WMZ سیاه نمی‌شوند.

کاهش تبدیل‌های ناموفق

فایل‌های PostScript که از عملگر run یا file در .NET Framework استفاده می‌کردند، اسناد PSD، PSB و AI صفحه به صفحه، تمام نقشه‌های CAD به TeX، XHTML با SVG داخلی، PDF، XPS و SVG به EPUB، و Visio و SVG به صفحه‌گسترده اکنون به‌جای شکست، تبدیل می‌شوند. در ایمیل، صندوق‌پست و فایل‌های بایگانی، پیوستی که نتواند به فرمت هدف تبدیل شود دیگر تمام تبدیل را شکست نمی‌دهد و سندی که نتواند بارگذاری شود اکنون از طریق ConversionEvents.OnDocumentFailed گزارش می‌شود.

امنیت، مجوزدهی و .NET Framework

  • System.Security.Cryptography.Pkcs به نسخهٔ 8.0.2 (10.0.13 روی .NET 10) ارتقا یافت و CVE‑2026‑84008 و CVE‑2026‑70162 را برطرف کرد.
  • پروژه‌های .NET Framework دیگر در بارگذاری RuntimeInformation یا ValueTuple شکست نمی‌خورند و تبدیل‌های EML، HTML و CAD دیگر در .NET Framework 4.6.2 تا 4.7.0 شکست نمی‌خورند.
  • تبدیل‌های WebP با مجوز معتبر دیگر نشانگر نسخهٔ آزمایشی را نشان نمی‌دهند. در حالت ارزیابی، محدودیت ۳‑صفحه‌ای اکنون برای خروجی‌های SVG، SVGZ، PS و PCL نیز اعمال می‌شود.

موارد جدید در این انتشار

  • [Feature] افزودن یک فراخوانی‑پرسشی برای هر منبع به‌منظور بازرسی، اجازه، رد یا تأمین هر منبع خارجی که سند بارگذاری می‌کند
  • [Improvement] ارائه SvgLoadOptions به‌عنوان گزینهٔ بارگذاری برای اسناد SVG و SVGZ
  • [Improvement] نام‌گذاری موارد OLM و NSF بدون موضوع بر اساس پوشه و موقعیت و جلوگیری از نام‌های دستگاه رزرو شدهٔ ویندوز در نام‌های موارد صندوق‌پست
  • [Improvement] گزارش موارد بایگانی، ایمیل و صندوق‌پست که نمی‌توانند بارگذاری شوند به هندلر document‑failed به‌جای فقط ثبت لاگ
  • [Bug] نشانگر نسخهٔ آزمایشی هنگام تبدیل از Webp حتی با وجود مجوز معتبر اعمال می‌شود
  • [Bug] تبدیل خاص فایل VSDX – متن خارج از مرزهای جعبه
  • [Bug] متن دو‑خط‌خورده در تبدیل ODT به PDF حفظ نمی‌شود
  • [Bug] مشکلات تبدیل VCF به Excel
  • [Bug] رفع شکست تبدیل‌ها در بارگذاری RuntimeInformation در پروژه‌های قدیمی .NET Framework 4.7.1+ که از PackageReference استفاده می‌کنند
  • [Bug] رفع شکست تبدیل‌ها در بارگذاری RuntimeInformation یا ValueTuple در پروژه‌های .NET Framework packages.config
  • [Bug] رفع شکست تبدیل‌های EML، HTML و CAD در زمان اجراهای .NET Framework 4.6.2 تا 4.7.0
  • [Bug] تبدیل اسناد WordProcessing، Pdf و ProjectManagement به هر فرمت صفحه‌گسترده همیشه خروجی XLSX می‌دهد
  • [Bug] تبدیل اسناد WordProcessing، Pdf و Diagram به هر فرمت ارائه همیشه خروجی PPTX می‌دهد
  • [Bug] رفع شکست تبدیل PST، OST و MBOX در مورد موردی بدون موضوع و تبدیل یادداشت‌های چسبان PST به متن غیرقابل خواندن
  • [Bug] تبدیل سند تک‑صفحه‌ای به فرمت تصویری غیر‑TIFF همیشه خروجی TIFF چند‑قاب می‌دهد
  • [Bug] [GroupDocs.Conversion for .NET] به‌روزرسانی System.Security.Cryptography.Pkcs به 8.0.2 (CVE‑2026‑84008 / CVE‑2026‑70162)
  • [Bug] واترمارک متن یا تصویر هنگام تبدیل اسناد غیر‑تصویری به تصویر اعمال نمی‌شود
  • [Bug] پس‌زمینهٔ شفاف صفحه هنگام تبدیل به J2K، JP2، WMF و WMZ سیاه می‌شود
  • [Bug] خروجی WMZ اسناد مبتنی بر Word شامل یک PNG فشردهٔ gzipped است و خروجی EMZ تصاویر دو بار gzipped می‌شود
  • [Bug] صفحات MHT و MHTML که به تصویر تبدیل می‌شوند منبع MIME را نشان می‌دهند نه صفحه
  • [Bug] اطلاعات سند یک سند Publisher همیشه یک صفحه گزارش می‌دهد
  • [Bug] واترمارک هنگام تبدیل اسناد CSV و TSV اعمال نمی‌شود
  • [Bug] بارگذاری منابع خارجی فقط از پیشوندهای URL سفید‑لیست شدهٔ دقیق و پوشهٔ خود سند، هرگز از مسیرهای UNC نیست
  • [Bug] رفع مشکلات ذخیرهٔ CAD، Image، Diagram، DjVu، VCF و Email به WordProcessing که برای هر هدفی به جز DOC فایل DOCX می‌ساخت
  • [Bug] رفع نادیده‌گیری انتخاب صفحه در تبدیل Email به WordProcessing
  • [Bug] رفع نادیده‌گیری انتخاب صفحه در تبدیل TIFF چند‑قاب به WordProcessing
  • [Bug] رعایت SkipExternalResources و WhitelistedResources هنگام تبدیل اسناد Markdown و CHM
  • [Bug] رعایت SkipExternalResources و WhitelistedResources در تبدیل ایمیل‑به‑صفحه‌گسترده، صفحه‌گسترده و تبدیل‌های بازهٔ صفحه
  • [Bug] به‌طور پیش‌فرض هنگام تبدیل HTML به صفحه‌گسترده، تصاویر خارج از پوشهٔ سند بارگذاری نمی‌شوند
  • [Bug] به‌طور پیش‌فرض هنگام تبدیل SVG به ارائه، پردازش واژه، صفحه‌گسترده، XPS یا EPS، منابع خارجی بارگذاری نمی‌شوند
  • [Bug] به‌طور پیش‌فرض هنگام تبدیل اسناد 3D، کتابخانه‌های مواد، بافت‌ها و بافرها از خارج پوشهٔ مدل بارگذاری نمی‌شوند
  • [Bug] به‌طور پیش‌فرض هنگام تبدیل XML از طریق یک stylesheet XSL‑FO، منابع خارجی بارگذاری نمی‌شوند
  • [Bug] رفع ذخیرهٔ HTML و MHTML به WordProcessing به صورت DOCX برای هر هدف
  • [Bug] به‌طور پیش‌فرض XBRL و طبقه‌بندی‌های XBRL داخلی از خارج پوشهٔ سند بارگذاری نمی‌شوند
  • [Bug] توقف اجرای اسکریپت‌ها و دانلود فایل‌های اسکریپت هنگام تبدیل اسناد HTML، XHTML و SVG
  • [Bug] رفع نادیده‌گیری انتخاب صفحه در تبدیل Web به WordProcessing
  • [Bug] رفع نادیده‌گیری انتخاب صفحه در اسناد Word Flat OPC
  • [Bug] به‌طور پیش‌فرض هنگام تبدیل اسناد 3D، بافت‌ها از خارج پوشهٔ مدل جاسازی نمی‌شوند
  • [Bug] رفع تبدیل آرشیوهای فشردهٔ تک‑جریان که فایل بدون نامشان را تبدیل می‌کردند
  • [Bug] رفع دریافت ارجاعات javascript: و vbscript: وقتی منابع خارجی اجازه داده می‌شوند
  • [Bug] رفع شکست تبدیل اسناد XHTML با SVG داخلی
  • [Bug] رفع شکست تبدیل HTML به HTML وقتی یک CSS @import نسبی قابل بارگذاری نیست
  • [Bug] رفع شکست تبدیل Visio و SVG به صفحه‌گسترده در صفحه‌ای که چیزی برای رسم ندارد
  • [Bug] رفع شکست تبدیل PDF، XPS و SVG به EPUB در پیوندی که متنی پوشش نمی‌دهد
  • [Bug] رفع شکست تبدیل ایمیل، صندوق‌پست و بایگانی در پیوستی که نمی‌تواند به فرمت هدف تبدیل شود
  • [Bug] رفع تبدیل PCL که پس از تبدیل PDF، فونت‌های Courier New و سایر فونت‌های نصب‌شده را جایگزین می‌کرد
  • [Bug] GroupDocs.Conversion.LowCode 26.9.0: تبدیل DOCX به PDF در لینوکس جایگزینی فونت را نادیده می‌گیرد و اولین فونت به ترتیب الفبایی را استفاده می‌کند
  • [Bug] رفع خطاهای مستندات XML در GroupDocs.Conversion.LowCode 26.9.0
  • [Bug] رفع شکست تبدیل PostScript در .NET Framework وقتی سند از عملگر run یا file استفاده می‌کند
  • [Bug] رفع تبدیل‌های بدون مجوز به فرمت‌های زبان توصیف صفحه که محدودیت صفحهٔ آزمایشی را نادیده می‌گیرند
  • [Bug] رفع شکست تبدیل صفحه به صفحه اسناد PSD، PSB و Illustrator AI با استثنا
  • [Bug] رفع شکست تبدیل ویدئو به فرمت صوتی حتی وقتی یک کانکتور ویدئویی تنظیم شده باشد
  • [Bug] رفع تبدیل ProjectManagement به PS و PCL که صفحات اضافی تولید می‌کرد و انتخاب صفحه را نادیده می‌گرفت
  • [Bug] رفع نوشتن UTF‑16 بدون علامت ترتیب بایت در تبدیل ProjectManagement به SVG
  • [Bug] رفع نوشتن فایل‌های بافر و مواد در پوشهٔ کاری هنگام تبدیل 3D به glTF و OBJ
  • [Bug] رفع تبدیل‌های MHT و MHTML به PDF، XPS، TeX و WordProcessing که منبع MIME را نشان می‌دادند نه صفحه
  • [Bug] رفع شکست تبدیل CAD به TeX برای یک نقشهٔ کامل که با FileTypeNotSupported مواجه می‌شد
  • [Bug] رفع افزودن صفحات اضافی در تبدیل‌های PDL و XML/JSON به PS و PCL
  • [Bug] رفع تبدیل CAD به PS و PCL که فقط یک صفحه از نقشه‌های DWF چند‑صفحه‌ای را نگه می‌داشت
  • [Bug] رفع شکست یا حذف هدرهای ایمیل در تبدیل MBOX وقتی موضوع پیام شبیه نام فایل باشد

تغییرات API عمومی

API جدید

  • IExternalResourceHandler و ExternalResourceLoadingArgs (Uri, Skipped, Data) در فضای نام GroupDocs.Conversion.Options.Load.
  • ExternalResourceHandler در IResourceLoadingOptions و گزینه‌های بارگذاری که آن را پیاده‌سازی می‌کنند.
  • ExecuteScripts در WebLoadOptions و SvgLoadOptions.
  • SkipExternalResources, WhitelistedResources و ExternalResourceHandler در FinanceLoadOptions و ThreeDLoadOptions که اکنون IResourceLoadingOptions را پیاده‌سازی می‌کنند.

⚠️ قبل از ارتقا بررسی کنید

  • منابع خارجی: اسنادی که به فایل‌های محلی خارج از پوشهٔ خود، مسیرهای UNC یا اسکریپت‌ها وابسته بودند، اکنون بدون آن‌ها تبدیل می‌شوند. همان‌طور که در Safe defaults for untrusted documents توضیح داده شد، مواردی که اعتماد دارید را اجازه دهید.

  • ورودی‌های لیست سفید: هر ورودی WhitelistedResources باید یک پیشوند URI مطلق باشد، مانند https://cdn.example.com/assets/ یا file:///C:/assets/. ورودی‌هایی مانند jpg یا example.com که در نسخه‌های قبلی در هر جایی از URL مطابقت می‌دادند، اکنون باعث شکست بارگذاری با InvalidLoadOptionsException می‌شوند.

  • XBRL و XBRL داخلی: یک پروندهٔ مالی که طبقه‌بندی آن خارج از پوشهٔ خود باشد یا از یک جریان بارگذاری شود، اکنون با InvalidLoadOptionsException بارگذاری نمی‌شود. پرونده‌های مالی مورد اعتماد خود را به این شکل بارگذاری کنید:

    using (Converter converter = new Converter("filing.xbrl", (LoadContext loadContext) => new FinanceLoadOptions { SkipExternalResources = false }))
    {
        converter.Convert("filing.xlsx", new SpreadsheetConvertOptions());
    }
    
  • SVG و SVGZ: بدون گزینه‌های بارگذاری تبدیل می‌شوند و اکنون از SvgLoadOptions استفاده می‌کنند، و PossibleConversions.LoadOptions به جای PageDescriptionLanguageLoadOptions، SvgLoadOptions را برمی‌گرداند.

  • فرمت خروجی و صفحات: تبدیل‌ها اکنون فرمت و انتخاب صفحهٔ درخواست‌شده را رعایت می‌کنند، بنابراین خروجی ممکن است برای همان گزینه‌ها نسبت به نسخه‌های قبلی متفاوت باشد. PublisherDocumentInfo.PagesCount اکنون شمارش واقعی صفحات را برمی‌گرداند.

  • پیاده‌سازی‌های سفارشی IResourceLoadingOptions باید ویژگی جدید ExternalResourceHandler را اضافه کنند.

یادداشت‌های انتشار (release notes) تمام تغییرات را همراه با پیام‌های دقیق استثناها فهرست می‌کند.

نحوه دریافت به‌روزرسانی

NuGet

به‌روزرسانی به آخرین بسته GroupDocs.Conversion از طریق NuGet: GroupDocs.Conversion 26.10.0

dotnet add package GroupDocs.Conversion --version 26.10.0

دانلود مستقیم

دستگاه‌های اجرایی را از صفحهٔ GroupDocs.Conversion for .NET 26.10 دریافت کنید

منابع