Jump to content

Como Converter Bytes em um arquivo PDF com Node.JS


Postagens Recomendadas

Fala Dev.. Tudo certo !! 

Talvez em algum momento de sua carreira você necessite trabalhar com o consumo de uma API que retorne os Bytes de um arquivo PDF, e nesse momento lhe surja o pensamento de: Certo, como vou pegar esse retorno e gerar o arquivo do PDF?

 

É para isso que estou aqui, nesse conteúdo venho lhe orientar a como gerar o arquivo .PDF de forma simples sem a necessidade de instalar bibliotecas/libs externas.

A explicação será realizada utilizando da Linguagem NodeJS, mas a lógica em questão servirá para as demais linguaguens de programação.

Caso a API que está consumindo retorne o PDF em formato de Bytes, nesse retorno como padrão será retornado um texto com as inicias "%PDF-1.4" (A versão pode ser diferente de 1.4) e com o final "%%EOF" , para que seja convertido esse retorno em um arquivo .PDF, é necessário que seja realizado a conversão de Bytes para um Buffer.. Mas o que seria esse tal de Buffer? Ele se trata de uma região da memória física de um computador utilizada para armazenar dados temporariamente, utilizado na prática para pré-carregar e armazenar uma parte de um arquivo de mídia no buffer ou na memória temporária de um dispositivo. Ele é basicamente utilizado para não ocorrer interrupções na conversão e que sejam gerados perfeitamente.

Certo, mas como converter para esse tal de Buffer? 

Na chamada da sua rota para a API que lhe retornará os Bytes, inclua uma opção chamada responseType: 'arraybuffer' , essa opção realizará automaticamente a conversão dos Bytes para um Array de Buffer dessa forma por exemplo: 

<Buffer 25 50 44 46 2d 31 2e  0d 0a 3c 43 72 65 61 74 43 72 65 61 74 69 6f ... 25395 more bytes>

Ao receber o retorno dessa forma, você precisará apenas converter esse Buffer em um base64 e salvar o arquivo em sua máquina ou salvar de alguma outra forma, isso dependerá da sua linguagem utilizada, mas caso esteja utilizando do NodeJS, é possível criar uma função utilizando do fs.writeFile passando (o nome do arquivo , os dados como buffer, e o formato base 64)
 

fs.writeFile(nomeArquivo, buffer, 'base64', err => {
   if (err) {
      console.error('Erro ao escrever o arquivo PDF:', err);
   } else {
      console.log('Arquivo PDF criado com sucesso:', nomeArquivo);
   }
})

Dessa forma será gerado o arquivo .PDF com todos os dados corretamente.

Até a próxima,
Abraços!

  • Curtir 3
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...