Δευτέρα, 27 Ιουλίου 2009

Εκτύπωση σε PDF στο Ubuntu Jaunty (9.04)

(fixing & improving pdf printing in Ubuntu 9.04)

Μετά από πολλές προσπάθειες και έρευνα που έκανα στο διαδίκτυο κατάληξα στην επόμενη μέθοδο η οποία όχι μόνο παρακάμπτει ένα bug που παρουσιάζει το cups-pdf (τουλάχιστον στο Ubuntu) αλλά δίνει την ευελιξία να δίνετε όνομα στο pdf αρχείο που δημιουργείτε. Υπενθυμίζω ότι μέχρι τώρα το cups-pdf πρόγραμμα, προβλέπει την δημιουργία φακέλλου στο home folder του χρήστη με όνομα PDF και εκεί φυλάσσει το αρχείο PDF με αυτόματο σύστημα ονοματολογίας.

Η μέθοδος είναι η ακόλουθη:

Πρώτα εκτελέστε την εντολή:
sudo apt-get install cups-pdf
Μετά με την εντολή
gedit ${HOME}/pdf_print.sh
επικολλήστε (paste) το ακόλουθο script:
#!/bin/bash
CURRENT_PDF="${1}"
CURRENT_USER="${2}"
DISPLAY=:0.0
export DISPLAY
XAUTHORITY=/home/${CURRENT_USER}/.Xauthority
export XAUTHORITY
PDFNAME=$(zenity --file-selection --save --confirm-overwrite)
mv "$CURRENT_PDF" "$PDFNAME"pdf
στην συνέχεια φυλάξτε το (save).

εκτελέστε την ακόλουθη εντολή από την κονσόλα:
chmod +x ${HOME}/pdf_print.sh
Ανοίξτε το αρχείο /etc/apparmor.d/usr.sbin.cupsd σε κειμενογράφο (π.χ. gedit) και προσθέστε την ακόλουθη εντολή στο τέλος του αρχείου ακριβώς πριν την γραμμή με το '}'
${ΗΟΜΕ}/pdf_print.sh, uxr
Σημείωση: Αντικαταστήστε το ${ΗΟΜΕ} με τον αρχικό σας φάκελο, π.χ. /home/nicos

Ανοίξτε το αρχείο /etc/cups/cups-pdf.conf με την εντολή sudo gedit /etc/cups/cups-pdf.conf και βρέστε την γραμμή με την εντολή #postprocesssing. Αφαιρέστε το '#' και αλλάξτε την εντολή σε
Postprocesssing /home/nicos/bin/pdf_print.sh
Φυσικά αντικαταστήστε το 'nicos' με τον δικό σας αρχικό φάκελο.

Βρέστε την εντολή
Out ${HOME}/PDF/
Βάλτε μπροστά το σύμβολο '#' όπως πιο κάτω:
# Out ${HOME}/PDF/
Φυλάξτε το αρχείο στη συνέχεια.

Επανεκκινήστε το service με την εντολή:
sudo /etc/init.d/apparmor restart
Για καλό και για κακό, επανεκκινήστε και το cups service:
sudo /etc/init.d/cups restart
Σημείωση: Σε ποιο παλιά versions το cups είναι το cups-sys.

Μεγάλη βοήθεια ήταν η σελίδα pdf-cups failed από την οποία έχω πάρει και το script που παράθεσα πιο πάνω.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου