Extrair imagens de arquivos PDF usando Node.js

Os documentos PDF preservam o conteúdo, incluindo imagens e texto como estão. Em certos casos, pode ser necessário extrair imagens de arquivos PDF Acrobat para reutilizá-los. Podemos extrair facilmente todas as imagens ou imagens de páginas específicas incorporadas nos documentos PDF de forma programática na nuvem. Neste artigo, aprenderemos como extrair imagens de arquivos PDF usando uma API REST no Node.js.

Os seguintes tópicos devem ser abordados para extrair fotos de pdf neste artigo:

API REST do extrator de imagem e SDK Node.js

Para extrair imagens de documentos PDF, usaremos a API Node.js SDK of GroupDocs.Parser Cloud. Ele permite a extração de texto, imagens e análise de dados por um modelo de todos os formatos de documento populares. Instale-o usando o seguinte comando no console:

npm install groupdocs-parser-cloud

Por favor, obtenha seu ID e Segredo do cliente no painel antes de seguir as etapas mencionadas. Depois de ter seu ID e segredo, adicione o código conforme mostrado abaixo:

// Este exemplo de código demonstra como adicionar seu ID de cliente e Segredo no código.
global.clientId = '659fe7da-715b-4744-a0f7-cf469a392b73';
global.clientSecret = 'b377c36cfa28fa69960ebac6b6e36421';
global.myStorage = "";

const configuration = new groupdocs_parser_cloud.Configuration(clientId, clientSecret);
configuration.apiBaseUrl = "https://api.groupdocs.cloud";

Extrair imagens de PDF usando uma API REST em Node.js

Podemos extrair imagens de documentos PDF seguindo os passos simples mencionados abaixo:

Carregue o Documento

Em primeiro lugar, faremos o upload do documento PDF contendo imagens para a nuvem usando o exemplo de código fornecido abaixo:

// Este exemplo de código demonstra como carregar um PDF para a nuvem em node.js 
// Construir FileApi
let fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// Caminho do arquivo de entrada
let resourcesFolder = 'C:\\Files\\Parser\\sample.pdf';
fs.readFile(resourcesFolder, (err, fileStream) => {
  // Solicitação de upload de arquivo
  let request = new groupdocs_parser_cloud.UploadFileRequest("sample.pdf", fileStream, myStorage);
  // Subir arquivo
  fileApi.uploadFile(request);
});

Como resultado, o arquivo PDF carregado estará disponível na seção de arquivos do painel na nuvem. Este arquivo está disponível para extrair uma imagem de um pdf.

Extraia todas as imagens do arquivo PDF no Node.js

Agora, vamos extrair todas as imagens do arquivo PDF carregado programaticamente, seguindo as etapas abaixo:

  • Em primeiro lugar, crie uma instância de ParseApi.
  • Em seguida, forneça o caminho do arquivo PDF carregado.
  • Em seguida, defina ImageOptions e atribua o arquivo.
  • Depois disso, crie o ImagesRequest com ImageOptions como argumento.
  • Por fim, extraia as imagens chamando o método images().

O exemplo de código a seguir mostra como extrair todas as imagens de um arquivo PDF usando uma API REST em Node.js.

// Este exemplo de código demonstra como extrair todas as imagens de um PDF em Node.js.
//Inicialização da API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Caminho do arquivo de entrada
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// definir opções de imagem
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// Pedido de imagem
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// Extrair imagens
let result = await parseApi.images(request);

// Mostrar resultados
let images = result.images;
images.forEach(image => {
  console.log("Image path in storage: " + image.path);
  console.log("Download url: " + image.downloadUrl);
  console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
});
Extrair imagens de PDF usando uma API REST em Node.js

Extrair imagens de PDF usando uma API REST em Node.js

Baixar imagens extraídas

O exemplo de código acima salvará as imagens extraídas na nuvem. Podemos baixar essas imagens usando o exemplo de código fornecido abaixo:

// Este exemplo de código demonstra como baixar imagens da nuvem usando Node.js
// Construir instâncias de API necessárias
var folderApi = groupdocs_parser_cloud.FolderApi.fromConfig(configuration);
var fileApi = groupdocs_parser_cloud.FileApi.fromConfig(configuration);

// Obter solicitação de lista de arquivos
var filesListRequest = new groupdocs_parser_cloud.GetFilesListRequest("parser/images/sample_pdf/", myStorage);

// Obter lista de arquivos
var filesList = await folderApi.getFilesList(filesListRequest);

