ÍNDICE

01. VISÃO GERAL
Disponibilizar uma ferramenta para a geração de imagens em QR Code de um modo simples e eficaz.
02. EXEMPLO DE UTILIZAÇÃO
Estão disponíveis três modos para efetuar a geração da imagem em QR Code: serviços, linha de comando ou classe utilitária.
SERVIÇOS
A execução do serviço não requer a autenticação via login no produto Datasul e também o programa ou função no qual o mesmo é invocado não precisa ter o Java instalado.
Geração do QR Code
Para a geração do QR Code com a utilização de serviços, estão disponíveis quatro endpoints, no qual retornam formas diferentes do resultado para que seja utilizado de acordo com cada necessidade.
Ação (GET) | Descrição |
---|
http://<SERVIDOR>:<PORTA>/qrcode/generate/ | Efetua a geração do QR Code e retorna a requisição no formato "image/png" para que seja renderizada a imagem em seu retorno. @QueryParam | Descrição |
---|
text (Obrigatório) | Texto a ser convertido | border (Opcional) | Tamanho da borda (em pixels), caso não seja informado, assumirá o valor padrão 2. | width (Opcional) | Largura do arquivo a ser gerado (em pixels), caso não seja informado, assumirá o valor padrão 95. | height (Opcional) | Altura do arquivo a ser gerado (em pixels), caso não seja informado, assumirá o valor padrão 95. |
| http://<SERVIDOR>:<PORTA>/qrcode/download/ | Efetua a geração do QR Code e retorna a requisição para efetuar o download da imagem (o nome do arquivo baixado será qrcode.png). @QueryParam | Descrição |
---|
text (Obrigatório) | Texto a ser convertido | fileName (Opcional) | Nome do arquivo a ser gerado com a extensão do mesmo. Caso não seja informado, será atribuído o nome qrCode.png. | border (Opcional) | Tamanho da borda (em pixels), caso não seja informado, assumirá o valor padrão 2. | width (Opcional) | Largura do arquivo a ser gerado (em pixels), caso não seja informado, assumirá o valor padrão 95. | height (Opcional) | Altura do arquivo a ser gerado (em pixels), caso não seja informado, assumirá o valor padrão 95. |
|
|
|
Decodificação do QR Code
A partir da release 12.1.31, foi implementada a funcionalidade que decodifica uma imagem em QR Code e retorna o seu valor.
Ação (GET) | Descrição |
---|
http://<SERVIDOR>:<PORTA>/qrcode/decodefile/ | Retorna o texto que representa o QR Code. O formato de retorno está em Json, com o atributo textQRCode. Form-data (Body) | Descrição |
---|
file (Obrigatório) | Arquivo de imagem QR Code a ser decodificado |

