ما خوشحالیم که انتشار GroupDocs.Viewer for Python 26.9 را اعلام می‌کنیم که از سپتامبر 2026 در دسترس است. این نسخه موتور زیرساخت GroupDocs.Viewer را از 26.4 به 26.8 ارتقا می‌دهد، پشتیبانی از رندر فایل‌های Microsoft Project را در لینوکس و macOS اضافه می‌کند، قابلیت شماره‌گذاری صفحات و کنترل وضوح برای اسناد Word را معرفی می‌کند، وابستگی libgdiplus را در پلتفرم‌های غیر ویندوزی حذف می‌کند و سازگاری با Python 3.5–3.7 را بازمی‌گرداند. زمان‌اجرای توکار .NET به 10.0.12 به‌روزرسانی شده و API پایتون اکنون شامل docstringهای کامل با مثال‌های کد می‌شود.

چه چیز جدیدی در این نسخه وجود دارد

  • [Feature] افزودن WordProcessingOptions.page_number_location و enum WordsPageNumberLocation برای افزودن شماره صفحه به اسناد Word رندر شده (VIEWERPYTHON-153)
  • [Feature] افزودن WordProcessingOptions.horizontal_resolution / vertical_resolution برای تنظیم DPI خروجی PNG و JPEG برای اسناد Word (VIEWERPYTHON-154)
  • [Feature] افزودن پشتیبانی از رندر فایل‌های Microsoft Project (MPP, MPT, MPX) در لینوکس و macOS (VIEWERPYTHON-155)
  • [Enhancement] به‌روزرسانی موتور GroupDocs.Viewer از 26.4 به 26.8 (VIEWERPYTHON-156)
  • [Enhancement] به‌روزرسانی زمان‌اجرای توکار .NET از 10.0.0 به 10.0.12 (VIEWERPYTHON-157)
  • [Enhancement] حذف نیازمندی libgdiplus / mono-libgdiplus در لینوکس و macOS (VIEWERPYTHON-158)
  • [Enhancement] ارائه یک API پایتون یکسان در تمام پلتفرم‌ها — بسته‌های لینوکس و macOS اکنون ProjectManagementOptions و اعضای FileType مربوط به Project، Photoshop، Illustrator و OneNote را دریافت می‌کنند (VIEWERPYTHON-159)
  • [Enhancement] افزودن docstringها با خلاصه‌ها، پارامترها و مثال‌های کد به API پایتون (VIEWERPYTHON-160)
  • [Enhancement] افزودن بخش راهنمای توسعه‌دهنده به مرجع API (VIEWERPYTHON-161)
  • [Fix] عدم امکان استفاده از بسته در Python 3.5 – 3.7 (VIEWERPYTHON-162)
  • [Fix] pip بسته را در نسخه‌های لینوکس و macOS نصب می‌کند که قادر به اجرای آن نیستند (VIEWERPYTHON-163)

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

هیچ چیزی حذف یا تغییر نام داده نشده است.

انواع جدید

نوع ماژول توضیح
WordsPageNumberLocation groupdocs.viewer.options مکان افزودن شماره صفحه در یک سند Word رندر شده: NOT_APPLY (پیش‌فرض)، TOP_LEFT، TOP_CENTER، TOP_RIGHT، BOTTOM_LEFT، BOTTOM_CENTER، BOTTOM_RIGHT

اعضای جدید در کلاس‌های موجود

کلاس عضو توضیح
WordProcessingOptions page_number_location شماره‌گذاری صفحه‌ای که هنگام رندر اعمال می‌شود (WordsPageNumberLocation)
WordProcessingOptions horizontal_resolution DPI افقی خروجی PNG / JPEG، 72 – 600 (پیش‌فرض 96)
WordProcessingOptions vertical_resolution DPI عمودی خروجی PNG / JPEG، 72 – 600 (پیش‌فرض 96)

موارد جدید در لینوکس و macOS

ProjectManagementOptions، BaseViewOptions.project_management_options و FileType.MPP، MPT، MPX، PSD، PSB، AI، ONE قبلاً در ویندوز موجود بودند و اکنون در بسته‌های لینوکس و macOS نیز موجود‌اند — به یک API پایتون در همه پلتفرم‌ها مراجعه کنید.

ویژگی‌های جدید

فایل‌های Microsoft Project در لینوکس و macOS

فایل‌های MPP، MPT و MPX قبلاً فقط در ویندوز رندر می‌شدند؛ در لینوکس و macOS با خطای Failed to detect file type مواجه می‌شدند. موتور 26.8 آن‌ها را در تمام پلتفرم‌ها رندر می‌کند، با همان ProjectManagementOptions که در ویندوز استفاده می‌شود:

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import HtmlViewOptions, TimeUnit

with Viewer("project.mpp") as viewer:
    options = HtmlViewOptions.for_embedded_resources("page_{0}.html")
    options.project_management_options.time_unit = TimeUnit.DAYS
    viewer.view(options)

