Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Polskie forum (Polish)
  • Search

[HOWTO] drukowanie dużych dokumentów

Witajcie na polskim forum użytkowników Gentoo!
Opis instalacji i pracy z Gentoo. Pozostała dokumentacja Gentoo

Moderator: SlashBeast

Post Reply
  • Print view
Advanced search
17 posts • Page 1 of 1
Author
Message
misterLu
Guru
Guru
User avatar
Posts: 430
Joined: Sun Sep 14, 2003 4:58 pm
Location: Poland

[HOWTO] drukowanie dużych dokumentów

  • Quote

Post by misterLu » Wed Apr 07, 2004 12:15 am

Jak oszczędnie wydrukować duży plik jako książkę? Czytaj pięć postów niżej.

W Windows mamy do tego finePrint, a tu musimy go sobie złożyć sami programów wchodzących w skład pakietu psutils, czyli zaczynamy od:

Code: Select all

#emerge psutils
Jeżeli nasz plik jest formatu *.doc, lub cokolwiek, co jest w stanie otworzyć OpenOffice, to należy ten plik za pomocą OpenOffice'a otworzyć i eksportować do formatu .pdf:
W tym celu w OpenOffice wybieramy z menu File->Export as pdf. Teraz mamy już gotowy plik.pdf do wydrukowania.
Teraz już tylko trzeba podzielić plik na strony, zmniejszyć je tak, by wchodziły po dwie na strone i wydrukować, czyli wykonujemy:

Code: Select all

a2ps NaszPlik.pdf --columns=1 >a.ps
psbook a.ps | psnup -2 > ksiazka.ps
psselect -o ksiazka.ps > ksiazka-odd.ps
psselect -e ksiazka.ps > ksiazka-even.ps
lpr kisazka-odd.ps
TU PRZEKŁADAMY KARTKI SPOWROTEM DO PODAJNIKA
lpr kisazka-even.ps
I mamy pięknie wydrukowany dokument w formacie książki.
Problem w tym, że te komendy są upierdliwe, wiec zapisałem je wszystkie do
jednego skryptu, dzięki czemu nie musimy pamiętać tych wszystkich komend.

Oto źródło skryptu:

Code: Select all

#!/bin/sh
A2PS="/usr/bin/a2ps"
PSSELECT="/usr/bin/psselect"
LPR="/usr/bin/lpr"
RM="/bin/rm"
PSBOOK="/usr/bin/psbook"
PSNUP="/usr/bin/psnup"
FILE=$1
A2PS_OPTIONS="--columns=1 -q"
PSNUP_OPTIONS="-2 -q"
PSBOOK_OPTIONS="-q"
PSSELECT_OPTIONS="-q"
BASENAME="/bin/basename"
BOOK=`$BASENAME ${FILE}book.ps`

$A2PS $FILE $A2PS_OPTIONS | $PSBOOK $PSBOOK_OPTIONS | $PSNUP $PSNUP_OPTIONS > $BOOK
$PSSELECT -o $PSSELECT_OPTIONS $BOOK | $LPR
echo "Po sko?czeniu drukowania przełóż kartki spowrotem do podajnika\ni naciśnij ENTER"
read x;
$PSSELECT -e  $PSSELECT_OPTIONS $BOOK | $LPR
$RM $BOOK
Wystarczy zapisać to jako plik print.sh
Nadać mu prawa wykonywalne:

Code: Select all

#chmod a+x print.sh
i można cieszyć się drukowaniem:

Code: Select all

./print.sh MaszPlik.pdf
W odpowiednim momencie skrypt poprosi nas o przełożenie wydrukowanych kartek sporwotem do podajnika i naciśniećie klawisza ENTER
Za pomocą jednej komendy możemy mieć pięknie wydrukowany plik.
Łatywiej chyba czytać coś, co ma format książki, niż luźne kartki, gdzie strona tekstu ma format A4.
Last edited by misterLu on Sun Dec 26, 2004 1:06 am, edited 5 times in total.
Top
POLAX
n00b
n00b
User avatar
Posts: 40
Joined: Thu Dec 11, 2003 7:06 pm
Location: Edmonton, AB - Canada

Moze bicz

  • Quote

Post by POLAX » Wed Apr 07, 2004 3:40 am

