Bạn sẽ có một trình xem tài liệu tự‑hosted, siêu nhanh chạy trong ứng dụng .NET của bạn
Khi bạn hoàn thành hướng dẫn này, bạn có thể mở các tệp PDF, Office, bản vẽ CAD và hàng chục định dạng khác trực tiếp trong trình duyệt, với thời gian tải dưới một giây, không cần gọi dịch vụ SaaS bên ngoài và hoàn toàn kiểm soát bảo mật.
Yêu cầu trước
| Bạn cần gì | Tại sao quan trọng |
|---|---|
| .NET 6 trở lên (SDK nhắm tới .NET 6+) | Đảm bảo tương thích với SDK Online Document Viewer |
| Máy chủ Windows hoặc Linux nơi bạn có thể chạy ứng dụng (on‑premise hoặc đám mây riêng) | Việc tự‑hosted yêu cầu trình xem chạy trong hạ tầng của bạn |
| Truy cập nguồn NuGet của Online Document Viewer (https://doconut.com) | SDK được phân phối dưới dạng gói NuGet |
| Kiến thức cơ bản về ASP.NET Core và JavaScript front‑end | Bạn sẽ mở một endpoint trả về URL có chữ ký và sau đó khởi chạy trình xem từ trình duyệt |
| Vị trí lưu trữ cho các tệp nguồn (hệ thống tệp, blob storage, v.v.) | Trình xem render tệp từ đường dẫn cục bộ hoặc mạng; nguồn phải có thể truy cập được bởi tiến trình máy chủ |
Nếu thiếu bất kỳ mục nào trong số này, quá trình xây dựng sẽ bị dừng lại trước khi dòng mã đầu tiên chạy.
Cài đặt SDK Online Document Viewer
Mở solution của bạn trong Visual Studio hoặc IDE ưa thích và thêm SDK chính thức qua trình quản lý NuGet:
dotnet add package Doconut.NET8
Gói này chứa engine render, các bộ chuyển đổi định dạng và một lớp HTTP nhẹ phục vụ các trang được tạo. Vì SDK được biên dịch vào ứng dụng của bạn, không có dịch vụ bên ngoài nào được gọi tại thời gian chạy.
Sau khi gói được khôi phục, đăng ký các dịch vụ SDK trong Program.cs (hoặc Startup.cs cho các mẫu cũ). Việc đăng ký sẽ tiêm pipeline render vào container DI của ASP.NET Core, làm cho nó sẵn sàng cho các controller của bạn.
Cấu hình pipeline render cho các định dạng yêu cầu
Trình xem hỗ trợ hơn 50 định dạng ngay từ đầu, bao gồm:
- PDF, DOC, DOCX, ODT, RTF
- XLS, XLSX, CSV, ODS
- PPT, PPTX, ODP
- DWG, DXF, DGN (CAD)
- PSD, SVG, TIFF, WEBP, ICO
- EML, MSG, EPUB, MOBI, MPP, VSD
Khi một yêu cầu đến, SDK xác định loại tệp và chọn bộ chuyển đổi phù hợp. Để đạt hiệu năng tốt nhất, bật lớp cache tích hợp sẵn, lưu trang render trong bộ nhớ trong suốt thời gian yêu cầu; đây là yếu tố mang lại trải nghiệm “Siêu nhanh – Render tài liệu ngay lập tức với hiệu năng tối ưu và thời gian tải dưới một giây”.
Trong controller của bạn, gọi phương thức render của SDK (ví dụ, RenderAsync) và truyền đường dẫn tuyệt đối của tệp nguồn. Phương thức này trả về một đoạn HTML chứa trình xem dựa trên canvas. Vì quá trình render diễn ra trên máy chủ, phía client chỉ nhận được markup đã sẵn sàng hiển thị, loại bỏ việc xử lý nặng phía client.
Bảo mật trình xem bằng URL dựa trên token và các hạn chế tùy chọn
Quyền chủ quyền dữ liệu và tuân thủ GDPR là những mối quan tâm phổ biến cho các triển khai on‑premise. SDK tích hợp với hệ thống xác thực của ASP.NET Core, cho phép bạn tạo token có chữ ký để cấp quyền truy cập một lần vào tài liệu cụ thể.
Luồng điển hình:
- Front‑end yêu cầu API của bạn một token preview, cung cấp định danh tài liệu.
- API của bạn xác thực quyền của người dùng, tạo token dạng JWT mã hoá đường dẫn tệp và thời gian hết hạn, và trả về token.
- Front‑end gắn token vào URL của trình xem (ví dụ,
/viewer?token=…). SDK xác thực token trên mỗi yêu cầu và từ chối bất kỳ token nào bị giả mạo hoặc hết hạn.
Nếu bạn cần ngăn người dùng tải xuống hoặc in tài liệu, hãy cấu hình các tùy chọn render do SDK cung cấp để tắt các hành động đó. Lớp JavaScript của trình xem sẽ ẩn nút tải xuống, vô hiệu hoá phím tắt in và chặn menu ngữ cảnh khi nhấp chuột phải.
Xác minh mọi thứ hoạt động
- Đi tới trang chứa trình xem.
- Tài liệu nên xuất hiện trong vòng một giây, kèm thanh cuộn, điều khiển thu phóng và hộp tìm kiếm.
- Nếu bạn đã cấu hình trình xem để tắt tải xuống, nút “Download” sẽ bị ẩn.
- Nhấp chuột phải vào tài liệu sẽ không mở menu ngữ cảnh của trình duyệt khi hạn chế này được bật.
- Sau khi token hết hạn (mặc định 5 phút), làm mới trang sẽ trả về lỗi “401 Unauthorized”, xác nhận việc xác thực token đang hoạt động.
Nếu bất kỳ kiểm tra nào không thành công, hãy quay lại bước tương ứng: thiếu đăng ký SDK, tạo token không đúng, hoặc bỏ qua các cờ bảo mật.
