Forráskód Böngészése

Add first release

Jonas Nickl 6 éve
commit
9299ca38ac
1 módosított fájl, 189 hozzáadás és 0 törlés
  1. 189 0
      all2pdf

+ 189 - 0
all2pdf

@@ -0,0 +1,189 @@
+#!/usr/bin/env bash
+
+## https://de.wikipedia.org/wiki/Comic-Book-Format
+## https://www.din-formate.de/reihe-a-din-groessen-mm-pixel-dpi.html
+## https://www.ihre-ideenfabrik.de/sp_faq/din-formate/
+
+title="compress_pdf "$version""
+end="Complete :P"
+
+## do not change!
+FILE=$*
+DPI=0
+
+#===  FUNCTION  ================================================================
+#          NAME: chooseDPI
+#   DESCRIPTION: 
+#===============================================================================
+
+chooseDPI() {
+
+	while [ "$DPI" == 0 ] 
+	do	
+		#DPI=`zenity --list --title="$title" --text="Choose DPI" --width=680 --height=270 --column="Value" --column="DPI" 72 72 150 "150 (default)" 300 300`
+        	DPI=`zenity --list --title="$title" --text="Choose DPI" --width=100 --height=270 --column="DPI" 72 150 300`
+
+		[ $? -ne 0 ] && exit 2
+	done
+
+}
+
+#===  FUNCTION  ================================================================
+#          NAME: chooseDinSize
+#   DESCRIPTION: create ssh tunnel to application server
+#===============================================================================
+
+chooseDinSize() {
+
+	while [ ! "$DINNORM" ] 
+	do	
+		DIN_A3="`echo \"scale=0; \${DPI}*11.693333333/1\" | bc -l`x`echo \"scale=0; \${DPI}*16.536666667/1\" | bc -l`"
+		DIN_A4="`echo \"scale=0; \${DPI}*8.266666667/1\" | bc -l`x`echo \"scale=0; \${DPI}*11.693333333/1\" | bc -l`"
+		DIN_A5="`echo \"scale=0; \${DPI}*5.826666667/1\" | bc -l`x`echo \"scale=0; \${DPI}*8.266666667/1\" | bc -l`"
+
+		read DINNORM DINSIZE <<< $(zenity --list --print-column=ALL --separator=' ' --title="$title" --text="vdvds" --width=680 --height=270 --column="Din Norm" --column="Format" A3 $DIN_A3 A4 $DIN_A4 A5 $DIN_A5)
+
+		[ $? -ne 0 ] && exit 2
+	done
+
+}
+
+
+#===  FUNCTION  ================================================================
+#          NAME: extractFile
+#   DESCRIPTION: 
+#===============================================================================
+
+function extractFile() {
+
+    mkdir $$
+
+    case $(file --mime-type -b "${FILE}") in
+	## PDF
+        application/pdf)  
+		pdfimages -j "${FILE}" $$/bild
+		;;
+	## CBR
+	application/x-rar)
+		unrar e -y "${FILE}" $$/
+		;;
+	## CBZ
+	application/zip)
+		unzip -j "${FILE}" -d $$/
+        ;;
+	## directory
+	inode/directory)
+        	cp -R "${FILE}"/* $$/
+        	## remove trailing /
+        	FILE="${FILE%\/}"
+		;;
+        *)      
+		FILETYP="unknown"  
+		exit 1
+		;;
+    esac
+}
+
+#===  FUNCTION  ================================================================
+#          NAME: RotateAutoPage
+#   DESCRIPTION: rotate images
+
+#===============================================================================
+
+RotateAutoPage() {
+
+	while [ $# -gt 0 ]; do
+			w=`identify -format "%[fx:w]" "$1"`		
+			h=`identify -format "%[fx:h]" "$1"`		
+			if [ $w -gt $h ]
+			then 
+			convert "$1" -rotate 270 "$1"
+			fi	
+		shift
+
+	done
+}
+
+#===  FUNCTION  ================================================================
+#          NAME: renameExtFiles
+#   DESCRIPTION: rename 01.jpg 001.jpg ... 
+#===============================================================================
+
+renameExtFiles() {
+
+	for counter in {01..99}; do 
+		## PID=678 -> test -f 678/89.* && mv 678/89.* 678/089.jpg
+		test -f $$/${counter}.* \
+			&& mv $$/${counter}.* $$/0${counter}.${FILE##*.}
+#        find $$ -name "${counter}.*" | xargs
+	done
+
+}
+
+#===  FUNCTION  ================================================================
+#          NAME: checkCorruptPictures
+#   DESCRIPTION: Detect corrupt pictures
+#===============================================================================
+
+#checkCorruptPictures() {
+# 
+#    find . -iname *g" -o -iname "*f" -type f 2>/dev/null | xargs identify -verbose >/dev/null 2>&1; echo $?
+#
+#}
+
+#===  FUNCTION  ================================================================
+#          NAME: createPDF
+#   DESCRIPTION:  
+#===============================================================================
+
+createPDF() {
+
+#        convert -compress jpeg -resize !874x1240 -density 150x150 -units PixelsPerInch $$/*g $$/*G $$/*/*g $$/*/*G $$/*/*f $$/*/*F "${1%\.pdf}_${compression}.pdf"
+        convert -compress jpeg -resize !${DINSIZE} -density ${DPI}x${DPI} -units PixelsPerInch $$/*g $$/*G $$/*/*g $$/*/*G $$/*/*f $$/*/*F "${FILE%\.*}_${DPI}_${DINNORM}.pdf"
+
+}
+
+#===  FUNCTION  ================================================================
+#          NAME: cleanup
+#   DESCRIPTION: delete tmp files
+#===============================================================================
+
+cleanup() {
+	
+	rm -R $$/
+
+}
+
+
+#===  Scriptablauf  ================================================================
+#
+#
+#===================================================================================
+
+chooseDPI
+
+## chooseDinSize
+chooseDinSize
+
+
+## extract images from file
+extractFile
+
+## rotate images
+RotateAutoPage $$/*g $$/*G $$/*/*g $$/*/*G $$/*/*f $$/*/*F
+#find $$ -type f -regex '.*[gfGF]$' | while read file; 
+#do
+#    RotateAutoPage "${file}"
+#done 
+
+## rename extracted images
+renameExtFiles
+
+## create new PDF
+createPDF
+
+## delete tmp files
+cleanup
+
+
+