Ein kleines Elixir-Wrapper-Paket zum lokalen Zusammenfuegen von PDF-Dateien.
Der Fokus liegt auf einem klaren Dateipfad-API fuer Automatisierungen, Build-Pipelines und Backoffice-Workflows. Die Projekt-Homepage ist https://pdfzus.de/.
Summary
Types
Bekannte Fehlerformen fuer Validierung, Merge und Dateiausgabe.
Eine normalisierte Liste absoluter PDF-Dateipfade.
Functions
Formatiert einen Rueckgabefehler als lesbare deutsche Meldung.
Fuegt mehrere PDF-Dateien zusammen und schreibt das Ergebnis auf die Platte.
Fuegt mehrere PDF-Dateien zusammen und gibt das Ergebnis als Binary zurueck.
Validiert eine Liste von Eingabedateien.
Types
@type error_reason() :: {:invalid_input, String.t()} | {:missing_file, String.t()} | {:not_a_file, String.t()} | {:invalid_pdf, String.t()} | {:merge_failed, term()} | {:write_failed, String.t(), File.posix()}
Bekannte Fehlerformen fuer Validierung, Merge und Dateiausgabe.
@type validated_paths() :: [String.t()]
Eine normalisierte Liste absoluter PDF-Dateipfade.
Functions
@spec format_error(error_reason()) :: String.t()
Formatiert einen Rueckgabefehler als lesbare deutsche Meldung.
@spec merge_files([String.t()], String.t(), keyword()) :: {:ok, String.t()} | {:error, error_reason()}
Fuegt mehrere PDF-Dateien zusammen und schreibt das Ergebnis auf die Platte.
Unterstuetzte Optionen:
:mkdir_p?- legt das Ausgabeverzeichnis an, falls es noch nicht existiert. Standardwert:true
@spec merge_to_binary( [String.t()], keyword() ) :: {:ok, binary()} | {:error, error_reason()}
Fuegt mehrere PDF-Dateien zusammen und gibt das Ergebnis als Binary zurueck.
Standardmaessig wird das Ergebnis lokal und ohne Uploads verarbeitet. Fuer die Projektseite und den Browser-Workflow siehe https://pdfzus.de/.
@spec validate_inputs([String.t()]) :: {:ok, validated_paths()} | {:error, error_reason()}
Validiert eine Liste von Eingabedateien.
Jede Datei muss existieren, eine regulaere Datei sein und mit dem PDF-Header
%PDF- beginnen.