#!/bin/sh VERSION="v2025052200" # initial #------------------------------------------------------------------------------# ls "${1}" || exit 1 DATEI_NAME="$(echo "${1}" | grep -E '[.][Pp][Ss]$' | sed 's/[.][Pp][Ss]$//')" if [ x = "x${DATEI_NAME}" ] ; then echo "${0} [PS-Datei]" echo "${0} Test.ps" exit 1 fi #------------------------------------------------------------------------------# # A4 -> 210 x 297 mm -> 72 dpi (2,8346 mm je Pixel) -> 595,2756 x 841,8898 Pixel # A4 -> 210 x 297 mm -> 127 dpi (5,0000 mm je Pixel) -> 1050,0000 x 1485,0000 Pixel #------------------------------------------------------------------------------# seitengroesse() { SEITENGROESSE="$(echo "${AUFLOESUNG}" | awk '{printf "%.0fx%.0f\n", ($1*2100/254),($1*2970/254)}')" } ### suche nach soetwas wie: # 72 25.4 div massstab div dup scale # 127 25.4 div massstab div dup scale # 254 25.4 div massstab div dup scale # 381 25.4 div massstab div dup scale # 508 25.4 div massstab div dup scale AUFLOESUNG="$(grep -Ei '^[0-9][0-9]*[ \t]+.*[ \t]+scale' ${DATEI_NAME}.ps | grep -Fiv scalefont | head -n1 | awk '{print $1}')" if [ x = "x${AUFLOESUNG}" ] ; then ### wenn nichts gefunden wurde, dann suche nach soetwas wie: # /mm {2.834645669 mul} def # /mm {5 mul} def # /mm {10 mul} def # /mm {15 mul} def # /mm {20 mul} def AUFLOESUNG="$(grep -E '^[/]mm [{]10 mul[}] def' ${DATEI_NAME}.ps | awk -F'[{}]' '{print $2}' | awk '{print $1*254/10}')" if [ x = "x${AUFLOESUNG}" ] ; then AUFLOESUNG="72" seitengroesse else seitengroesse fi else seitengroesse fi #------------------------------------------------------------------------------# echo " # DATEI_NAME='${DATEI_NAME}.*' # AUFLOESUNG='${AUFLOESUNG} dpi' # SEITENGROESSE='${SEITENGROESSE} Pixel' " #------------------------------------------------------------------------------# # WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert" for ENDUNG in pdf png do cat ${DATEI_NAME}.ps | iconv -f UTF-8 -t WINDOWS-1252 | magick -gravity SouthWest -colorspace RGB -quality 100 -page ${SEITENGROESSE} -density ${AUFLOESUNG} - ${DATEI_NAME}.${ENDUNG} done #------------------------------------------------------------------------------#