# IDMLx

IDMLx is an Elixir library for parsing IDML/IDMS files from Adobe InDesign into Elixir structs. These structs can be filled with data and exported to various formats such as KonvaJS canvas, PNG, HTML, or PDFs.
## Features
- Parse IDML/IDMS files into Elixir structs
- Manipulate and fill structs with data
- Export data to various formats including KonvaJS canvas, PNG, HTML, and PDFs
## Installation
Add `idmlx` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:idmlx, "~> 0.1.0"}
]
end
```
## Usage
### Reading IDMS files
```elixir
# Read an IDMS file
spread = Idmlx.read_idms("path/to/file.idms")
# Extract text frames
text_frames = Idmlx.text_frames(spread)
# Extract images
images = Idmlx.images(spread)
```
### Exporting to KonvaJS
```elixir
# Export to KonvaJS format
konva_json = Idmlx.export_to_konva(spread)
# Export with custom text assignments
konva_json = Idmlx.export_to_konva(spread, %{
"TextFrame1" => "Custom text content"
})
# Export in wireframe mode
konva_json = Idmlx.export_to_konva(spread, %{}, mode: :wireframes)
```
### Updating IDMS files
```elixir
# Update an IDMS file with modified spread
Idmlx.update_idms(spread, "path/to/original.idms", "path/to/updated.idms")
```
## Documentation
Full documentation can be found at [https://hexdocs.pm/idmlx](https://hexdocs.pm/idmlx).
## License
This project is licensed under the MIT License - see the LICENSE file for details.