Crie um conversor online com a API de conversão do ONLYOFFICE

10 February 2023 By Klaibson 0 21

A conversão de documentos é um recurso muito popular e valioso que nos ajuda a operar com vários tipos de documentos. Os produtos ONLYOFFICE podem facilmente converter documentos em uma ampla variedade de formatos. Esta postagem de blog mostrará como criar um conversor online executado na API de conversão do ONLYOFFICE.

Crie um conversor online com a API de conversão do ONLYOFFICE

Sobre a API de conversão do ONLYOFFICE

O serviço de Conversão de Documentos permite converter todos os tipos de documentos do Office: textos, planilhas, slides, formulários, PDFs e eBooks. Ele facilita a criação de PDFs a partir de documentos e planilhas, convertendo livros didáticos em eBooks, apresentações em arquivos de imagem e muito mais. O ONLYOFFICE suporta mais de 50 tipos de documentos diferentes.

Como funciona

Nossa API de conversão opera por meio do serviço de conversão de documentos, que funciona como parte do servidor de documentos do ONLYOFFICE e nos permite converter vários arquivos de documentos nos formatos apropriados.

A conversão é realizada em várias etapas:

  1. O usuário seleciona um arquivo que deve ser carregado no gerenciador de documentos.
  2. gerenciador de documentos envia o arquivo selecionado para o serviço de armazenamento de documentos.
  3. O serviço de armazenamento de documentos envia o arquivo carregado para o serviço de conversão de documentos usando o conversion API.
  4. O serviço de conversão de documentos converte o arquivo selecionado para o formato de destino.
  5. serviço de armazenamento de documentos baixa o arquivo do documento convertido.

Crie um conversor online com a API de conversão do ONLYOFFICE 

O gerenciador de documentos e os serviços de armazenamento de documentos são ferramentas do lado do cliente e do servidor que facilitam a seleção e o armazenamento de um documento para posterior conversão. No entanto, nosso aplicativo da Web lidará com essas tarefas, pois estamos criando um conversor personalizado.

Pré-requisitos

Nosso conversor será baseado em NodeJS. Portanto, para este projeto, precisaremos do seguinte:

– Express

– Axios

– Jsonwebtoken

Usaremos o pacote Axios para enviar uma solicitação de postagem ao servidor de documentos do ONLYOFFICE e o pacote Jsonwebtoken para assinar um token JWT. A partir da versão 7.2, a autenticação JWT é habilitada por padrão.

Como alternativa, há uma opção para executar a imagem do ONLYOFFICE Document Server com a autenticação JWT desativada. Para fazer isso, execute o seguinte comando no terminal:

A solicitação de postagem que nosso conversor está enviando para o ONLYOFFICE Document Server é a seguinte:

  • No parâmetro aceitar, especificamos que queremos receber uma resposta no formato JSON.
  • O parâmetro async indica que a solicitação é assíncrona.
  • O parâmetro fileType especifica o tipo do arquivo original que vamos converter.
  • O parâmetro chave representa o identificador UID do documento atual.
  • O parâmetro outputType indica o formato do documento convertido.
  • O parâmetro do título contém o nome do documento convertido.
  • O parâmetro url inclui um link para o arquivo que queremos converter.

Os valores dos parâmetros fileType, otputType e url são obtidos do lado do cliente de nosso aplicativo e armazenados nas variáveis. O valor do parâmetro chave será gerado aleatoriamente e armazenado na variável também.

Projeto configurado

Depois de instalar os pacotes necessários, vamos ao arquivo app.js e inicializamos junto com o bodyParser para processar os dados da pós-solicitação. Também configuramos uma pasta pública e um mecanismo de exibição:

Em seguida, adicionamos rotas. Nosso aplicativo incluirá uma rota get e uma rota post. Eles nos permitirão buscar os dados de entrada e passá-los para a solicitação de postagem para o ONLYOFFICE Document Server:

Do lado do cliente

Agora vamos fazer um pequeno desvio e olhar para o lado do cliente do nosso conversor. É aí que vamos inserir todos os dados necessários:

Crie um conversor online com a API de conversão do ONLYOFFICE

Crie um conversor online com a API de conversão do ONLYOFFICE

O lado do cliente inclui duas páginas EJS::

  • homepage.ejs – nos permite buscar todos os valores necessários para o post request.
  • converter.ejs – nos permite baixar o arquivo convertido.

Vamos dar uma olhada mais de perto no homepage.ejs. Aqui criamos um formulário que envia os dados para o post route. Primeiro, obtemos um URL para o arquivo original. Vamos armazená-lo na variável de link no lado do servidor:

