(16) 981791110 contato@policast.studio

1. O que é um sistema de reconhecimento de escrita?

Um sistema de reconhecimento de escrita é uma tecnologia capaz de reconhecer e interpretar a escrita à mão livre, transformando-a em texto digitado em um dispositivo eletrônico. Essa tecnologia pode ser aplicada em diversas áreas, como em dispositivos móveis, em sistemas de assinatura digital, entre outros.

No contexto dos projetos Symfony, a implementação de um sistema de reconhecimento de escrita pode ser feita por meio da integração do framework com bibliotecas de reconhecimento de escrita já existentes, como o MyScript. Esse processo envolve etapas como a instalação da biblioteca, a configuração no projeto Symfony e a criação das rotas e dos controladores para o reconhecimento de escrita.

2. Como instalar a biblioteca MyScript no projeto Symfony?

Para instalar a biblioteca MyScript no projeto Symfony, é necessário adicionar suas dependências no arquivo composer.json, que fica na raiz do projeto. O trecho de código abaixo mostra um exemplo de como adicionar a dependência da biblioteca:

"require": {
"myscript/cloud-interactive-sdk": "^1.8"
}

Em seguida, execute o comando “composer update” no terminal para que as dependências sejam baixadas e instaladas. Com isso, a biblioteca MyScript estará disponível no projeto Symfony.

3. Qual é o processo de configuração da biblioteca MyScript no projeto Symfony?

Para configurar a biblioteca MyScript no projeto Symfony, é necessário criar um arquivo de configuração que defina as credenciais de acesso à API da biblioteca. Esse arquivo deve ser criado na pasta “config” do projeto, com o nome “myscript.yml”. Abaixo está um exemplo de como esse arquivo pode ser configurado:


myscript_cloud_implementation:
appKey: 'sua-chave-de-acesso'
hmacKey: 'sua-chave-hmac'
apiUrl: 'https://cloud.myscript.com/'
basePath: '/api/v3.0/recognition/rest/text/languages'

Em seguida, é necessário registrar o serviço de configuração no arquivo “services.yml” do projeto Symfony. Essa etapa é importante para que a configuração possa ser acessada em outras partes do código. O trecho de código abaixo mostra um exemplo de como registrar o serviço de configuração:


services:
myscript_cloud_implementation.config:
class: MyScriptImplementationCloudConfig
arguments:
- '%myscript_cloud_implementation%'

4. Como criar as rotas para o reconhecimento de escrita?

Para criar as rotas para o reconhecimento de escrita, é necessário criar um arquivo de rotas dentro da pasta “config” do projeto, com o nome “routes.yml”. Nesse arquivo, é possível definir a rota para a página de reconhecimento de escrita e os métodos utilizados para a requisição HTTP. Abaixo está um exemplo de como isso pode ser feito:


reconhecimento_escrita:
path: /reconhecimento-escrita
controller: AppControllerReconhecimentoEscritaController::index
methods: [GET, POST]

Nesse exemplo, a rota “/reconhecimento-escrita” é associada ao controlador “ReconhecimentoEscritaController” e aos métodos “GET” e “POST”. Com isso, é possível acessar a página de reconhecimento de escrita por meio dessa rota.

5. Como criar os controladores para o reconhecimento de escrita?

Para criar os controladores para o reconhecimento de escrita, é necessário criar uma classe dentro da pasta “Controller” do projeto Symfony. Essa classe deve herdar da classe “AbstractController” e definir o método responsável por exibir a página de reconhecimento de escrita. Abaixo está um exemplo de como isso pode ser feito:


namespace AppController;

use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;

class ReconhecimentoEscritaController extends AbstractController
{
public function index(Request $request): Response
{
// código para exibir a página de reconhecimento de escrita
}
}

Nesse exemplo, a classe “ReconhecimentoEscritaController” herda da classe “AbstractController” e define o método “index”, que recebe como parâmetro a requisição HTTP e retorna uma resposta HTTP. Esse método deve ser responsável por exibir a página de reconhecimento de escrita.

6. Como incluir a biblioteca MyScript no template da página de reconhecimento de escrita?