for (var count = 0; count < filesList.value.length; count++) {
  // Solicitação de download de arquivo
  let request = new groupdocs_parser_cloud.DownloadFileRequest(filesList.value[count].path, myStorage);

  // ⇬ Fazer download do arquivo
  let response = await fileApi.downloadFile(request);

  // Salve o arquivo na pasta no disco
  fs.writeFile("C:\\Files\\parser\\images\\" + filesList.value[count].name, response, "binary", function (err) { });
  console.log(response);
}

É assim que você pode exportar uma imagem de um arquivo pdf e baixá-la da nuvem.

Salvar imagens por números de página de documentos PDF em Node.js

Podemos exportar imagens de páginas específicas do PDF em vez de todo o documento seguindo as etapas abaixo.

  • Em primeiro lugar, crie uma instância de ParseApi.
  • Em seguida, forneça o caminho do arquivo PDF carregado.
  • Em seguida, defina ImageOptions e atribua o arquivo.
  • Defina o número da página inicial e o número total de páginas de onde extrair as imagens.
  • Depois disso, crie o ImagesRequest com ImageOptions como argumento.
  • Por fim, extraia as imagens chamando o método images().

O exemplo de código a seguir mostra como extrair imagens de um arquivo PDF por números de página de um documento PDF usando uma API REST em Node.js. Siga as etapas mencionadas anteriormente para baixar as imagens extraídas.

// Este exemplo de código demonstra como extrair imagens de páginas específicas de um PDF em Node.js.
//Inicialização da API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Caminho do arquivo de entrada
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "sample.pdf";

// Definir opções de imagem
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;
options.startPageNumber = 1;      // Start page number
options.countPagesToExtract = 1;  // Total pages

// Pedido de imagem
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// Extrair imagens
let result = await parseApi.images(request);

// Mostrar resultados
let pages = result.pages;
pages.forEach(page => {
  console.log("Page index: " + page.pageIndex);
  page.images.forEach(image => {
    console.log("Download url: " + image.downloadUrl);
    console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
  });
});

Extrair imagens do documento anexado com PDF no Node.js

Também podemos extrair imagens de um documento dentro de um container, disponível como anexo em um arquivo PDF, seguindo os passos abaixo.

  • Em primeiro lugar, crie uma instância de ParseApi.
  • Em seguida, forneça o caminho do arquivo PDF carregado.
  • Em seguida, defina ImageOptions e atribua o arquivo.
  • Em seguida, defina ContainerItemInfo e forneça o caminho relativo do documento interno.
  • Depois disso, crie o ImagesRequest com ImageOptions como argumento.
  • Por fim, extraia as imagens chamando o método images().

O exemplo de código a seguir mostra como extrair as imagens de um documento dentro de um documento PDF usando uma API REST em Node.js. Siga as etapas mencionadas anteriormente para baixar as imagens extraídas.

// Este exemplo de código demonstra como extrair imagens de um documento anexado em um PDF no Node.js.
// Inicialização da API
let parseApi = groupdocs_parser_cloud.ParseApi.fromConfig(configuration);

// Caminho do arquivo de entrada
let fileInfo = new groupdocs_parser_cloud.FileInfo();
fileInfo.filePath = "PDF_with_Attachment.pdf";
fileInfo.password = "password";

// Definir opções de imagem
let options = new groupdocs_parser_cloud.ImagesOptions();
options.fileInfo = fileInfo;

// Item de contêiner
options.ContainerItemInfo = new groupdocs_parser_cloud.ContainerItemInfo();
options.ContainerItemInfo.relativePath = "template-document.pdf";

// Pedido de imagem
let request = new groupdocs_parser_cloud.ImagesRequest(options);

// Extrair imagens
let result = await parseApi.images(request);

// Mostrar resultados
let images = result.images;
images.forEach(image => {
  console.log("Image path: " + image.path);
  console.log("Image format: " + image.fileFormat + ". Page index: " + image.pageIndex);
});

Experimente on-line

Como extrair imagens de pdf grátis? Experimente a seguinte ferramenta de análise de PDF on-line gratuita para extrair imagens em PDF on-line, desenvolvida usando a API acima. https://products.groupdocs.app/parser/pdf

Conclusão

Neste artigo, aprendemos como:

  • extrair imagens de arquivos PDF usando Node.js na nuvem;
  • carregar programaticamente um arquivo PDF para a nuvem;
  • baixe as imagens extraídas da nuvem.

Além disso, você pode aprender mais sobre GroupDocs.Parser Cloud API usando a documentação. Também fornecemos uma seção Referência de API que permite visualizar e interagir com nossas APIs diretamente pelo navegador. Em caso de ambiguidade, sinta-se à vontade para nos contatar no fórum.

Veja também