Tệp Microsoft Publisher (PUB) được sử dụng để in hoặc xuất bản thông tin. Có thể có các tình huống mà bạn cần chia sẻ các tệp này và bên nhận không có quyền truy cập vào Microsoft Publisher. Trong những trường hợp như vậy, việc chuyển đổi các tệp này thành hình ảnh trước khi chia sẻ có thể tỏ ra hữu ích. Để đạt được điều đó, bài viết này sẽ hướng dẫn bạn cách chuyển đổi tệp PUB sang các định dạng hình ảnh khác nhau bằng C ++.
- API C ++ để chuyển đổi tệp PUB sang định dạng hình ảnh
- Chuyển đổi tệp PUB sang hình ảnh JPG bằng C ++
- Chuyển đổi tệp PUB thành hình ảnh PNG bằng C ++
- Chuyển đổi tệp PUB thành hình ảnh TIFF bằng C ++
API C ++ để chuyển đổi tệp PUB sang định dạng hình ảnh
Chúng tôi sẽ sử dụng các API Aspose.PUB cho C ++ và Aspose.PDF cho C ++ để thực hiện chuyển đổi này. Cái trước là thư viện để làm việc với các tệp Microsoft Publisher (PUB), trong khi cái sau là thư viện để tạo, đọc và sửa đổi các tệp PDF. Chúng tôi sẽ sử dụng API Aspose.PUB cho C ++ để chuyển đổi tệp PUB sang định dạng PDF và API Aspose.PDF cho C ++ để chuyển đổi tệp PDF đã tạo sang định dạng hình ảnh. Bạn có thể cài đặt các API thông qua NuGet hoặc tải xuống trực tiếp từ phần Tải xuống.
PM> Install-Package Aspose.PUB.Cpp
PM> Install-Package Aspose.PDF.Cpp
Chuyển đổi tệp PUB sang hình ảnh JPG bằng C ++
Sau đây là các bước để chuyển đổi tệp PUB sang hình ảnh JPG.
- Tải tệp PUB bằng phương thức PubFactory :: CreateParser (System :: String fileName).
- Chuyển đổi tệp PUB sang định dạng PDF bằng cách sử dụng ConvertToPdf (System :: SharedPtr phương thức doc, System :: String fileName).
- Tải tệp PDF đã tạo bằng lớp Tài liệu.
- Lặp lại các trang của tệp PDF.
- Nhận kích thước của trang PDF.
- Tạo một thể hiện của lớp Độ phân giải.
- Khởi tạo lớp JpegDevice bằng cách cung cấp chiều rộng, chiều cao và độ phân giải.
- Tạo một phiên bản của FileStream cho hình ảnh đầu ra.
- Chuyển đổi trang PDF sang hình ảnh JPG bằng cách sử dụng JpegDevice-> Process (System :: SharedPtr trang, phương thức System :: SharedPtr output).
- Đóng luồng.
Đoạn mã mẫu sau đây cho thấy cách chuyển đổi tệp PUB sang ảnh JPG bằng C ++.
// Nguồn PUB và đường dẫn tệp PDF xuất
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Tải tệp PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Chuyển đổi tệp PUB thành PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Tải tệp PDF đã tạo
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Lặp lại các trang PDF
for (auto page : pdfDocument->get_Pages())
{
// Nhận kích thước của trang PDF
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Tạo một phiên bản của lớp Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Tạo thiết bị JPEG với Chiều rộng, Chiều cao và Độ phân giải được chỉ định
auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);
// Tạo Dòng tệp cho hình ảnh đầu ra
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));
// Chuyển đổi trang PDF sang hình ảnh JPG
device->Process(page, imageStream);
// Đóng luồng
imageStream->Close();
}
Chuyển đổi tệp PUB thành hình ảnh PNG bằng C ++
Để chuyển đổi tệp PUB sang hình ảnh PNG, hãy làm theo các bước dưới đây.
- Tải tệp PUB bằng phương thức PubFactory :: CreateParser (System :: String fileName).
- Chuyển đổi tệp PUB sang định dạng PDF bằng cách sử dụng ConvertToPdf (System :: SharedPtr phương thức doc, System :: String fileName).
- Tải tệp PDF đã tạo bằng lớp Tài liệu.
- Lặp lại các trang của tệp PDF.
- Nhận kích thước của trang PDF.
- Tạo một thể hiện của lớp Độ phân giải.
- Khởi tạo lớp PngDevice bằng cách cung cấp chiều rộng, chiều cao và độ phân giải.
- Tạo một phiên bản của FileStream cho hình ảnh đầu ra.
- Chuyển đổi trang PDF sang hình ảnh PNG bằng PngDevice-> Process (System :: SharedPtr trang, Hệ thống :: SharedPtrSystem::IO::Stream output) phương pháp.
- Đóng luồng.
Đoạn mã mẫu sau đây cho thấy cách chuyển đổi tệp PUB thành ảnh PNG bằng C ++.
// Nguồn PUB và đường dẫn tệp PDF xuất
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Tải tệp PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Chuyển đổi tệp PUB thành PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Tải tệp PDF đã tạo
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Lặp lại các trang PDF
for (auto page : pdfDocument->get_Pages())
{
// Nhận kích thước của trang PDF
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Tạo một phiên bản của lớp Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Tạo thiết bị PNG với Chiều rộng, Chiều cao và Độ phân giải được chỉ định
auto device = MakeObject<Devices::PngDevice>(width, height, resolution);
// Tạo Dòng tệp cho hình ảnh đầu ra
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));
// Chuyển đổi trang PDF sang hình ảnh PNG
device->Process(page, imageStream);
// Đóng luồng
imageStream->Close();
}
Chuyển đổi tệp PUB thành hình ảnh TIFF bằng C ++
Sau đây là các bước để chuyển đổi tệp PUB sang hình ảnh TIFF.
- Tải tệp PUB bằng phương thức PubFactory :: CreateParser (System :: String fileName).
- Chuyển đổi tệp PUB sang định dạng PDF bằng cách sử dụng ConvertToPdf (System :: SharedPtr doc, System :: String fileName) phương thức.
- Tải tệp PDF đã tạo bằng lớp Tài liệu.
- Nhận kích thước của trang PDF đầu tiên.
- Tạo một thể hiện của lớp Độ phân giải.
- Tạo một phiên bản của lớp TiffSettings và đặt các cài đặt cần thiết.
- Khởi tạo lớp TiffDevice bằng cách cung cấp chiều rộng, chiều cao, độ phân giải và TiffSettings.
- Tạo một phiên bản của FileStream cho hình ảnh đầu ra.
- Chuyển đổi tệp PDF sang hình ảnh TIFF bằng cách sử dụng TiffDevice-> Process (System :: SharedPtrAspose::Pdf::Document document, int32t fromPage, int32t toPage, System :: SharedPtrSystem::IO::Stream output) phương pháp.
- Đóng luồng.
Đoạn mã mẫu sau đây trình bày cách chuyển đổi tệp PUB thành ảnh TIFF bằng C ++.
// Nguồn PUB và đường dẫn tệp PDF xuất
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Tải tệp PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Chuyển đổi tệp PUB thành PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Tải tệp PDF đã tạo
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Nhận kích thước của trang PDF đầu tiên
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);
// Tạo một phiên bản của lớp Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Tạo một phiên bản của lớp TiffSettings và đặt các cài đặt cần thiết
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);
// Tạo thiết bị TIFF với Chiều rộng, Chiều cao, Độ phân giải và Cài đặt Tiff được chỉ định
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);
// Tạo Dòng tệp cho hình ảnh đầu ra
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");
// Chuyển đổi tệp PDF thành hình ảnh TIFF
device->Process(pdfDocument, 1, 1, imageStream);
// Đóng luồng
imageStream->Close();
Nhận giấy phép miễn phí
Bạn có thể dùng thử API mà không có giới hạn đánh giá bằng cách yêu cầu giấy phép tạm thời miễn phí.
Sự kết luận
Trong bài viết này, bạn đã học cách chuyển đổi tệp Microsoft Publisher (PUB) sang hình ảnh JPG, PNG và TIFF bằng C ++. Chúng tôi đã sử dụng Aspose.PUB cho C ++ và Aspose.PDF cho C ++ API để đạt được điều này. Bạn có thể khám phá chi tiết các API này bằng cách truy cập tài liệu chính thức của chúng. Trong trường hợp có bất kỳ câu hỏi nào, vui lòng liên hệ với chúng tôi tại diễn đàn hỗ trợ miễn phí của chúng tôi.