|
|
|
Devido a condições de segurança, no DTS4THF, a decodificação de QR Code utiliza uma ação POST. |
LINHA DE COMANDO
Também está disponível a geração do arquivo QR Code por execução de uma linha de comando.
Para a execução deste comando, é necessário que tenha o Java instalado (versão mínima requerida 1.7) e executar o arquivo .jar disponível nesta sessão em anexo. Os arquivos .jar (verificar anexos), devem ser incluídos na variável de ambiente CLASSPATH, para que seja possível executar o comando diretamente pelo nome da classe e setar suas respectivas dependências. |
Geração do QR Code
Para gerar o arquivo no formato de QR Code diretamente pelo arquivo .jar, basta executar o comando abaixo, indicando como parâmetros o texto a ser convertido e o diretório (juntamente com o nome do arquivo).
Comando | Descrição |
---|
java QrCodeRun <ARGUMENTOS> | Efetua a geração do arquivo QR Code de acordo com os argumentos informados <ARGUMENTOS> | Descrição |
---|
1º (Obrigatório) | Texto a ser convertido. | 2º (Obrigatório) | Diretório e nome do arquivo a ser gerado com a extensão do mesmo. | 3º (Opcional) | Tamanho da borda (em pixels), caso não seja informado, assumirá o valor padrão 2. | 4º (Opcional) | Largura do arquivo a ser gerado (em pixels). Para ser informado, é obrigatório que seja enviado o 3º argumento. Caso não seja parametrizado, assumirá o valor padrão 95. | 5º (Opcional) | Altura do arquivo a ser gerado (em pixels). Para ser informado, é obrigatório que seja enviado o 3º e 4º argumento. Caso não seja parametrizado, assumirá o valor padrão 95. |
Os argumentos 4º e 5º relacionados a largura e altura, não estão disponíveis para svg. |
|
|
|
java QrCodeRun <TEXTO_PARA_CONVERTER> <DIRETORIO_ARQUIVO> [BORDA] [LARGURA] [ALTURA]
Exemplo:
C:\>java QrCodeRun "https://dfe-portal.svrs.rs.gov.br/" "c:/qrcode/qrcode-teste.jpg" |
Decodificação do QR Code
Também disponível a partir da release 12.1.31, há a possibilidade de efetuar a decodificação de uma imagem em QR Code por linha de comando.
Comando | Descrição |
---|
java QrCodeRun <ARGUMENTOS> | Efetua a decodificação da imagem em QR Code para um arquivo de texto. <ARGUMENTOS> | Descrição |
---|
1º (Obrigatório) | Arquivo de imagem em QR Code. Deve-se inserir o endereço completo do diretório (inclusive o nome do arquivo com seu formato). Caso o arquivo e/ou diretório não esteja disponível, será executado o processo de codificação (geração do QR Code). |
| 2° (Obrigatório) | Arquivo destino onde será gravado o texto decodificado. |
|
|
|
java QrCodeRun <DIRETORIO_ARQUIVO_QRCODE> <DIRETORIO_ARQUIVO_TEXTO_DECODIFICADO>
Exemplo:
C:\>java QrCodeRun "c:/qrcode/qrcode-teste.jpg" "c:/qrcode/qrcode-teste.txt" |
CLASSE UTILITÁRIA PROGRESS
Também está disponível a geração e leitura do arquivo QR Code pela classe utilitária do PROGRESS (com.totvs.framework.utp.qrcode.cls).
Para ouso deste utilitário, é necessário a instalação mínima do Progress 11.7.5. Essa classe, internamente, utilizará o serviço REST já descrito acima. |
Propriedades | Descrição |
---|
TEXT | Texto que será convertido para QRCode | FILENAME | Diretório e nome do arquivo a ser gerado com a extensão do mesmo. | BORDER | Tamanho da borda (em pixels), caso não seja informado, assumirá o valor padrão 2. | WIDTH | Largura do arquivo a ser gerado (em pixels). Para ser informado, é obrigatório que seja enviado o 3º argumento. Caso não seja parametrizado, assumirá o valor padrão 95. | HEIGHT | Altura do arquivo a ser gerado (em pixels). Para ser informado, é obrigatório que seja enviado o 3º e 4º argumento. Caso não seja parametrizado, assumirá o valor padrão 95. | SERVERURL | Protocolo, servidor e porta utilizada para a request responsável por gerar/ler o QRCode (por exemplo: http://server:8180). Caso não seja informada, utilizará as informações padrões que foram parametrizadas no Datasul. |
Métodos | Descrição |
---|
generateFile() | Método responsável em gerar o arquivo do QRCode. Não possuí parâmetros. Retorna TRUE em caso de sucesso e FALSE em caso de erro. | decodeFile() | Método responsável em retornar o texto do arquivo do QRCode. Não possuí parâmetros. Retorna TRUE em caso de sucesso e FALSE em caso de erro. | screenDecodeQRCode() | Método responsável por abrir um aplicativo para capturar a imagem do QRCode em tela. |
|
|
EXEMPLOS
USING com.totvs.framework.utp.qrcode FROM PROPATH.
DEFINE VARIABLE oQRCode AS com.totvs.framework.utp.qrcode NO-UNDO.
oQRCode = NEW QRCode().
/* Geração do QRCode */
oQRCode:TEXT = "Teste QRCode".
oQRCode:FILENAME = "c:\temp\qrcode.jpg".
IF oQRCode:generateFile() THEN
MESSAGE "ARQUIVO GERADO: " oQRCode:FILENAME VIEW-AS ALERT-BOX.
ELSE
MESSAGE "ERRO:" oQRCode:TEXT VIEW-AS ALERT-BOX.
|
USING com.totvs.framework.utp.qrcode FROM PROPATH.
DEFINE VARIABLE oQRCode AS com.totvs.framework.utp.qrcode NO-UNDO.
oQRCode = NEW QRCode().
/* Leitura de arquivo QRCode */
ASSIGN oQRCode:TEXT = "".
oQRCode:FILENAME = "c:\temp\qrcode.jpg".
IF oQRCode:decodeFile() THEN
MESSAGE oQRCode:TEXT VIEW-AS ALERT-BOX.
ELSE
MESSAGE "ERRO:" oQRCode:TEXT VIEW-AS ALERT-BOX. |
USING com.totvs.framework.utp.qrcode FROM PROPATH.
DEFINE VARIABLE oQRCode AS com.totvs.framework.utp.qrcode NO-UNDO.
oQRCode = NEW QRCode().
/* Leitura de arquivo QRCode em tela */
IF oQRCode:screenDecodeQRCode() THEN
MESSAGE oQRCode:TEXT VIEW-AS ALERT-BOX.
ELSE
MESSAGE "ERRO:" oQRCode:TEXT VIEW-AS ALERT-BOX. |
03. ANEXOS