Зображення можна використовувати для демонстрації різноманітних речей, починаючи від фотографій продуктів і закінчуючи робочими процесами та блок-схемами. Файли PDF можуть містити зображення залежно від типу інформації, яку вони містять. Наприклад, інструкція зі встановлення стільця включатиме зображення стільця, які демонструють, як його зібрати. Можуть бути ситуації, коли вам знадобиться програмно маніпулювати зображеннями у файлах PDF. Для таких випадків ця стаття навчить вас працювати із зображеннями у файлах PDF за допомогою C++. Зокрема, ми розглянемо, як додавати, замінювати, витягувати та видаляти зображення в PDF за допомогою C++.
- C++ API для додавання, оновлення, видалення та заміни зображень PDF
- Додайте зображення до файлу PDF за допомогою C++
- Витягніть зображення з файлу PDF за допомогою C++
- Видалення зображення з PDF-файлу за допомогою C++
- Замініть зображення у файлі PDF за допомогою C++
C++ API для додавання, оновлення, видалення та заміни зображень PDF
Aspose.PDF for C++ — це надійна бібліотека C++, яка дозволяє створювати, читати та змінювати файли PDF. Крім того, API підтримує роботу із зображеннями в документах PDF. Ви можете встановити API через NuGet або завантажити його безпосередньо з розділу завантажень.
PM> Install-Package Aspose.PDF.Cpp
Додайте зображення до файлу PDF у C++
Нижче наведено кроки, щоб додати зображення до файлу PDF.
- Завантажте PDF-файл за допомогою класу Document.
- Отримайте сторінку, на яку ви хочете додати зображення, за допомогою методу Document->getPages()->idxget(int32t index).
- Створіть екземпляр класу Rectangle.
- Додайте зображення на сторінку за допомогою Page->AddImage(System::String imagePath, System::SharedPtrAspose::Pdf::Rectangle прямокутник).
- Збережіть PDF-файл за допомогою методу Document->Save(System::String outputFileName).
У наступному прикладі коду показано, як додати зображення до PDF-файлу за допомогою C++.
// Завантажте файл PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");
// Отримайте першу сторінку
auto page = pdfDocument->get_Pages()->idx_get(1);
// Створіть екземпляр класу Rectangle
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rectangle = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);
// Додайте зображення на сторінку
page->AddImage(u"SourceDirectory\\Images\\AsposeLogo.png", rectangle);
// Збережіть файл PDF
pdfDocument->Save(u"OutputDirectory\\add_image_output.pdf");
Витягніть зображення з PDF-файлу на C++
Щоб отримати зображення з PDF-файлу на C++, виконайте наведені нижче дії.
- Завантажте PDF-файл за допомогою класу Document.
- Витягніть зображення за допомогою методу Document->getPages()->idxget(int32t index)->getResources()->getImages()->idxget(int32t index).
- Створіть екземпляр класу FileStream, щоб зберегти вихідне зображення.
- Збережіть зображення за допомогою XImage->Save(System::SharedPtrSystem::IO::Stream потік, System::SharedPtrSystem::Drawing::Imaging::ImageFormat формат) метод.
- Закрийте потік.
Наведений нижче зразок коду демонструє, як отримати зображення з PDF-файлу на C++.
// Завантажте файл PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// Витягніть певне зображення
auto image = pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->idx_get(1);
// Створіть об’єкт потоку, щоб зберегти вихідне зображення
System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(u"OutputDirectory\\extract_image_output.jpg");
// Збережіть вихідне зображення
image->Save(outputImage, System::Drawing::Imaging::ImageFormat::get_Jpeg());
// Закрийте потік
outputImage->Close();
Видалення зображення з PDF-файлу за допомогою C++
Нижче наведено кроки для видалення зображення з файлу PDF у C++.
- Завантажте PDF-файл за допомогою класу Document.
- Видалити певне зображення за допомогою методу Document->getPages()->idxget(int32t index)->getResources()->getImages()->Delete(int32t index).
- Збережіть PDF-файл за допомогою методу Document->Save(System::String outputFileName).
Наведений нижче зразок коду показує, як видалити зображення з PDF-файлу на C++.
// Завантажте файл PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// Видалити певне зображення
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Delete(1);
// Збережіть файл PDF
pdfDocument->Save(u"OutputDirectory\\delete_image_output.pdf");
Замініть зображення в PDF на C++
Щоб замінити зображення в PDF-файлі на C++, виконайте наведені нижче дії.
- Завантажте PDF-файл за допомогою класу Document.
- Відкрийте нове зображення за допомогою класу FileStream.
- Замініть старе зображення за допомогою Document->getPages()->idxget(int32t index)->getResources()->getImages()->Replace(int32t index, System::SharedPtr)System::IO::Stream потік) метод.
- Закрийте потік.
- Збережіть PDF-файл за допомогою методу Document->Save(System::String outputFileName).
У наведеному нижче прикладі коду показано, як замінити зображення у файлі PDF на C++.
// Завантажте файл PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// Відкрийте нове зображення за допомогою FileStream
System::SharedPtr<System::IO::FileStream> newImage = System::IO::File::OpenRead(u"SourceDirectory\\Images\\aspose.png");
// Замініть старе зображення
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Replace(1, newImage);
// Закрийте потік
newImage->Close();
// Збережіть файл PDF
pdfDocument->Save(u"OutputDirectory\\replace_image_output.pdf");
C++ API для роботи із зображеннями PDF - Отримайте безкоштовну ліцензію
Ви можете спробувати API без обмежень щодо оцінювання, надіславши запит на безкоштовну тимчасову ліцензію.
Висновок
У цій статті ви дізналися, як працювати із зображеннями у файлах PDF за допомогою C++. Зокрема, ви навчилися додавати, витягувати, замінювати та видаляти зображення з PDF-файлів за допомогою Aspose.PDF for C++ API. API надає низку додаткових функцій для роботи з PDF-файлами, які ви можете детально вивчити, відвідавши офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.