README.md

# TesseraxLive

This package provides a `LiveComponent` to be used with `LiveView` that creates a canvas HTML component. 
Furthermore, this package utilizes `Tesserax`, which uses Tesseract OCR, to recognize the drawn text inside the canvas HTML component. 

## Usage
In `./assets/js/app.js` add
```
...
import { TesseraxCanvas } from "tesserax_live"

let Hooks = {};

Hooks.TesseraxCanvas = TesseraxCanvas;

...
let liveSocket = new LiveSocket("/live", Socket, {
    ...
    hooks: Hooks
})
...
```

In your LiveView HEEx, add the following
```
~H"""
...
<.live_component module={TesseraxLive} id="canvas-ID" />
...
"""
```

Use the interface functions to interact with the canvas component:
- `read/1`: reads the image in the canvas and sends it for recognition with [Tesserax](https://github.com/zteln/tesserax).
- `read/2`: takes a path to an image (e.g. file upload) and uses Tesserax to read the image.
- `set_opts/2`: sets opts in the `%Tesserax.Command{}` struct.
- `reset/1`: resets the canvas component.

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `tesserax_live` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:tesserax_live, "~> 0.1.0"}
  ]
end
```

Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at <https://hexdocs.pm/tesserax_live>.