Pszepraszam bo nie pise dobze po Polsku.

Jak zcompilujesz desktop manager xfce4 to on ma program "xfprint4" ktury daje takie optcie...
Top
szaman
n00b
n00b
User avatar
Posts: 71
Joined: Tue Jan 20, 2004 11:13 am
Location: Poland, Siemianowice

  • Quote

Post by szaman » Sun Apr 11, 2004 12:57 pm

Próbuję właśnie okiełznać taką metodę, ale mam problemy chyba ze swoją drukarką.

Zakładając, że masz postscripta do wydrukowania (plik.ps), spróbuj czegoś takiego:

1.

Code: Select all

psbook -q -sNN <plik.ps | psnup -n2 | psselect -o -q -p1- >plik.nieparzyste.ps
2. drukujesz plik.nieparzyste.ps, po czym odwracasz odpowiednio kartki w drukarce (wymaga poeksperymentowania)

3.

Code: Select all

psbook -q -sNN <plik.ps | psnup -n2 | psselect -e -r -q -p1- >plik.parzyste.ps
4. drukujesz plik.parzyste.ps

PS. NN to liczba stron w plik.ps zaokrąglona do o ile się nie mylę 4 w zwyż.

Daj znać, jeśli coś z tego wyciśniesz :)
Last edited by szaman on Wed Apr 29, 2009 10:12 pm, edited 1 time in total.
Top
misterLu
Guru
Guru
User avatar
Posts: 430
Joined: Sun Sep 14, 2003 4:58 pm
Location: Poland

  • Quote

Post by misterLu » Wed Apr 14, 2004 3:55 pm

Podoba mi sie! i to bardzo!!
Przeczytam to dokładnie i postaram sie z tego i z xprint zrobić jakiś sensowny skrypt (jak tylko znajde troche czasu wolnego). Szkoła goni ... :(
Top
misterLu
Guru
Guru
User avatar
Posts: 430
Joined: Sun Sep 14, 2003 4:58 pm
Location: Poland

  • Quote

Post by misterLu » Fri Apr 16, 2004 8:26 pm

No dobra! rozprawiłem się z tym ustroństwem i mamy skrypt do drukowania książek i dużych dokumentów!
Skrypt jest prosty w obsłudze: przyjmuje on od 1 od 3 parametrów:
1) ilość stron jaka ma się znajdować na 1 karce 1|2|4|8|9 parametr opcjonalny, domyślna wartość: 2
2) jednostronne drukowanie s lub dwustronne d lub książka b parametr opcjonalny, domyślna wartość: jednostronnie
3) nazwa pliku do druku parametr obowiązkowy

Przykłady użycia:
drukuj 4 d /plik/do/druku (dwustronnie , po 4 str. na kartkę)
drukuj 2 d /plik/do/druku (dwustronnie , po 2 str. na kartkę)
drukuj 2 s /plik/do/druku (jednostronnie , po 2 str. na kartkę)
drukuj /plik/do/druku (jednostronnie , po 2 str. na kartkę)
drukuj b /plik/do/druku (w formie książki , po 2 str. na kartkę)

Drukować można dowolny plik, w środku program 'a2ps' (any to PostScript) zamini go na plik.ps.
Testowałem to na duzych pdf'ach i działa prawidłowo.
Oto on:

Code: Select all

#!/bin/sh

