As imagens podem ser usadas para mostrar uma variedade de coisas, desde fotografias de produtos até fluxos de trabalho e fluxogramas. Os arquivos PDF podem conter imagens com base no tipo de informação que possui. Por exemplo, um guia de instalação da cadeira incluirá fotos da cadeira demonstrando como montá-la. Pode haver cenários em que você precise manipular imagens em arquivos PDF programaticamente. Para esses casos, este artigo ensinará como trabalhar com imagens em arquivos PDF usando C++.
- API C++ para trabalhar com imagens em arquivos PDF
- Adicionar uma imagem a um arquivo PDF usando C++
- Extrair imagens de um arquivo PDF usando C++
- Remover uma imagem de um arquivo PDF usando C++
- Substituir uma imagem em um arquivo PDF usando C++
API C++ para trabalhar com imagens em arquivos PDF
Aspose.PDF for C++ é uma biblioteca C++ robusta que permite criar, ler e modificar arquivos PDF. Além disso, a API suporta trabalhar com imagens em documentos PDF. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção downloads.
PM> Install-Package Aspose.PDF.Cpp
Adicionar uma imagem a um arquivo PDF usando C++
A seguir estão as etapas para adicionar uma imagem a um arquivo PDF.
- Carregue o arquivo PDF usando a classe Document.
- Recupere a página onde você deseja adicionar a imagem usando o método Document->getPages()->idxget(int32t index).
- Crie uma instância da classe Rectangle.
- Adicione a imagem à página usando o Page->AddImage(System::String imagePath, System::SharedPtrAspose::Pdf::Rectangle retângulo).
- Salve o arquivo PDF usando o método Document->Save(System::String outputFileName).
O código de exemplo a seguir mostra como adicionar uma imagem a um arquivo PDF usando C++.
// Carregue o arquivo PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");
// Recuperar a primeira página
auto page = pdfDocument->get_Pages()->idx_get(1);
// Crie uma instância da classe 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);
// Adicionar imagem à página
page->AddImage(u"SourceDirectory\\Images\\AsposeLogo.png", rectangle);
// Salve o arquivo PDF
pdfDocument->Save(u"OutputDirectory\\add_image_output.pdf");
Extrair imagens de um arquivo PDF usando C++
Para extrair imagens de um arquivo PDF, siga as etapas abaixo.
- Carregue o arquivo PDF usando a classe Document.
- Extraia a imagem usando o método Document->getPages()->idxget(int32t index)->getResources()->getImages()->idxget(int32t index).
- Crie uma instância da classe FileStream para salvar a imagem de saída.
- Salve a imagem usando o XImage->Save(System::SharedPtrSystem::IO::Stream stream, System::SharedPtrSystem::Drawing::Imaging::ImageFormat formato) método.
- Feche o fluxo.
O código de exemplo a seguir demonstra como extrair uma imagem de um arquivo PDF usando C++.
// Carregue o arquivo PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// Extraia uma imagem específica
auto image = pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->idx_get(1);
// Crie um objeto de fluxo para salvar a imagem de saída
System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(u"OutputDirectory\\extract_image_output.jpg");
// Salve a imagem de saída
image->Save(outputImage, System::Drawing::Imaging::ImageFormat::get_Jpeg());
// Fechar o fluxo
outputImage->Close();
Remover uma imagem de um arquivo PDF usando C++
A seguir estão as etapas para remover uma imagem de um arquivo PDF usando C++.
- Carregue o arquivo PDF usando a classe Document.
- Exclua uma imagem específica usando o método Document->getPages()->idxget(int32t index)->getResources()->getImages()->Delete(int32t index).
- Salve o arquivo PDF usando o método Document->Save(System::String outputFileName).
O código de exemplo a seguir mostra como excluir uma imagem específica de um arquivo PDF usando C++.
// Carregue o arquivo PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// Excluir uma imagem específica
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Delete(1);
// Salve o arquivo PDF
pdfDocument->Save(u"OutputDirectory\\delete_image_output.pdf");
Substituir uma imagem em um arquivo PDF usando C++
Para substituir uma imagem existente em um arquivo PDF, siga as etapas abaixo.
- Carregue o arquivo PDF usando a classe Document.
- Abra a nova imagem usando a classe FileStream.
- Substitua a imagem antiga usando o Document->getPages()->idxget(int32t index)->getResources()->getImages()->Replace(int32t index, System::SharedPtrSystem::IO::Stream fluxo) método.
- Feche o fluxo.
- Salve o arquivo PDF usando o método Document->Save(System::String outputFileName).
O código a seguir mostra como substituir uma imagem em um arquivo PDF usando C++.
// Carregue o arquivo PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// Abra a nova imagem com FileStream
System::SharedPtr<System::IO::FileStream> newImage = System::IO::File::OpenRead(u"SourceDirectory\\Images\\aspose.png");
// Substitua a imagem antiga
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Replace(1, newImage);
// Fechar o fluxo
newImage->Close();
// Salve o arquivo PDF
pdfDocument->Save(u"OutputDirectory\\replace_image_output.pdf");
Obtenha uma licença gratuita
Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.
Conclusão
Neste artigo, você aprendeu como trabalhar com imagens em arquivos PDF usando C++. Especificamente, você aprendeu como adicionar, extrair, substituir e remover imagens de arquivos PDF usando a API Aspose.PDF para C++. A API fornece vários recursos adicionais para trabalhar com arquivos PDF que você pode explorar em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.