dta-vision-ocr
v17.0.9
Published
```md # DTA VISION OCR
Downloads
579
Readme
# DTA VISION OCR
Biblioteca para facilitar a extração de texto de qualquer imagem, parametrizada pelo formulário para extrair um JSON.
## Como instalar
```bash
npm install dta-vision-ocr --save
ou
yarn add dta-vision-ocr --save
Como usar
É necessário possuir um código de projeto para uso. Após obtenção do código do projeto, basta seguir os passos abaixo.
Uso no HTML
<po-button p-label="Abrir DTA Vision QrCode" (p-click)="abrirDtaVision()" p-icon="ph ph-qr-code"></po-button>
@if(this.habilitarModalOcr) {
<dta-vision-ocr #webAppModal
[idDTAVision]="idTotvsVision"
[idProjeto]="idProjeto"
[user]="user"
[contingency]="contingency"
[listButtonsDocument]="buttonList"
(informacaoEnviada)="receberInformacao({ menssagem
: $event.menssagem, uniqueKey: $event.uniqueKey})">
</dta-vision-ocr>
}
Para TypeScript
idDta = "";
idProjeto = "";
habilitarModalOcr = false;
user = "";
contingency = "";
@ViewChild('webAppModal') webAppModal?: DTAVisionOCRComponent;
abrirDtaVision() {
this.habilitarModalOcr = true;
this.webAppModal?.ngOnInit();
}
// Exemplo de buttonList
buttonList : ButtonDocumentModel[] = [
{
"idButton": "01",
"nameButton": "Dados Pessoais",
"imageReturn": true,
"canUserSet": true,
"userFields": [
{
"fieldLabel": "Teste",
"fieldName": "name",
"fieldType": "string"
},
{
"fieldLabel": "CPF",
"fieldName": "cpf",
"fieldType": "string"
},
{
"fieldLabel": "validade",
"fieldName": "validade",
"fieldType": "string"
},
{
"fieldLabel": "data de nascimento",
"fieldName": "dataNascimento",
"fieldType": "string"
}
]
},
{
"idButton": "02",
"nameButton": "Historico Escolar",
"imageReturn": false,
"userFields": [
{
"fieldName": "alunoInfo",
"fieldType": "object",
userArray: [
{
"fieldName": "nomeAluno",
"fieldType": "string"
},
{
"fieldName": "matricula",
"fieldType": "string"
}
]
},
{
"fieldName": "disciplinas",
"fieldType": "array",
userArray: [
{
"fieldName": "disciplina",
"fieldType": "string"
},
{
"fieldName": "nota",
"fieldType": "string"
},
{
"fieldName": "cargaHoraria",
"fieldType": "string"
},
{
"fieldName": "credito",
"fieldType": "string"
}
]
}
]
}
]
receberInformacao(informacao: { menssagem: DocumentResponse; uniqueKey: number; }) {
let parsedResponse;
try {
parsedResponse = JSON.parse(informacao.menssagem.ocrResponse);
} catch (error) {
console.error(`Erro ao desserializar ${informacao.menssagem.idButton}:`, error);
return;
}
switch (informacao.menssagem.idButton) {
case "1":
const dadosPessoais = parsedResponse as DadosPessoais;
// Preencher os dados pessoais no formulário
break;
case "2":
const historicoEscolar = parsedResponse as HistoricoEscolar;
// Preencher o histórico escolar no formulário
break;
default:
console.warn(`Não existe o ID do botão: ${informacao.menssagem.idButton}`);
break;
}
//Limpa e fechar modal assim que recebe os dados.
this.habilitarModalOcr = false;
}
Explicação do buttonList
idButton
: Identificador único para o botão. Através dele vai ser usado para recupera o botão com switchnameButton
: Nome exibido no botão.imageReturn
: Define se a imagem deve ser retornada.userFields
: Lista de campos que serão extraídos pela OCR.fieldName
: Nome do campo.fieldType
: Tipo de dado esperado.
Dados experados no exemplo
export interface DadosPessoais {
name: string;
cpf: string;
}
export interface HistoricoEscolar {
alunoInfo: AlunoInfo;
disciplinas: Disciplina[];
}
export interface AlunoInfo {
nomeAluno: string;
curso: string;
}
export interface Disciplina {
disciplina: string;
nota: string;
cargaHoraria: string;
credito: string;
}