Skip to content

Instantly share code, notes, and snippets.

@tomaskavalek
Created September 17, 2025 07:49
Show Gist options
  • Save tomaskavalek/016e52f6d27b65c0654df9998d401a1e to your computer and use it in GitHub Desktop.
Save tomaskavalek/016e52f6d27b65c0654df9998d401a1e to your computer and use it in GitHub Desktop.
PDF to PNG
#!/usr/bin/env bash
set -euo pipefail
usage() {
echo "Použití: $(basename "$0") input.pdf [výstupní_složka] [dpi]"
echo "Př.: $(basename "$0") dokument.pdf ./export 300"
exit 1
}
[[ $# -lt 1 ]] && usage
INPDF="$1"
OUTDIR="${2:-./png}"
DPI="${3:-300}"
if [[ ! -f "$INPDF" ]]; then
echo "Soubor nenalezen: $INPDF" >&2
exit 2
fi
mkdir -p "$OUTDIR"
# Báze názvu bez přípony
BASENAME="$(basename "$INPDF")"
BASE="${BASENAME%.*}"
# Preferuj ImageMagick (magick), fallback na pdftoppm (Poppler)
if command -v magick >/dev/null 2>&1; then
echo "Používám ImageMagick (magick)…"
# -density ovlivňuje rozlišení rasterizace (DPI)
# -background white -alpha remove: bílé pozadí (PDF může mít průhlednost)
# -quality 92: rozumná kvalita PNG (bezztrátový, ale zachová kompresi)
magick -density "$DPI" "$INPDF" \
-background white -alpha remove -alpha off \
-define png:compression-level=9 \
"$OUTDIR/${BASE}-%03d.png"
elif command -v pdftoppm >/dev/null 2>&1; then
echo "Používám Poppler (pdftoppm)…"
# Vytvoří soubory ${BASE}-1.png, ${BASE}-2.png, …
pdftoppm -png -r "$DPI" "$INPDF" "$OUTDIR/${BASE}"
else
echo "Nenalezl jsem 'magick' ani 'pdftoppm'. Nainstaluj prosím jednu z voleb:" >&2
echo " brew install imagemagick # ImageMagick (doporučeno)" >&2
echo " brew install poppler # pdftoppm" >&2
exit 3
fi
echo "Hotovo → $(realpath "$OUTDIR")"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment