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ộ:
Convertnhận tệp.docxdạngbyte[]và trả về PDF dạngbyte[];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ằngDocxEditor.Unprotecttrướ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
PdfFontOptionsvàoConvert(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 đó.