1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

pdf aus Terminal erzeugen

Dieses Thema im Forum "Grafikbearbeitung & Layout" wurde erstellt von commander, 30.08.07.

  1. commander

    commander Baldwins roter Pepping

    Dabei seit:
    25.02.04
    Beiträge:
    3.210
    Hi Leuts,

    ich wusste mal nen Kniff, wie man z.B. man - Pages des Terminals in pdf verwandeln kann. Das ging sehr schön und sehr einfach. Leider fällt mir absolut nicht mehr ein, wie das ging.

    Ich bräuchte nun eine Möglichkeit, übers Terminal gescriptet eine Riesenmenge ASCII Text in pdfs zu verwandeln (ein paar hunderttausend).

    Weiß jemand wie der Kniff funktioniert?

    Oder wie würdet ihr das machen:

    ein ASCII - Zeichenstream, der von der Datenbank kommt, muss nach Datensätzen getrennt in pdfs verwandelt werden... in endlicher Zeit ;)

    Gruß,

    .commander
     
    #1 commander, 30.08.07
    Zuletzt bearbeitet: 30.08.07
  2. VollPfosten

    VollPfosten Roter Delicious

    Dabei seit:
    01.11.05
    Beiträge:
    94
    Ascii -> enscript -> pstopdf :)
     
  3. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867
    Code:
    #!/bin/sh
    ##############################################################################
    # m2pp, 15.01.2004, version 0.1                                              #
    # Copyright Axel S. Gruner 2004. All Rights reserverd.                       #
    ############################################################################## 
    # BSD Lizenz - tu damit was Du willst (Vervielfaeltigung, Publizieren,       #
    #              uebersetzen, die Benutzung und auch Veraenderungen sind       #
    #              erlaubt solange dieser Copyrightvermerk vorhanden ist).       # 
    #              Haftung ist ausgeschlossen. Es gibt keine Garantie.           #
    #              Benutzung auf eigene Gefahr. Rutschig wenn feucht.            #
    #              Keine Haftung f¸r Fahrl‰ssigkeit, Unwissenheit, Benutzung,    #
    #	       weder direkt noch indirekt.                                   #
    #	       Nach Konsum von zuviel Alkohol und anderen berauschenden      # 
    #	       Drogen wird fuer Farben, M‰use, Elefanten und/oder            #
    #	       Geraeusche keine Haftung fuer deren Qualitaet (Technicolor    #
    #	       und/oder Dolby Digital) uebernommen.                          #
    #                                                                            #
    #              Wer das Programm nuetzlich findet. Schoen.                    #
    #	       Wer das Programm unnuetz findet. rm.		             #
    ##############################################################################
    clear
    echo
    echo "m2pp (man 2 ps|pdf print)"
    echo
    echo "Mit 'm2pp' koennen manpages in das PS und/oder PDF Format umgewandelt oder direkt gedruckt werden."
    echo
    echo "Um in das PS Format zu konvertieren bedarf es keiner weiteren Software."
    echo "Wollen Sie das Dokument auch ansehen, so wird das Programm 'gv' vorrausgesetzt."
    echo
    echo "Um in das PDF Format zu konvertieren muss das Programm 'ps2pdf' auf dem System"
    echo "vorhanden sein. Dieses Programm ist Teil von 'ghostscript' welches hierfuer installiert sein muss."
    echo "Zum anzeigen der PDF Dokumente wird 'acroread5' auf dem System erwartet."
    echo "Sollte 'acroread5' nicht vorhanden sein, so wird 'gv', wenn vorhanden, zur Anzeige von PDF genutzt."
    echo
    echo "Zum Fortfahren [RETURN] druecken."     
    echo
    read answer
    clear
    
    tmpdir=/tmp
    man2psdf_tmpdir="$tmpdir/man2psdf_tmpdir"
    
    rm -rf "$man2psdf_tmpdir"
    mkdir "$man2psdf_tmpdir"
    
    if [ $? -ne 0 ]; then
    	man2psdf=`mktemp -q -d "$tmpdir/man2psdf_tmpdir"` || \ 
    echo
    echo 1>&2 "Konnte temporares Verzeichnis nicht erstellen."
    fi
    
    if [ $# = 0 ]; then
    	echo "INFO:"
    	echo "Bitte manpage angeben die umgewandelt werden soll"
    	exit 1
    fi
    
    # Abfrage ob Programme vorhanden sind.
    # Hier koennen, statt der angegebenen Programme, auch andere eingesetzt werden.
    # Sollte statt 'acroread5' 'acroread4' installiert sein, kann die komplette "if" Anweisung
    # herausgenommen werden, und statt 'ACROREAD=/usr/local/bin/acrored5' ein anderen Pfad und/oder
    # andere Version von acroread angegeben werden.
    
    if [ ! -f /usr/local/bin/ps2pdf ]; then
            echo
    	echo "INFO:"
    	echo "ACHTUNG! ps2pdf ist auf Ihrem System nicht vorhanden."
    else
            echo
    	echo "INFO:"
    	echo "ps2pdf ist auf dem System vorhanden"
    	PS2PDF=/usr/local/bin/ps2pdf
    fi
    
    if [ ! -f /usr/local/bin/acroread5 ]; then
            echo
    	echo "INFO:"
    	echo "ACHTUNG! acroread5 ist auf Ihrem System nicht vorhanden."
    else
            echo
    	echo "INFO:"
    	echo "acroread5 ist auf dem System vorhanden"
    	ACROREAD5=/usr/local/bin/acroread5	
    fi
    
    if [ ! -f /usr/X11R6/bin/gv ]; then
            echo
    	echo "INFO:"
    	echo "ACHTUNG! gv ist auf Ihrem System nicht vorhanden."
    else
            echo
    	echo "INFO:"
    	echo "gv ist auf dem System vorhanden"
    	GV=/usr/X11R6/bin/gv
    fi
    
    
    # Abfrage welche Funktion der User wuenscht
    
    echo
    echo $2 "Wollen Sie die manpage '$1' mit gv oder acroread betrachten (gv|ac), sofort drucken (d|D) oder nur sichern (0)?"; 
    read answer
    echo
    case $answer 
    in
    	gv|GV)
    		if [ ! -f /usr/X11R6/bin/gv ]; then
    		echo
    		echo "'gv' ist auf dem System nicht vorhanden."
    		echo "Manpage '$1' wird nur unter $man2psdf_tmpdir gespeichert."
    		man -t $1 > $man2psdf_tmpdir/$1.ps
    	else 
    		echo   
    		echo "'gv' wurde gefunden" 
    		man -t $1 > $man2psdf_tmpdir/$1.ps 
    		gv $man2psdf_tmpdir/$1.ps
    		fi
    		;;
    	ac|AC)
    		if [ -f /usr/local/bin/acroread5 ] && [ -f /usr/local/bin/ps2pdf ]; then
    			echo
    			echo "'Acroread5' wurde gefunden."
    			echo "'ps2pdf' wurde gefunden."
    			man -t $1 > $man2psdf_tmpdir/$1.ps
    		        $PS2PDF $man2psdf_tmpdir/$1.ps $man2psdf_tmpdir/$1.pdf
    			$ACROREAD5 $man2psdf_tmpdir/$1.pdf
    			elif  [ -f /usr/X11R6/bin/gv ]; then
    				echo "Es wurde kein 'acroread' oder 'ps2pdf' gefunden."
    				echo "'gv' wurde gefunden und wird zur Darstellung der manpage '$1' genutzt."
    				man -t $1 > $man2psdf_tmpdir/$1.ps
    				$GV $man2psdf_tmpdir/$1.ps
    		else
    			echo
    			echo "Es wurde kein 'gv' und kein 'acroread' oder 'ps2pdf' gefunden."
    			echo "Anzeige der manpage '$1' als PS oder PDF nicht moeglich."
    			echo "Manpage '$1' wird im PS Format unter $man2psdf_tmpdir gespeichert."
    			man -t $1 > $man2psdf_tmpdir/$1.ps
    		fi
    		;;
    	d|D)
    		echo "Soll die manpage $1 einseitig (1) oder zweiseitig (2) (2 Seiten auf einer DIN A4 Seite) gedruckt werden?"; 
    		read druck
    			if [ "$druck" = "1" ]; then
    				man -t $1 | lpr 
    			else
    				if [ "$druck" = "2" ]; then 
    					man -t $1 | psnup -2 | lpr
    			else
    				echo "Fehler beim umwandeln zum Druck."
    				fi
    			fi
    		;;	
    	0)
    		if [ -f /usr/local/bin/ps2pdf ]; then
    			echo
    			echo "'ps2pdf' gefunden, wandle die manpage '$1' in PS und PDF um."
    			echo "Speicherung erfolgt unter $man2psdf_tmpdir."
    			man -t $1 > $man2psdf_tmpdir/$1.ps
    			ps2pdf $man2psdf_tmpdir/$1.ps $man2psdf_tmpdir/$1.pdf
    		else
    			echo
    			echo "Konnte 'ps2pdf' nicht finden"
    			echo "Manpage '$1' wird nur als PS Datei unter $man2psdf_tmpdir gespeichert."
    			man -t $1 > $man2psdf_tmpdir/$1.ps
    		fi
    		;;
    	*)
    		echo "Sie muessen eine korrekte Auswahl treffen (gv|ac|d|0)"
    		echo
    		exit 
    		;;
    esac
    clear
    exit 1
    
     
    1 Person gefällt das.
  4. commander

    commander Baldwins roter Pepping

    Dabei seit:
    25.02.04
    Beiträge:
    3.210
    Habt dank edle Ritter, ich werds morgen testen und berichten!
     
  5. Hobbes_

    Hobbes_ Gast

    Die von Dir ebenso gesuchte Kurzfunktion für die man-Pages:
    pepi hat mir mal eine enfache bash-Funktion gezeigt, die man in die ~/.bash_profile Datei einbauen kann:

    Code:
    pman() { man -t "$@" | open -f -a Preview; }
    Statt man irgendwas, ruft man dann halt pman irgendwas auf.

    Eine Kurzanleitung dazu findet sich auch im 3. Teil des Terminal-Tutorials.

    Danke an pepi!
     
  6. Bier

    Bier Pomme au Mors

    Dabei seit:
    24.08.07
    Beiträge:
    867

Diese Seite empfehlen