Изображения можно использовать для демонстрации самых разных вещей, начиная от фотографий продуктов и заканчивая рабочими процессами и блок-схемами. Файлы PDF могут содержать изображения в зависимости от типа содержащейся в них информации. Например, руководство по установке стула будет включать изображения стула, демонстрирующие, как его собрать. Могут быть сценарии, в которых вам нужно программно управлять изображениями в файлах PDF. В таких случаях эта статья научит вас работать с изображениями в файлах PDF с помощью C++.
- C++ API для работы с изображениями в файлах PDF
- Добавить изображение в файл PDF с помощью C++
- Извлечение изображений из файла PDF с помощью C++
- Удалить изображение из файла PDF с помощью C++
- Заменить изображение в файле PDF с помощью С++
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 с помощью метода Документ->Сохранить(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, выполните следующие действия.
- Загрузите файл 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-файл, используя метод Документ->Сохранить(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 с помощью С++
Чтобы заменить существующее изображение в файле PDF, выполните следующие действия.
- Загрузите файл PDF с помощью класса Document.
- Откройте новое изображение с помощью класса FileStream.
- Замените старое изображение, используя Document->getPages()->idxget(int32t index)->getResources()->getImages()->Replace(int32t index, System::SharedPtrSystem::IO::Stream поток) метод.
- Закройте поток.
- Сохраните файл PDF, используя метод Документ->Сохранить(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");
Получить бесплатную лицензию
Вы можете попробовать API без ограничений на пробную версию, запросив бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как работать с изображениями в файлах PDF с помощью C++. В частности, вы узнали, как добавлять, извлекать, заменять и удалять изображения из файлов PDF с помощью Aspose.PDF for C++ API. API предоставляет множество дополнительных функций для работы с PDF-файлами, которые вы можете подробно изучить, посетив официальную документацию. Если у вас возникнут вопросы, обращайтесь к нам на наш бесплатный форум поддержки.