README.md

# pdf_zusammenfuegen

`pdf_zusammenfuegen` ist eine kleine Elixir-Bibliothek, mit der du mehrere PDF-Dateien lokal zusammenfuegen kannst. Der Fokus liegt auf klaren Dateipfaden, einfacher CLI-Integration und einem datenschutzfreundlichen Workflow ohne Uploads.

Projektseite: <https://pdfzus.de/>

## Warum dieses Paket?

- PDF-Dateien lokal zusammenfuegen, ohne Dateien an Dritte hochzuladen
- einfache API fuer Skripte, Jobs und interne Tools
- deutsche Dokumentation fuer den schnellen Einsatz in DACH-Projekten
- passend fuer Workflows rund um `pdf zusammenfuegen`, `pdf mergen` und `pdf kombinieren`

## Installation

Fuege das Paket in `mix.exs` ein:

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

Dann:

```bash
mix deps.get
```

## API

### `PdfZusammenfuegen.merge_to_binary/2`

Fuegt mehrere PDF-Dateien zusammen und gibt das Ergebnis als Binary zurueck.

```elixir
{:ok, pdf_binary} =
  PdfZusammenfuegen.merge_to_binary([
    "priv/input/angebot.pdf",
    "priv/input/anhang.pdf"
  ])
```

### `PdfZusammenfuegen.merge_files/3`

Fuegt mehrere Dateien zusammen und schreibt direkt in eine Ausgabedatei.

```elixir
{:ok, output_path} =
  PdfZusammenfuegen.merge_files(
    ["priv/input/angebot.pdf", "priv/input/anhang.pdf"],
    "tmp/angebot-komplett.pdf"
  )
```

### `PdfZusammenfuegen.validate_inputs/1`

Prueft, ob alle Eingaben existieren und tatsaechlich PDF-Dateien sind.

```elixir
{:ok, normalized_paths} =
  PdfZusammenfuegen.validate_inputs([
    "./docs/teil-1.pdf",
    "./docs/teil-2.pdf"
  ])
```

## Mix-Task

Fuer lokale Tests und einfache Shell-Workflows ist ein Mix-Task enthalten:

```bash
mix pdf_zusammenfuegen.merge eingang-1.pdf eingang-2.pdf --output merged.pdf
```

## Datenschutz

Dieses Paket arbeitet lokal in deiner Elixir-Laufzeit. Wenn du lieber einen Browser-Workflow ohne Uploads suchst, findest du ihn auf <https://pdfzus.de/>.

## Entwicklung

```bash
mix format
mix test
mix docs
mix hex.build
```