Para incluir a biblioteca MyScript no template da página de reconhecimento de escrita, é necessário adicionar os arquivos JavaScript e CSS da biblioteca no cabeçalho do template. Abaixo está um exemplo de como isso pode ser feito:




Nesse exemplo, os arquivos JavaScript e CSS da biblioteca MyScript são adicionados ao cabeçalho do template por meio das tags “script” e “link”. Com isso, a biblioteca estará disponível na página de reconhecimento de escrita.

7. Como criar a área de reconhecimento de escrita na página?

Para criar a área de reconhecimento de escrita na página, é necessário definir um elemento HTML que será utilizado como a área de escrita à mão livre. Esse elemento deve ter um identificador exclusivo para que possa ser referenciado no código JavaScript da biblioteca MyScript. Abaixo está um exemplo de como isso pode ser feito:


Nesse exemplo, um elemento “textarea” é utilizado como a área de escrita à mão livre e recebe o identificador “editor”. Esse identificador será utilizado no código JavaScript da biblioteca MyScript para identificar a área de escrita.

8. Como criar o código JavaScript para o reconhecimento de escrita?

Para criar o código JavaScript para o reconhecimento de escrita, é necessário adicionar um script no template que definirá a configuração e a funcionalidade da área de escrita. Esse script deve utilizar os métodos da biblioteca MyScript para configurar a área de escrita, adicionar eventos de reconhecimento e exibir o resultado. Abaixo está um exemplo de como isso pode ser feito:



Nesse exemplo, o método “register” da biblioteca MyScript é utilizado para registrar a área de escrita identificada pelo identificador “editor”. Em seguida, é configurado o protocolo de comunicação, as credenciais de acesso e o tipo de reconhecimento. Por fim, é adicionado um evento para capturar o resultado do reconhecimento.

9. Como enviar o resultado do reconhecimento para o servidor?

Para enviar o resultado do reconhecimento para o servidor, é necessário utilizar o método da biblioteca MyScript responsável por enviar o resultado para a API. Esse método deve receber como parâmetro o resultado do reconhecimento e um objeto com as credenciais de acesso. Abaixo está um exemplo de como isso pode ser feito:


iinkEditor.addEventListener('exported', function(exported) {
let textoReconhecido = exported.exports['text/plain'];
console.log(textoReconhecido);

MyScript.sendRecognitionRequest(textoReconhecido, {
type: 'TEXT',
server: 'cloud.myscript.com',
version: 'V4',
hmacKey: 'sua-chave-hmac',
appKey: 'sua-chave-de-acesso'
});
});

Nesse exemplo, o método “sendRecognitionRequest” da biblioteca MyScript é utilizado para enviar o resultado do reconhecimento para a API. Esse método recebe como parâmetro o resultado do reconhecimento e um objeto com as credenciais de acesso.

10. Como exibir o resultado do reconhecimento na página?

Para exibir o resultado do reconhecimento na página, é necessário tratar a resposta da API e inserir o resultado no HTML da página. Essa etapa pode ser realizada por meio de um evento que aguarda a resposta da API e insere o resultado no elemento desejado. Abaixo está um exemplo de como isso pode ser feito:


iinkEditor.addEventListener('exported', function(exported) {
let textoReconhecido = exported.exports['text/plain'];
console.log(textoReconhecido);

MyScript.sendRecognitionRequest(textoReconhecido, {
type: 'TEXT',
server: 'cloud.myscript.com',
version: 'V4',
hmacKey: 'sua-chave-hmac',
appKey: 'sua-chave-de-acesso'
});

iinkEditor.addEventListener('recognizerResultChanged', function(event) {
let reconhecimento = event.detail;
let resultado = reconhecimento['commands'][0]['result']['text'];
document.getElementById('resultado-reconhecimento').innerHTML = resultado;
});
});

Nesse exemplo, é adicionado um evento que aguarda a resposta da API por meio do método “recognizerResultChanged” da biblioteca MyScript. Esse evento extrai o resultado do reconhecimento da resposta da API e insere o resultado no elemento HTML desejado, identificado pelo identificador “resultado-reconhecimento”.