#r="-r"
mode_ok=0;
mode="s"
pages_ok=0;
pages="2";
options="--encoding=iso-8859-2";
A2PS="/usr/bin/a2ps"
PSSELECT="/usr/bin/psselect"
LPR="/usr/bin/lpr"
BASENAME="/bin/basename"
RM="/bin/rm"
DN="/dev/null"
file_to_print="-1";
usage(){
        echo "          usage: $0 [opcje] /plik/do/druku";
        echo "          Jesli nie podasz opcji, plik zostanie wydrukowany"
        echo "          jednostronnie, po dwie strony na kartce";
        echo "          Przykłady:";
        echo "          drukowanie książki                          : $0 b /plik/do/druku";
        echo "          drukowanie dwustronne po 4 stony na kartce  : $0 4 d /plik/do/druku";
        echo "          drukowanie jednostronne po 2 stony na kartce: $0 2 s /plik/do/druku";
        echo "                                                      : $0 /plik/do/druku";
        exit;
}
print_D(){
FILEODD=`$BASENAME ${file_to_print}odd.ps`
FILEEVEN=`$BASENAME ${file_to_print}even.ps`
        while [  -e  $FILEODD ]
        do
                FILEODD="1${FILEODD}";
        done
        while [  -e  $FILEEVEN ]
        do
                FILEEVEN="1${FILEEVEN}";
        done
        $A2PS $file_to_print $options 2>$DN | $PSSELECT -o > $FILEODD
        echo "----------------------------------------------------------------"
        $LPR $FILEODD
        echo "Nieparzyste strony własnie są w druku. Kiedy to się skończy włóz";
        echo "te kartki spowrotem do podajnika i nacisnij ENTER 2 razy"
        echo "----------------------------------------------------------------"
        read x;
        echo "Nacisnij jeszcze raz, by kontynuować"
        read x;
        echo "----------------------------------------------------------------"
        $A2PS $file_to_print $options 2>$DN | $PSSELECT -e $r > $FILEEVEN
        $LPR $FILEEVEN
        echo "----------------------------------------------------------------"
        echo "Wysyłam do druku parzyste strony..."
        if [ -f $FILEEVEN ]
        then
                $RM $FILEEVEN
        fi
        if [ -f $FILEODD ]
        then
                $RM $FILEODD
        fi
        echo "Koniec :)";
}

print_S(){
        $A2PS $file_to_print $options -d 2>$DN
}
print_book(){
        PSBOOK="/usr/bin/psbook"
        PSNUP="/usr/bin/psnup"
        FILE=$file_to_print;
        echo "drukuje $FILE";
        A2PS_OPTIONS="--columns=1 -q"
        PSNUP_OPTIONS="-2 -q"
        PSBOOK_OPTIONS="-q"
        PSSELECT_OPTIONS="-q"
        BASENAME="/bin/basename"
        BOOK=`$BASENAME ${FILE}book.ps`

        $A2PS $FILE $A2PS_OPTIONS | $PSBOOK $PSBOOK_OPTIONS | $PSNUP $PSNUP_OPTIONS > $BOOK
        $PSSELECT -o $PSSELECT_OPTIONS $BOOK | $LPR
        echo "Po skończeniu drukowania przełóż kartki spowrotem do podajnika\ni naciśnij ENTER"
        read x;
        echo "Nacisnij jeszcze raz, by kontynuować"
        read x;
        $PSSELECT -e $PSSELECT_OPTIONS $BOOK | $LPR
        $RM $BOOK
}

if [ $# -gt 3 ] || [ $# -lt 1 ]
then
        usage;
fi

for i in $@
do
        case $i in
                [[:digit:]]) 
                        if [ $pages_ok -eq 1 ]
                        then
                                echo "Zla opcja \"$i\"";
                                exit
                        else
                                pages=$i;
                                case $pages in
                                        1|2|4|8|9)
                                                pages_ok=1;
                                        ;;
                                        *)
                                                echo "Przyjmuje tylko 1|2|4|8|9";
                                                exit
                                        ;;
                                esac
                        fi
                ;;
                [[:alpha:]]) 
                        if [ $mode_ok -eq 1 ]
                        then
                                echo "Zla opcja \"$mode\"";
                                exit;
                        else
                                mode=$i;
                                case $mode in
                                        s|d|b)
                                        ;;
                                        *)
                                                echo "Zla opcja \"$mode\"";
                                                exit;
                                esac
                                mode_ok=1;
                        fi
                ;;
                *)

                       if [ -e $i ] && [ -f $i ]
                        then
                                file_to_print=$i
                        else
                                echo "Zla opcja \"$i\"";
                                exit;
                        fi
                ;;
        esac
done

if [ -e $file_to_print ] && [ -f $file_to_print ]
then
        echo "----------------------------------------------------------------"
        echo "Plik do druku   : \"$file_to_print\"";
else
        echo "Brak pliku do druku";
        exit;
fi
echo "Stron na kartce : $pages";
case $pages in
        1|4|9)
        options="$options -R$pages"
        ;;
        *)
        options="$options -r$pages"
        ;;