در لینوکس، ابتدا فونت‌های اصلی مایکروسافت (ttf-mscorefonts-installer) را نصب کنید: بدون این فونت‌ها رندر پروژه با خطای Cannot find fallback font 'Generic Sans Serif' شکست می‌خورد و جایگزین‌های سازگار متریک مانند Liberation این جستجو را برآورده نمی‌کنند.

شماره‌گذاری صفحات در اسناد Word رندر شده

WordProcessingOptions.page_number_location شماره‌های صفحه را هنگام رندر یک سند Word اضافه می‌کند، حتی اگر سند قبلاً شماره‌ای نداشته باشد. یکی از شش موقعیت موجود در enum جدید WordsPageNumberLocation را انتخاب کنید؛ پیش‌فرض NOT_APPLY سند را دست‌نخورده می‌گذارد.

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import PdfViewOptions, WordsPageNumberLocation

with Viewer("document.docx") as viewer:
    options = PdfViewOptions("output.pdf")
    options.word_processing_options.page_number_location = WordsPageNumberLocation.BOTTOM_CENTER
    viewer.view(options)

وضوح خروجی PNG و JPEG برای اسناد Word

WordProcessingOptions.horizontal_resolution و vertical_resolution DPI تصاویر رندر شده از اسناد Word را تنظیم می‌کنند. پیش‌فرض 96 DPI است؛ مقادیر خارج از بازه 72 – 600 DPI به این بازه محدود می‌شوند.

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import PngViewOptions

with Viewer("document.docx") as viewer:
    options = PngViewOptions("page_{0}.png")
    options.word_processing_options.horizontal_resolution = 300
    options.word_processing_options.vertical_resolution = 300
    viewer.view(options)

دیگر libgdiplus نیست

بسته‌های لینوکس و macOS از طریق SkiaSharp و Aspose.Drawing رندر می‌شوند که داخل wheel گنجانده شده‌اند. آن‌ها هرگز libgdiplus را فراخوانی نمی‌کنند: تمام مثال‌های مستند شده در یک کانتینر لینوکس اجرا می‌شوند که نه libgdiplus دارد و نه وابستگی‌های گرافیکی آن. libgdiplus / mono-libgdiplus را از ایمیج‌ها و اسکریپت‌های provisioning خود حذف کنید.

یک API پایتون در همه پلتفرم‌ها

پکیج‌های قبلی لینوکس و macOS API کوچکتری نسبت به ویندوز ارائه می‌دادند. نسخه 26.9 همان API را در همه جا ارائه می‌دهد، بنابراین کدی که بر پایه مستندات نوشته شده در تمام پلتفرم‌ها کار می‌کند. بسته‌های لینوکس و macOS ProjectManagementOptions و اعضای FileType.MPP، MPT و MPX را دریافت می‌کنند که اکنون در آن‌ها نیز کار می‌کند.

آن‌ها همچنین FileType.PSD، PSB، AI و ONE را اضافه می‌کنند. این فرمت‌ها همچنان فقط در ویندوز موجود هستند و در لینوکس و macOS دسترسی به یکی از این اعضا خطای GroupDocsViewerException: Member 'GroupDocs.Viewer.FileType.PSD' not found. را ایجاد می‌کند. برای تصمیم‌گیری در زمان اجرا که آیا یک فرمت می‌تواند رندر شود، FileType.get_supported_file_types() را بررسی کنید؛ این متد تنها فرمت‌هایی را که موتور جاری رندر می‌کند، فهرست می‌کند:

from groupdocs.viewer import FileType

supported = {file_type.extension for file_type in FileType.get_supported_file_types()}
print(".psd" in supported)   # True on Windows, False on Linux and macOS
print(".mpp" in supported)   # True everywhere

مثال کد

برای رندر یک فایل Microsoft Project در لینوکس یا macOS با واحد زمان روزانه:

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import HtmlViewOptions, TimeUnit

with Viewer("project.mpp") as viewer:
    options = HtmlViewOptions.for_embedded_resources("page_{0}.html")
    options.project_management_options.time_unit = TimeUnit.DAYS
    viewer.view(options)

برای اعمال شماره‌گذاری صفحه به یک سند Word و رندر به PDF:

from groupdocs.viewer import Viewer
from groupdocs.viewer.options import PdfViewOptions, WordsPageNumberLocation

with Viewer("document.docx") as viewer:
    options = PdfViewOptions("output.pdf")
    options.word_processing_options.page_number_location = WordsPageNumberLocation.BOTTOM_CENTER
    viewer.view(options)

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

PyPI

به‌روزرسانی به آخرین بسته از طریق PyPI:

pip install groupdocs-viewer-net==26.9.0

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

فایل‌های wheel برای تمام پلتفرم‌ها را از صفحه GroupDocs.Viewer for Python via .NET 26.9 دانلود کنید.

منابع