Em seguida, escolhemos um tipo de arquivo original na caixa de combinação. Posteriormente, iremos buscar este valor e armazená-lo na variável inputType:

Em seguida, escolhemos o tipo de arquivo desejado. Este valor será armazenado na variável outputType no lado do servidor:

E usamos um botão para enviar todos os dados para a rota pós conversor:

Construindo um conversor

Os dados buscados serão analisados no lado do servidor de nosso aplicativo. Então agora, vamos ao arquivo app.js e obtemos:

Agora vamos dar uma olhada em nossa segunda caixa de combinação que envia o valor outputType para a rota post:

A variável outputType é incluída na solicitação post para o servidor. Ele especifica o formato do arquivo convertido. Vamos examinar o código JavaScript que nos permite interagir com os elementos da página e incorporar uma lista dinâmica em nossa IU.

O serviço de conversão de documentos é uma ferramenta muito poderosa, capaz de converter diversos tipos de arquivos. Portanto, nosso objetivo é utilizar uma lista dinâmica que nos permita selecionar um formato para o arquivo convertido. Esta lista exibirá todas as opções disponíveis para o tipo específico de arquivo original.

Para isso, criamos um arquivo JSON que armazena os valores de acordo com cada tipo em particular:

Crie um conversor online com a API de conversão do ONLYOFFICE

Observação! Para fins de demonstração, incluímos apenas os formatos ooXML mais comuns. Para saber todas as opções de conversão suportadas, visite nossa página de documentação.

Em seguida adicionamos uma função que vai gerar essa lista dinâmica:

Primeiramente, esta função obtém o valor da caixa de combinação inputType, onde selecionamos o formato do arquivo original. Nós o atribuímos à variável de tipo para usar esse valor na linha. Em seguida, fazemos uma solicitação AJAX para carregar os dados JSON. Depois disso, usamos o valor da variável de tipo como um índice e iteramos pelos dados carregados para inserir seus valores nas opções da lista suspensa.

Agora, toda vez que selecionamos o tipo do arquivo original, o script é executado e nos mostra as opções de conversão disponíveis de acordo com o formato do arquivo original.

E depois de termos todos os dados necessários, enviamos para a rota do conversor clicando no botão Converter.

Mas não é isso. Para tornar nosso aplicativo mais interativo, adicionaremos funções que ativarão a caixa de combinação e os elementos do botão na sequência correta:

Todo o código JavaScript é o seguinte:

Vamos dar uma olhada no que está acontecendo no lado do servidor:

Na rota do conversor, formamos nossa solicitação de postagem para o servidor de documentos do ONLYOFFICE e a armazenamos na variável Payload. Usamos variáveis fileType, outputType e link que armazenam os dados que buscamos. No entanto, também temos a variável chave que contém o identificador exclusivo do documento atual. Então adicionamos uma pequena função acima para gerá-lo:

Agora que temos todos os valores necessários para nossa solicitação, usamos jwt.sign para envolvê-los em um token:

O método jwt.sign usa três parâmetros:

  • Payload que inclui todos os parâmetros necessários para a conversão bem-sucedida.
  • Header que contém informações sobre o algoritmo de cifragem e o prazo de expiração. Envolvemos esses parâmetros na variável de opções.
  • Secret que representa uma chave secreta gerada pelo ONLYOFFICE Document Server. Este segredo pode ser encontrado no local.json file, ou executando o seguinte comando no terminal:

Depois de assinarmos o token, usamos uma solicitação post axios para enviá-lo ao servidor. Em seguida, renderizamos a página converter.ejs que recebe a resposta do ONLYOFFICE Document Server:

Aqui está uma amostra da resposta no formato JSON:

O que precisa aqui é o elemento fileUrl. É um link para o arquivo convertido. Então acessamos e enviamos para a página converter.ejs:

Nessa página, criamos dois botões. O botão Voltar nos leva de volta à página homepage.ejs e o botão Download abre o link que enviamos para a página e baixa o arquivo convertido:

Crie um conversor online com a API de conversão do ONLYOFFICE 

Observação! Para saber mais sobre o JWT, visite nossa página de documentação.

Todo o código do lado do servidor é o seguinte:

E agora, vamos rodar nosso conversor e ver como ele funciona!

As soluções do ONLYOFFICE são extremamente multifuncionais. Eles fornecem aos usuários e desenvolvedores uma experiência única e permitem que eles manipulem documentos ooXML de várias maneiras. Esperamos que você ache as informações mencionadas acima úteis e as aplique em seus projetos futuros. Não hesite em fazer perguntas ou compartilhar suas ideias conosco. Estamos abertos a sugestões e cooperação. Boa sorte em seus esforços exploratórios!