Para adicionar Imagem em PDF, usaremos a API Aspose.PDF for C++, que é uma API de manipulação de documentos rica em recursos, poderosa e fácil de usar para a plataforma cpp. Abra o gerenciador de pacotes NuGet, pesquise Aspose.pdf e instale. Você também pode usar o seguinte comando no Console do Gerenciador de Pacotes.
PM > Install-Package Aspose.PDF.Cpp
Adicionar imagem ao PDF usando C++
Você precisa do Aspose.PDF for C++ para testar o código em seu ambiente.
- Crie um objeto Document e abra o documento PDF de entrada.
- Obtenha a página que você deseja adicionar uma imagem.
- Adicione a imagem à coleção Resources da página.
- Use o operador GSave para salvar o estado gráfico atual.
- Use o operador ConcatenateMatrix para especificar onde a imagem deve ser colocada.
- Use o operador Fazer para desenhar a imagem na página.
- Use o operador GRestore para salvar o estado gráfico atualizado.
- Salve o arquivo PDF.
Adicionar imagem ao documento PDF - C++
String _dataDir("C:\\Samples\\");
auto document = MakeObject<Document>(_dataDir + u"AddImage.pdf");
int lowerLeftX = 50;
int lowerLeftY = 750;
int upperRightX = 100;
int upperRightY = 800;
auto page = document->get_Pages()->idx_get(1);
auto imageStream = System::IO::File::OpenRead(_dataDir + u"logo.png");
page->get_Resources()->get_Images()->Add(imageStream);
page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::GSave>());
auto rectangle = MakeObject<Rectangle>(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
auto matrix = MakeObject<Matrix>(
MakeArray<double>({
rectangle->get_URX() - rectangle->get_LLX(),
0, 0,
rectangle->get_URY() - rectangle->get_LLY(),
rectangle->get_LLX(), rectangle->get_LLY() }));
page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::ConcatenateMatrix>(matrix));
auto ximage = page->get_Resources()->get_Images()->idx_get(page->get_Resources()->get_Images()->get_Count());
page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::Do>(ximage->get_Name()));
page->get_Contents()->Add(MakeObject<Aspose::Pdf::Operators::GRestore>());
document->Save(_dataDir + u"updated_document.pdf");
imageStream->Close();