نمایشگر DOCX در ASP.NET Core: پیش‌نمایش فایل‌های Word
← Back to Blog••6 min read

نمایشگر DOCX در ASP.NET Core: پیش‌نمایش فایل‌های Word

برای پیش‌نمایش یک سند Word در داخل یک برنامه ASP.NET Core، از یک SDK نمایشگر DOCX استفاده کنید که فایل را بر روی سرور رندر می‌کند و صفحات آن را در مرورگر نمایش می‌دهد. Doconut این جریان کاری را بدون نیاز به Microsoft Word بر روی سرور فراهم می‌کند. کاربران شما می‌توانند یک قرارداد، پیشنهاد یا گزارش را داخل برنامه خود بخوانند به‌جای این‌که برنامه دسکتاپ جداگانه‌ای را باز کنند.

یک گزارش عاجی با جداول و نمودارها که از یک پوشه نیرویی به یک قاب شیشه‌ای واضح گسترش می‌یابد
یک گزارش عاجی با جداول و نمودارها که از یک پوشه نیرویی به یک قاب شیشه‌ای واضح گسترش می‌یابد

سؤال مفید این است که چه اتفاقی می‌افتد وقتی فایل نمایشی را با اسناد خودتان جایگزین می‌کنید. یک قرارداد ممکن است شامل فونت‌های سفارشی، سرصفحه‌های تکراری، جداول گسترده و صفحات امضا باشد. این راهنما گام باز کردن سند برای یک برنامه .NET 8 و بررسی‌هایی که به ارزیابی نتیجه کمک می‌کند را نشان می‌دهد.

باز کردن یک فایل DOCX از C#

با Doconut .NET 8 quick start شروع کنید تا سرویس‌ها، نشست ASP.NET، میدلور سند، منابع نمایشگر و ویجت مرورگر را پیکربندی کنید. نقطه انتهایی زیر برنامه پیکربندی‌شده را گسترش می‌دهد؛ این یک برنامه مستقل کامل نیست.

یک سند تست غیرحساس را در App_Data/Sample.docx زیر ریشه محتویات برنامه قرار دهید. این نقطه انتهایی را قبل از app.Run() اضافه کنید:

using Doconut;

app.MapPost("/api/preview-word", async (
    Viewer viewer,
    IWebHostEnvironment environment) =>
{
    var filePath = Path.Combine(
        environment.ContentRootPath, "App_Data", "Sample.docx");

    if (!File.Exists(filePath))
        return Results.NotFound();

    var token = await viewer.OpenDocumentAsync(filePath);
    return Results.Ok(new { token });
});

دستور using را همراه با سایر ایمپورت‌ها در بالای Program.cs نگه دارید. مسیر ثابت مثال را آسان می‌کند تا بازتولید شود و از پذیرش مسیر دلخواه سرور از مرورگر جلوگیری می‌کند.

Viewer API reference بارگذاری مسیر‑فایل OpenDocumentAsync را مستند می‌کند. این متد فایل را باز می‌کند و یک توکن نشست سند برمی‌گرداند. در صفحه‌ای که quick start قبلاً objViewer را مقداردهی کرده، پیش‌نمایش را با کد زیر باز کنید:

async function previewWordDocument() {
    const response = await fetch('/api/preview-word', {
        method: 'POST'
    });

    if (!response.ok) {
        throw new Error('The Word preview could not be opened.');
    }

    const { token } = await response.json();
    objViewer.View(token);
}

این تابع را از عمل پیش‌نمایش صفحه خود فراخوانی کنید و هر خطایی را از طریق رابط کاربری خطای موجود برنامه نمایش دهید. درخواست را در همان منبع برنامه همانند نمایشگر در این مثال نگه دارید.

دسترسی به سند را تحت کنترل برنامه نگه دارید

در یک پورتال مشتری، نمونه ثابت را با رکورد سندی که برنامه شما انتخاب می‌کند جایگزین کنید. قبل از تعیین مکان ذخیره‌سازی و باز کردن آن، بررسی کنید که کاربر فعلی می‌تواند آن رکورد را مشاهده کند. نام فایلی که از مرورگر دریافت می‌شود تصمیم‌گیری مجوز نیست.

نسخه‌های اصلی محافظت‌شده را خارج از ریشه وب عمومی ذخیره کنید. پوشه App_Data در مثال یک قرارداد ذخیره‌سازی است، نه ویژگی کنترل دسترسی: آن را از طریق نگاشت فایل‌های استاتیک در دسترس قرار ندهید. احراز هویت و مجوزهای سند را در برنامه میزبان نگه دارید.