esac
if [ "$mode" = "s" ]
then
        echo "Mode            : simplex";
        echo "----------------------------------------------------------------"
        print_S;
fi
if [ "$mode" = "d" ]
then
        echo "Mode            : duplex";
        echo "----------------------------------------------------------------"
        print_D;
fi
if [ "$mode" = "b" ]
then
        echo "Mode            : book";
        echo "----------------------------------------------------------------"
        print_book;
fi


Skrypt jest długi, bo odporny na bezsensowne dane wejsciowe (mam nadzieje) i kolejność argumentów jest dowolna.
Mogłem coś zjeść wklejając go na strone, więc źródlo udostępniam również tu:
http://dylag.pl/download/drukuj
cały czas skrypt jest uaktualniany i ulepszany, więc aktualna wesrja jest dostępna pod powyższym adresem
Mam nadzieje, ze komuś się przyda. Dzięki niemu oszczędza się papier i tusz.

Jeżeli na wydruku są krzaki, to może to byc spowodowane:
a) drukarka nie rozumie postskryptu
b) a2ps błędnie tworzy pliki postskryptowe

Jeżeli drukowanie dwustronne jest OK, ale na odwrocie pierwszej strony jest ostatnia , zamiast drugiej, wtedy należy odkomentować linijkę (na samej górze skryptu):
#r="-r";

Wszelkie komentarze, krytyka i pochwały mile widziane ;)
Last edited by misterLu on Sun Dec 26, 2004 1:13 am, edited 3 times in total.
Top
zalun
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 89
Joined: Mon Feb 02, 2004 5:56 pm

  • Quote

Post by zalun » Wed Nov 03, 2004 11:23 am

cos nie za bardzo z tym plikiem dziala

403 Forbidden error was encountered
Top
yemu
Guru
Guru
User avatar
Posts: 342
Joined: Thu Jun 05, 2003 10:57 pm
Location: /poland/warsaw

  • Quote

Post by yemu » Wed Nov 03, 2004 1:59 pm

czy moznaby jakos przerobic ten skrypt zeby dalo sie na nim drukowac rzeczy do zszycia w połowie. czyli na jednej kartce sa np 1,2,ostatnia i przedostatnia strona.? albo chociaz tak, zeby moznabylo A4 przcciac na A5 i sobie zbindowac?

pozdro
y

ps. lece sprawdzac czy mi w ogole dziala :-)
Centrum Jêzyka Francuskiego VOILA - http://www.voila.edu.pl
Top
misterLu
Guru
Guru
User avatar
Posts: 430
Joined: Sun Sep 14, 2003 4:58 pm
Location: Poland

  • Quote

Post by misterLu » Wed Nov 03, 2004 7:34 pm

Przepraszam, miałem problemy techniczne i nie wszystko przywróciłem.
Skrypt już jest tu: http://dylag.pl/download/drukuj
w pierwotnym poscie poscie tez poprawiłem adres
Top
zalun
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 89
Joined: Mon Feb 02, 2004 5:56 pm

  • Quote

Post by zalun » Wed Nov 03, 2004 11:43 pm

ale fajny skrypcik BTW. chyba w nim pogrzebie (kwestia wyboru wielkosci papieru by sie przydala)
Top
misterLu
Guru
Guru
User avatar
Posts: 430
Joined: Sun Sep 14, 2003 4:58 pm
Location: Poland

  • Quote

Post by misterLu » Fri Nov 05, 2004 9:53 pm

ciesze sie , ze komuś się przydał. powstał, bo stery od windy się waliły i przy dwustronnym drukowaniu dziwy się działy. Sam bym go chętnie wzbogacił, ale teraz nie mam czasu. Graficzna nakładka to zbytek, ale marginesami mógłbyś pomanipulować i kreską oddzielającą strony, bo z tego , co pamiętam, to nie dzieliła ona strony na połówki.
Top
liu
n00b
n00b
Posts: 1
Joined: Sat Dec 25, 2004 6:23 pm
Location: Suchedniow, Poland
Contact:
Contact liu
Website

  • Quote

Post by liu » Sat Dec 25, 2004 6:35 pm

