Chuyển DOCX sang PDF bằng C#

DocxToPdfConverter xuất tài liệu Word ra PDF chỉ bằng một lệnh gọi, không cần Word, LibreOffice hay Office interop. Toàn bộ là mã managed, nên chạy giống hệt nhau trong container Linux, trên arm64 và trên máy Windows.

using DocToolkit;

byte[] docx = File.ReadAllBytes("input.docx");
byte[] pdf = DocxToPdfConverter.Convert(docx);
File.WriteAllBytes("output.pdf", pdf);

Cần những gì

  • Không cần trình duyệt, kể cả trình duyệt headless.
  • Không cần cài Office, cũng không cần LibreOffice.
  • Không có tệp native: chỉ có mã managed.
  • Không dùng mạng khi chạy, trừ khi bạn yêu cầu.

Nên biết

  • Đồng bộ: Convert nhận tệp .docx dạng byte[] và trả về PDF dạng byte[]; ConvertFile(inputPath, outputPath) chuyển thẳng từ đường dẫn sang đường dẫn.
  • Tệp DOCX đã mã hóa bị từ chối với DocumentConversionException; hãy gỡ mật khẩu bằng DocxEditor.Unprotect trước.
  • Chữ không phải Latin phụ thuộc vào phông chữ có trên máy. Hãy truyền đủ phông chữ qua PdfFontOptions vào Convert(docx, fonts): chúng thay thế phông dự phòng của máy chứ không bổ sung thêm, nên truyền quá ít còn tệ hơn không truyền.
  • Ảnh từ xa trong tài liệu không được tải về: việc chuyển đổi vẫn thành công, chỉ thiếu các ảnh đó.

Cài đặt

dotnet add package Ank.DocToolkit

NuGetTài liệu hướng dẫnGitHub