مرورگر یک توکن مشاهده برای نشست سند دریافت می‌کند. این توکن را به‌عنوان اعتبارسند در نظر بگیرید نه یک URL دائمی سند. quick start همچنین نحوه بستن سند هنگام خروج خواننده یا باز کردن فایل دیگر را پوشش می‌دهد.

آزمایش چیدمان Word با فایل‌های نماینده

یک DOCX خالی اطلاعات کمی درباره اسنادی که مشتریان شما استفاده می‌کنند می‌دهد. یک مجموعه ارزیابی کوچک از قالب‌های واقعی که برنامه‌تان باید نمایش دهد، با حذف اطلاعات حساس بسازید.

سند تستمواردی که باید در پیش‌نمایش بررسی شوند
قرارداد با سرصفحه و پاصفحهمحتوای تکراری، شماره صفحات، و مکان صفحه امضا
پیشنهاد با استفاده از فونت شرکتیجایگزینی فونت، شکستن خطوط، و عرض عناوین
گزارش با جداول گسترده یا تو در توعرض ستون‌ها، تقسیم سطرها، و متن برش خورده در مرزهای صفحه
سندی که بخش‌های عمودی و افقی را ترکیب می‌کندابعاد صفحه و انتقال بین بخش‌ها
راهنمایی با تصاویر زیادموقعیت تصویر، توضیحات، و خوانایی هنگام بزرگ‌نمایی

نتیجه رندر شده را با سند منبع تأیید شده مقایسه کنید. قبل از تعهد به یکپارچه‌سازی، تصمیم بگیرید کدام اختلافات برای جریان کاری شما مهم هستند.

Doconut تنظیمات رندر مخصوص Word را از طریق WordConfig در دسترس می‌گذارد. format configuration reference شامل FontFolders برای پوشه‌های فونت اضافی، تنظیمات اندازه کاغذ و AutoFitAllTables برای تنظیم جداول است. این موارد را به‌صورت عمدی تغییر دهید: تنظیم یک جدول برای پر کردن عرض موجود می‌تواند چیدمان مورد نظر شما را نیز تغییر دهد.

بررسی‌ها را روی سرور استقرار تکرار کنید. پیش‌نمایشی که از فونتی نصب‌شده بر روی ماشین توسعه‌دهنده استفاده می‌کند، ممکن است وقتی آن فونت در سرور موجود نباشد متفاوت به‌نظر برسد. از فونت‌هایی استفاده کنید که سازمان شما مجاز به استقرار آنهاست.

انتخاب مشاهده، ویرایش و تبدیل به‌صورت جداگانه

یک پیش‌نمایش DOCX مرحله خواندن را حل می‌کند. این کار برنامه شما را به یک محیط نویسندگی Word تبدیل نمی‌کند.

  • خواندن: هنگام نیاز به بررسی سند موجود در یک پرونده، سفارش یا رکورد مشتری، از نمایشگر استفاده کنید.
  • ویرایش: اگر کاربران باید پاراگراف‌ها را بازنویسی کنند و یک DOCX به‌روز شده ذخیره کنند، یک جریان کاری ویرایش را جداگانه ارزیابی کنید. پیش‌نمایش یک فایل نشانگر پشتیبانی از ویرایش Word نیست.
  • تبدیل: اگر نیاز به فایل قابل دانلود در قالب دیگری است، جریان کاری خروجی را جداگانه از نمایش صفحات ارزیابی کنید.

Word viewer for .NET overview مسیر مشاهده خانواده Word Doconut را توصیف می‌کند. از آن برای بررسی تناسب محصول استفاده کنید، سپس از فایل‌های خود برای ارزیابی رفتار رندر که برای برنامه شما مهم است بهره ببرید.

ابتدا نمایشگر را با سخت‌ترین سند خود ارزیابی کنید

با سندی شروع کنید که قبلاً درخواست‌های پشتیبانی را ایجاد می‌کند: یک قرارداد طولانی، گزارشی پر از جدول یا قالبی با فونت‌های غیرمعمول. پیش‌نمایش را بررسی کنید، چند صفحه را مرور کنید، آن را در یک نشست تازه باز کنید و تأیید کنید که برنامه اطراف مجوزهای صحیح سند را اعمال می‌کند.

دانلود Doconut و نمونه .NET 8 را با آن فایل اجرا کنید. یک ارزیابی موفق باید نشان دهد که کاربران می‌توانند اسنادی را که واقعاً دریافت می‌کنند بخوانند، با چیدمانی که تیم شما بازبینی کرده و یکپارچه‌سازی‌ای که برنامه شما می‌تواند نگهداری کند.

#DOCX Viewer#ASP.NET Core#Word Documents#C##Document Preview#نمایشگر DOCX#اسناد Word#پیش‌نمایش سند