Przepraszam, czy moze ktos juz zmajstrowal przerobke tego skrypciku tak, zeby drukowal do zszycia (pierwsza-ostatnia itp.)? :) Przymierzam sie do zrobienia, ale nie chce wywazac otwartych drzwi ;)
there is no signature.
Top
argasek
Bodhisattva
Bodhisattva
User avatar
Posts: 1121
Joined: Thu May 06, 2004 2:21 pm
Location: Sol [0,0], Poland, Kraków
Contact:
Contact argasek
Website

Re: Moze bicz

  • Quote

Post by argasek » Sat Dec 25, 2004 7:36 pm

POLAX wrote:Pszepraszam bo nie pise dobze po Polsku.

Jak zcompilujesz desktop manager xfce4 to on ma program "xfprint4" ktury daje takie optcie...
A jak jest jeśli chodzi o KDE/GNOME, bo jeszcze nie interesowałem się tematem?
RLU #137109 | http://soundcloud.com/argasek
Top
misterLu
Guru
Guru
User avatar
Posts: 430
Joined: Sun Sep 14, 2003 4:58 pm
Location: Poland

  • Quote

Post by misterLu » Sun Dec 26, 2004 12:49 am

liu wrote:Przepraszam, czy moze ktos juz zmajstrowal przerobke tego skrypciku tak, zeby drukowal do zszycia (pierwsza-ostatnia itp.)? :) Przymierzam sie do zrobienia, ale nie chce wywazac otwartych drzwi ;)
Na górze strony był oddzielny skrypt do drukowania książek, ale w sumie sensowniej będzie załącyć go jako opcję do skryptu głównego. I tak uczyniłem. Doszła nowa opcja b, która pozwala drukować dokumenty jak książki. Oczywiście werjsa aktualna jest tu:http://dylag.pl/download/drukuj
Nie ukrywam, że pare kartek zużyłem na testy, a jednego nie udało mi się znaleźć- mianowicie, jak ustawić drukowanie z nagłówkiem??!! --header= ???? Nie chce mi ta opcja działać.
Top
kuku
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 142
Joined: Thu Dec 23, 2004 11:06 am

  • Quote

Post by kuku » Thu Feb 09, 2006 2:39 pm

może by tak dodać do opisu druku ksiażek w skrypcie żeby pierwszą kartke ludzie wkładali grubszą - wtedy będzie ładna okładka ;)
Top
msch
Guru
Guru
User avatar
Posts: 385
Joined: Tue Mar 14, 2006 11:50 pm
Location: ms@wind ~ $
Contact:
Contact msch
Website

  • Quote

Post by msch » Thu Jun 08, 2006 8:55 pm

[404] File Not Found : Plik nie istnieje

co z tym linkiem? ;) chcialem przetestowac ...

=edit=
pozatym chyba czas na update:

Code: Select all

emerge a2ps
Top
tuniek
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 113
Joined: Sat Jun 11, 2005 7:38 am
Location: Poland

  • Quote

Post by tuniek » Sun Jun 11, 2006 8:30 am

Code: Select all

emerge xpp
bardzo fajny program. Obsługuje większość znanych formatów i w połączeniu z cups-ami działa wyśmienicie.
"The reasonable man adapts himself to the world. The unreasonable man persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." (George Bernard Shaw)
Top
kuku
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 142
Joined: Thu Dec 23, 2004 11:06 am

  • Quote

Post by kuku » Thu Aug 09, 2007 5:53 pm

odkurzę nieco temat ;)

wyszło Dive into python po polsku http://pl.wikibooks.org/w/index.php?tit ... ntable=yes - kiedys próbowalem to drukować po angielsku i miałem, ten sam problerm co teraz, mianowicie jeśli juz mi scali po 2 strony na 1 kartke to prawa trochę wystaje i obcina mi literki - przydałaby się możliwość ustawienia marginesu

edit: doszedłem w czym lezy problem - a2ps nie robi marginesów - jeśli skonwertuje najpierw samemu dokument do *.ps (np drukuj do pliku PS) i wywale ze skryptu $A2PS to drukuje dobrze - pewnie trzeba podać do a2ps jakieś dodatkowe opcje - jak do tego dojdę to napiszę
Top
Post Reply
  • Print view

17 posts • Page 1 of 1

Return to “Polskie forum (Polish)”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy