Файли Microsoft Publisher (PUB) використовуються для друку або публікації інформації. Можуть бути ситуації, коли вам потрібно надати спільний доступ до цих файлів, а сторона, яка отримує, не має доступу до Microsoft Publisher. У таких випадках може виявитися корисним конвертування цих файлів у зображення перед загальним доступом. З цією метою ця стаття навчить вас конвертувати файли PUB у різні формати зображень за допомогою C++.
- C++ API для перетворення файлів PUB у формат зображення
- Перетворюйте файли PUB на зображення JPG за допомогою C++
- Перетворюйте файли PUB на зображення PNG за допомогою C++
- Перетворення файлів PUB на зображення TIFF за допомогою C++
C++ API для перетворення файлів PUB у формат зображення
Для виконання цього перетворення ми використовуватимемо API Aspose.PUB for C++ і Aspose.PDF for C++. Перший є бібліотекою для роботи з файлами Microsoft Publisher (PUB), тоді як другий є бібліотекою для створення, читання та редагування файлів PDF. Ми будемо використовувати API Aspose.PUB for C++ для перетворення файлів PUB у формат PDF і API Aspose.PDF for C++ для перетворення згенерованих файлів PDF у формат зображення. Ви можете встановити API через NuGet або завантажити їх безпосередньо з розділу Завантаження.
PM> Install-Package Aspose.PUB.Cpp
PM> Install-Package Aspose.PDF.Cpp
Перетворюйте файли PUB на зображення JPG за допомогою C++
Нижче наведено кроки для перетворення файлів PUB на зображення JPG.
- Завантажте файл PUB за допомогою методу PubFactory::CreateParser(System::String fileName).
- Перетворіть файл PUB у формат PDF за допомогою ConvertToPdf(System::SharedPtr doc, метод System::String fileName).
- Завантажте згенерований файл PDF за допомогою класу Document.
- Переглядайте сторінки PDF-файлу.
- Отримайте розміри сторінки PDF.
- Створіть екземпляр класу Resolution.
- Створіть екземпляр класу JpegDevice, надавши ширину, висоту та роздільну здатність.
- Створіть екземпляр FileStream для вихідного зображення.
- Перетворіть сторінку PDF на зображення JPG за допомогою JpegDevice->Process(System::SharedPtr) сторінка, метод System::SharedPtr< System::IO::Stream > output).
- Закрийте потік.
У наведеному нижче прикладі коду показано, як конвертувати файли PUB у зображення JPG за допомогою C++.
// Шляхи вихідного PUB та вихідного PDF-файлу
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Завантажте файл PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Перетворіть файл PUB на PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Завантажте створений файл PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Переглядайте сторінки PDF
for (auto page : pdfDocument->get_Pages())
{
// Отримайте розміри сторінки PDF
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Створіть екземпляр класу Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Створіть пристрій JPEG із зазначеними шириною, висотою та роздільною здатністю
auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);
// Створіть файловий потік для вихідного зображення
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));
// Перетворіть сторінку PDF на зображення JPG
device->Process(page, imageStream);
// Закрийте потік
imageStream->Close();
}
Перетворюйте файли PUB на зображення PNG за допомогою C++
Щоб конвертувати файли PUB у зображення PNG, виконайте наведені нижче дії.
- Завантажте файл PUB за допомогою методу PubFactory::CreateParser(System::String fileName).
- Перетворіть файл PUB у формат PDF за допомогою ConvertToPdf(System::SharedPtr doc, метод System::String fileName).
- Завантажте згенерований файл PDF за допомогою класу Document.
- Переглядайте сторінки PDF-файлу.
- Отримайте розміри сторінки PDF.
- Створіть екземпляр класу Resolution.
- Створіть екземпляр класу PngDevice, вказавши ширину, висоту та роздільну здатність.
- Створіть екземпляр FileStream для вихідного зображення.
- Перетворіть сторінку PDF на зображення PNG за допомогою PngDevice->Process(System::SharedPtr) сторінка System::SharedPtrSystem::IO::Stream вихід) метод.
- Закрийте потік.
У наступному прикладі коду показано, як конвертувати файли PUB у зображення PNG за допомогою C++.
// Шляхи вихідного PUB та вихідного PDF-файлу
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Завантажте файл PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Перетворіть файл PUB на PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Завантажте створений файл PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Переглядайте сторінки PDF
for (auto page : pdfDocument->get_Pages())
{
// Отримайте розміри сторінки PDF
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Створіть екземпляр класу Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Створіть пристрій у форматі PNG із зазначеними шириною, висотою та роздільною здатністю
auto device = MakeObject<Devices::PngDevice>(width, height, resolution);
// Створіть файловий потік для вихідного зображення
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));
// Перетворіть сторінку PDF на зображення PNG
device->Process(page, imageStream);
// Закрийте потік
imageStream->Close();
}
Перетворення файлів PUB на зображення TIFF за допомогою C++
Нижче наведено кроки для перетворення файлів PUB на зображення TIFF.
- Завантажте файл PUB за допомогою методу PubFactory::CreateParser(System::String fileName).
- Перетворіть файл PUB у формат PDF за допомогою ConvertToPdf(System::SharedPtr doc, метод System::String fileName).
- Завантажте згенерований файл PDF за допомогою класу Document.
- Отримайте розміри першої сторінки PDF.
- Створіть екземпляр класу Resolution.
- Створіть екземпляр класу TiffSettings і встановіть необхідні параметри.
- Створіть екземпляр класу TiffDevice, надавши ширину, висоту, роздільну здатність і TiffSettings.
- Створіть екземпляр FileStream для вихідного зображення.
- Перетворіть файл PDF на зображення TIFF за допомогою TiffDevice->Process( System::SharedPtr)Aspose::Pdf::Document документ, int32t fromPage, int32t toPage, System::SharedPtrSystem::IO::Stream вихід) метод.
- Закрийте потік.
Наведений нижче приклад коду демонструє, як конвертувати файли PUB у зображення TIFF за допомогою C++.
// Шляхи вихідного PUB та вихідного PDF-файлу
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Завантажте файл PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Перетворіть файл PUB на PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Завантажте створений файл PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Отримайте розміри першої сторінки PDF
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);
// Створіть екземпляр класу Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Створіть екземпляр класу TiffSettings і встановіть необхідні параметри
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);
// Створіть пристрій у форматі TIFF із зазначеними параметрами Width, Height, Resolution і TiffSettings
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);
// Створіть файловий потік для вихідного зображення
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");
// Перетворіть файл PDF на зображення TIFF
device->Process(pdfDocument, 1, 1, imageStream);
// Закрийте потік
imageStream->Close();
Отримайте безкоштовну ліцензію
Ви можете спробувати API без оціночних обмежень, надіславши запит на безкоштовну тимчасову ліцензію.
Висновок
У цій статті ви дізналися, як конвертувати файли Microsoft Publisher (PUB) у зображення JPG, PNG і TIFF за допомогою C++. Для цього ми використали API Aspose.PUB for C++ і Aspose.PDF for C++. Ви можете детально вивчити ці API, відвідавши їхню офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.