Một lần nữa chào mừng bạn đến với Home of File Format APIs! Trước đây, tôi đã viết một vài bài đăng trên blog để đề cập đến các tình huống chuyển đổi Word (DOC/DOCX) sang PDF theo chương trình trong các ứng dụng .NET(sử dụng C#) và Java. Vì đây là một tính năng phổ biến và được sử dụng rộng rãi, nên tôi nghĩ cũng nên sử dụng nó cho C++. Do đó, trong bài đăng này, tôi sẽ chỉ cho bạn cách chuyển đổi Word DOC/DOCX sang PDF trong các ứng dụng C++. Bài viết này giải quyết các chuyển đổi từ Word sang PDF sau đây:
- Word DOC/DOCX đơn giản sang PDF trong C++.
- DOCX sang PDF với tiêu chuẩn cụ thể như PDF 1.5, PDF/A-1a, v.v.
- Chuyển đổi các trang đã chọn của DOCX sang PDF.
- Áp dụng nén hình ảnh/văn bản trong chuyển đổi DOCX sang PDF.
Thư viện chuyển đổi từ C++ sang PDF
Aspose.Words for C++ là một thư viện nâng cao để tạo và thao tác các định dạng tài liệu Word trong các ứng dụng C++ mà không yêu cầu MS Word. Bạn có thể cài đặt nó qua NuGet hoặc download gói hoàn chỉnh chứa các tệp thư viện cũng như sẵn sàng để chạy các ví dụ mã nguồn.
Chuyển đổi Word DOC/DOCX sang PDF trong C++
Chuyển đổi tài liệu Word sang PDF đơn giản như chiếc bánh bằng cách sử dụng Aspose.Words for C++. Sau đây là các bước để chuyển đổi tệp DOC/DOCX sang PDF.
- Tạo một đối tượng của lớp Document và khởi tạo nó với đường dẫn của tài liệu Word.
- Gọi phương thức Document->Save() để lưu tài liệu dưới dạng PDF.
Mẫu mã sau đây cho biết cách chuyển đổi DOCX sang PDF trong C++.
// Tải tài liệu từ đĩa.
System::SharedPtr<Document> doc = System::MakeObject<Document>( u"Word.docx");
// Đặt đường dẫn PDF đầu ra
System::String outputPath = u"DOCX-to-PDF.pdf";
// Chuyển đổi DOCX sang PDF
doc->Save(outputPath);
std::cout << "Converted DOCX to PDF successfuly.";
Nhập văn bản Word
Tài liệu PDF đã chuyển đổi
Chuyển đổi DOCX sang PDF/A hoặc các tiêu chuẩn PDF khác trong C++
Định dạng PDF hỗ trợ các tiêu chuẩn PDF khác nhau bao gồm PDF/A, PDF/E, v.v. Có thể xảy ra trường hợp bạn cần chuyển đổi tệp Word sang một tiêu chuẩn cụ thể, chẳng hạn như PDF/A-1a. Trong trường hợp như vậy, Aspose.Words for C++ cho phép bạn đặt tiêu chuẩn PDF mong muốn cho tệp PDF được chuyển đổi. Sau đây là các bước để đặt chuẩn PDF trong chuyển đổi Word sang PDF:
- Tạo một đối tượng thuộc lớp Document và khởi tạo nó với đường dẫn của tệp DOCX.
- Tạo đối tượng của lớp PdfSaveOptions và thiết lập tuân thủ PDF bằng phương thức PdfSaveOptions->setCompliance().
- Gọi phương thức Document->Save() để lưu tài liệu dưới dạng PDF.
Mẫu mã sau đây cho biết cách chuyển đổi Word DOCX sang PDF với tiêu chuẩn PDF/A-1a.
// Tải tài liệu từ đĩa.
System::SharedPtr<Document> doc = System::MakeObject<Document>( u"Word.docx");
// Đặt đường dẫn PDF đầu ra
System::String outputPath = u"DOCX-to-PDFA.pdf";
// Đặt tùy chọn PDF
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_Compliance(PdfCompliance::PdfA1a);
// Lưu tài liệu ở định dạng PDF.
doc->Save(outputPath, options);
std::cout << "Converted DOCX to PDF/A successfuly.";
Chuyển đổi các trang đã chọn của Word thành PDF trong C++
Bạn cũng có thể chỉ chuyển đổi các trang đã chọn thay vì chuyển đổi toàn bộ Word sang PDF. Sau đây là các bước để chỉ chuyển đổi các trang Word mong muốn sang PDF:
- Tải tài liệu Word bằng lớp Document.
- Đặt chỉ mục của trang bắt đầu bằng phương thức PdfSaveOptions->setPageIndex().
- Đặt số trang bạn muốn chuyển đổi bằng phương pháp PdfSaveOptions->setPageCount().
- Lưu tài liệu dưới dạng PDF bằng phương pháp Document->Save().
Mẫu mã sau đây cho biết cách chuyển đổi các trang đã chọn của DOCX thành PDF trong C++.
// Tải tài liệu từ đĩa.
System::SharedPtr<Document> doc = System::MakeObject<Document>( u"Word.docx");
// Đặt đường dẫn PDF đầu ra
System::String outputPath = u"DOCX-to-PDF.pdf";
// Đặt tùy chọn PDF
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>();
options->set_PageIndex(1);
options->set_PageCount(2);
// Lưu tài liệu ở định dạng PDF.
doc->Save(outputPath, options);
Áp dụng Nén Hình ảnh/Văn bản trong Chuyển đổi DOCX sang PDF
Bạn cũng có thể nén tài liệu PDF thu được để giảm kích thước của nó. Aspose.Words for C++ cho phép bạn áp dụng nén văn bản và hình ảnh bằng các phương thức PdfSaveOptions->setTextCompression() và PdfSaveOptions->setImageCompression() tương ứng. Mẫu mã sau đây cho biết cách áp dụng nén khi chuyển đổi DOCX sang PDF trong C++.
// Tải tài liệu từ đĩa.
System::SharedPtr<Document> doc = System::MakeObject<Document>( u"Word.docx");
// Đặt đường dẫn PDF đầu ra
System::String outputPath = u"DOCX-to-PDF.pdf";
// Đặt tùy chọn PDF
System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>();
// Đặt chất lượng JPEG
options->set_JpegQuality(100);
// Lưu tài liệu ở định dạng PDF
doc->Save(outputPath, options);
Tìm hiểu thêm về Aspose.Words for C++
Bạn có thể khám phá thêm về Aspose.Words for C++ bằng cách sử dụng tài liệu. Trong trường hợp bạn có thể thấy bất kỳ điều gì khó hiểu, vui lòng cho chúng tôi biết qua diễn đàn của chúng tôi.