
Trình xem DOCX trong ASP.NET Core: Xem trước tệp Word
Để xem trước một tài liệu Word trong ứng dụng ASP.NET Core, hãy sử dụng SDK trình xem DOCX mà render tệp trên máy chủ và hiển thị các trang của nó trong trình duyệt. Doconut cung cấp quy trình này mà không cần Microsoft Word trên máy chủ. Người dùng của bạn có thể đọc hợp đồng, đề xuất hoặc báo cáo ngay trong ứng dụng thay vì mở một chương trình desktop riêng.

Câu hỏi hữu ích là điều gì sẽ xảy ra khi bạn thay thế tệp demo bằng các tài liệu của riêng mình. Một hợp đồng có thể chứa phông chữ tùy chỉnh, tiêu đề lặp lại, bảng rộng và các trang chữ ký. Hướng dẫn này trình bày bước mở tài liệu cho một ứng dụng .NET 8 và các kiểm tra giúp bạn đánh giá kết quả.
Mở tệp DOCX từ C#
Bắt đầu với Hướng dẫn nhanh Doconut .NET 8 để cấu hình các dịch vụ, phiên ASP.NET, middleware tài liệu, tài nguyên trình xem và widget trình duyệt. Endpoint sau mở rộng ứng dụng đã cấu hình; nó không phải là một ứng dụng độc lập hoàn chỉnh.
Đặt một tài liệu thử không nhạy cảm tại App_Data/Sample.docx dưới thư mục gốc nội dung của ứng dụng. Thêm endpoint này trước 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 });
});
Giữ chỉ thị using cùng với các import khác ở đầu Program.cs. Đường dẫn cố định giúp ví dụ dễ tái tạo và tránh chấp nhận một đường dẫn máy chủ tùy ý từ trình duyệt.
Tài liệu tham khảo API Viewer mô tả overload đường dẫn tệp của OpenDocumentAsync. Nó mở tệp và trả về một token phiên tài liệu. Trên trang mà hướng dẫn nhanh đã khởi tạo sẵn objViewer, mở bản xem trước bằng:
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);
}
Gọi hàm này từ hành động xem trước trên trang của bạn và hiển thị bất kỳ lỗi nào qua UI lỗi hiện có của ứng dụng. Giữ yêu cầu trên cùng nguồn gốc ứng dụng như trình xem trong ví dụ này.
Giữ quyền truy cập tài liệu dưới kiểm soát của ứng dụng
Trong một cổng khách hàng, thay thế mẫu cố định bằng một bản ghi tài liệu được ứng dụng của bạn chọn. Kiểm tra xem người dùng hiện tại có thể xem bản ghi đó trước khi xác định vị trí lưu trữ và mở nó. Một tên tệp nhận được từ trình duyệt không phải là quyết định ủy quyền.
Lưu các bản gốc được bảo vệ bên ngoài thư mục web công cộng. Thư mục App_Data trong ví dụ là một quy ước lưu trữ, không phải tính năng kiểm soát truy cập: không để lộ nó qua ánh xạ tệp tĩnh. Giữ xác thực và quyền tài liệu trong ứng dụng host.
Trình duyệt nhận được một token xem cho phiên tài liệu. Xem token này như một chứng chỉ thay vì một URL tài liệu cố định. Hướng dẫn nhanh cũng bao gồm việc đóng tài liệu khi người đọc rời đi hoặc mở tệp khác.
Kiểm tra bố cục Word với các tệp đại diện
Một DOCX trống không cho thấy gì về các tài liệu khách hàng của bạn. Xây dựng một bộ đánh giá nhỏ từ các mẫu thực tế mà ứng dụng của bạn cần hiển thị, với thông tin nhạy cảm đã được loại bỏ.
| Tài liệu kiểm tra | Những gì cần kiểm tra trong bản xem trước |
|---|---|
| Hợp đồng có tiêu đề và chân trang | Nội dung lặp lại, số trang và vị trí trang chữ ký |
| Đề xuất sử dụng phông chữ công ty | Thay thế phông chữ, ngắt dòng và độ rộng tiêu đề |
| Báo cáo có bảng rộng hoặc lồng nhau | Độ rộng cột, chia hàng và văn bản bị cắt ở ranh giới trang |
| Tài liệu kết hợp các phần dọc và ngang | Kích thước trang và chuyển đổi giữa các phần |
| Hướng dẫn nhiều hình ảnh | Vị trí hình ảnh, chú thích và độ đọc được khi phóng to |
So sánh kết quả render với tài liệu nguồn đã được phê duyệt. Quyết định những khác biệt nào quan trọng đối với quy trình làm việc của bạn trước khi cam kết tích hợp.
Doconut mở rộng các cài đặt render đặc thù cho Word thông qua WordConfig. Tài liệu tham khảo cấu hình định dạng bao gồm FontFolders cho các thư mục phông chữ bổ sung, cài đặt kích thước giấy, và AutoFitAllTables cho việc vừa khít bảng. Thay đổi chúng một cách có chủ ý: làm cho một bảng vừa với chiều rộng có sẵn cũng có thể thay đổi bố cục bạn đang cố bảo tồn.
Lặp lại các kiểm tra trên máy chủ triển khai. Một bản xem trước sử dụng phông chữ được cài trên máy của nhà phát triển có thể trông khác khi phông chữ đó không có trên máy chủ. Sử dụng các phông chữ mà tổ chức của bạn được phép triển khai.
Chọn riêng việc xem, chỉnh sửa và chuyển đổi
Một bản xem trước DOCX giải quyết bước đọc. Nó không biến ứng dụng của bạn thành môi trường soạn thảo Word.
- Đọc: sử dụng trình xem khi ai đó cần kiểm tra một tài liệu hiện có trong một vụ việc, đơn đặt hàng hoặc hồ sơ khách hàng.
- Chỉnh sửa: nếu người dùng phải viết lại các đoạn và lưu một DOCX đã cập nhật, hãy đánh giá quy trình chỉnh sửa riêng biệt. Xem trước một tệp không chứng minh hỗ trợ chỉnh sửa Word.
- Chuyển đổi: nếu yêu cầu là một tệp có thể tải xuống ở định dạng khác, hãy đánh giá quy trình xuất riêng biệt so với việc hiển thị các trang.
Tổng quan trình xem Word cho .NET mô tả đường dẫn xem của họ họa gia đình Word của Doconut. Sử dụng nó để kiểm tra sự phù hợp của sản phẩm, sau đó dùng các tệp của bạn để đánh giá hành vi render quan trọng đối với ứng dụng của bạn.
Đánh giá trình xem với tài liệu khó nhất của bạn trước tiên
Bắt đầu với một tài liệu đã gây ra yêu cầu hỗ trợ: một hợp đồng dài, một báo cáo nặng bảng, hoặc một mẫu với phông chữ lạ. Kiểm tra bản xem trước, duyệt qua vài trang, mở lại trong một phiên mới, và xác minh rằng ứng dụng xung quanh thực thi đúng quyền tài liệu.
Tải xuống Doconut và chạy mẫu .NET 8 với tệp đó. Một đánh giá thành công nên chứng minh rằng người dùng có thể đọc các tài liệu họ thực sự nhận được, với bố cục mà nhóm của bạn đã xem xét và một tích hợp mà ứng dụng của bạn có thể duy trì.