Kirjoittaja Aihe: Vihkotulostus scripti.  (Luettu 2924 kertaa)

peran

  • Vieras
Vihkotulostus scripti.
« : 09.03.07 - klo:03.10 »
Joku tietenkin kertoo, että olisihan sen nyt jollain ohjelmalla ja vivullakin toteuttanut.

No en ole löytänyt sellaista, joten tein siihen scriptin.

Tässä tarvitaan impose-pakettia, jolla varsinainen sivut vierekkäin liimaaminen on tehty.

Lisäksi tässä tarvitaan kaksipuoleista tulostinta, ja tulostin kannattaa laittaa tulostamaan kaksipuoleisia lyhyen sivun mukaan, jotta tulee järkevä vihko.

Tulostaa siis A4 portrate postscript-tulosteesta vihon, kun tulostetaan kaksipuoleisia tulostavalla kirjoittimella.

Yksipuoleisia tulostavalle tulostimelle voi kokin tehdä oman version. Jos kysyntää on, jota ei todennäköisesti ole, voin tehdä yksipuoleisia tulostavalle tulostimelle version. Siinä tulisi tulosteena 2 kpl ps-tiedostoja, kun tässä versiossa tulee vain yksi tiedosto aputiedostojen lisäksi.

Koodia: [Valitse]
#!/bin/bash
declare -i max
declare -i lkm
declare -i alku
declare -i loppu
declare -i nalku
declare -i nloppu
gs -dNOPAUSE -dBATCH -q -sOutputFile=_bkexp%d.ps -r300 -sPAPERSIZE=a4 -sDEVICE=pswrite ${1}

lkm="1";
while [ -e _bkexp${lkm}.ps ]
do
lkm="$lkm+1"
done

max="$lkm + 2"
max="$max / 4"
max="$max * 4"
echo "lkm=$lkm"
echo "max=$max"
if [ "$lkm" -lt "$max" ]
then
alku="0";
else
alku="1";
fi

loppu="$alku + $max-1"

echo "alku=$alku"
echo "loppu=$loppu"
ss="";
while [ "$alku" -lt "$loppu" ]
do
nalku="$alku + 1";
nloppu="$loppu - 1";
eka="empty.ps"
toka="empty.ps"
kolmas="empty.ps"
neljas="empty.ps"
s="_bkexp${loppu}.ps"
if [ -e "$s" ]
then
eka="$s"
fi
s="_bkexp${alku}.ps"
if [ -e "$s" ]
then
toka="$s"
fi
s="_bkexp${nalku}.ps"
if [ -e "$s" ]
then
kolmas="$s"
fi
s="_bkexp${nloppu}.ps"
if [ -e "$s" ]
then
neljas="$s"
fi
ss="$ss $eka $toka $kolmas $neljas"
alku="$nalku + 1";
loppu="$nloppu - 1";
done

psmerge $ss >output.ps
reppa=`grep "%%BoundingBox:" "${1}" | head -n 1`
fromr=`grep "%%BoundingBox:" "output.ps" | head -n 1`
sed -e "s/$fromr/$reppa/" output.ps >koutput.ps

rm _bkexp*
impose koutput.ps

Lisäksi tarvitaan tyhjän sivun tuloste postcriptinä.

Tämä scripti kannattaa laittaa omalle hakemistolleen, johon myös empty.ps (tyhjän sivun postScript tiedosto) tulee laittaa.

http://peran.kapsi.fi/empty.ps

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Vihkotulostus scripti.
« Vastaus #1 : 09.03.07 - klo:11.05 »
Joku tietenkin kertoo, että olisihan sen nyt jollain ohjelmalla ja vivullakin toteuttanut.

Kun kerran pyysit...;)

En nyt katsonut hirveän tarkkaan mitä skriptisi tekee enkä ehdit sitä testaamaankaan, mutta jos arvaan oikein niin saman pystyisi tekemään psbook:n tai pstops:n avulla. Molemmat kuuluvat psutils-pakettiin.

peran

  • Vieras
Vs: Vihkotulostus scripti.
« Vastaus #2 : 09.03.07 - klo:17.38 »
Kun kerran pyysit...;)

En nyt katsonut hirveän tarkkaan mitä skriptisi tekee enkä ehdit sitä testaamaankaan, mutta jos arvaan oikein niin saman pystyisi tekemään psbook:n tai pstops:n avulla. Molemmat kuuluvat psutils-pakettiin.

Nop, en saanut selvää man sivuista, että pystyisikö siihen. pstops taisi pystyä 2-up-sivuihin tai 4-up-sivuihin, mutta sitä en ihan halunnut, vaan halusin sivuista, että tulostaisi järjestyksessä:
Esim. 8-sivuinen
1. sivu: 2 Up:na 8 -sivu ja 1 - sivu  (Siis 8 sivu vasemmalla puolella ja 1 sivu oikealla puolella (1. sivun 1. puoli))
2. sivu: 2 Up:na 2 -sivu ja 7 -sivu  (Siis 2 sivu vasemmalla puolella ja 7 sivu oikealla puolella (1. sivun 2.puoli))
3. sivu: 2 Up:na 6 -sivu ja 3 - sivu  (Siis 6 sivu vasemmalla puolella ja 3 sivu oikealla puolella (2. sivun 1.puoli))
4. sivu: 2 Up:na 4 -sivu ja 5 -sivu  (Siis 4 sivu vasemmalla puolella ja 5 sivu oikealla puolella  (2.sivun 2. puoli))

Tästä siis saa taitettuna vihon, kun tulostukset tulevat kaksipuoleisina, mutta oikein käännettynä toinen sivu.

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Vihkotulostus scripti.
« Vastaus #3 : 09.03.07 - klo:22.21 »
Koodia: [Valitse]
$ psbook <suora.ps | psnup -2 >kirja.ps

Esimerkin tiedostot: suora.ps ja kirja.ps (saatavilla myös pdf-versiot suora.pdf ja kirja.pdf).

Ps2ps mahdollistaa sivujen asettelun huomattavasti monipuolisemmin mutta sen käyttö vaatii hieman perehtymistä.

peran

  • Vieras
Vs: Vihkotulostus scripti.
« Vastaus #4 : 10.03.07 - klo:00.05 »
Koodia: [Valitse]
$ psbook <suora.ps | psnup -2 >kirja.ps

Heh, näyttää tekevän juuri sen, mitä halusinkin.  :)

No, pikku hiljaa opin uusia käskyjä joten kuten käyttelemään.

Mutta alussa sanoinkin, että varmaan löytyy kätevämpikin tapa tehdä sama asia, ja löytyihän se.  :D

Näyttää siltä, kun windows-puolella tuli tehtyä aina kaikkia pieniä apuohjelmia, niin Linux-puolella ne onkin jo tehty jonkun toisen toimesta. No scripti oli kuitenkin hyvää harjoitusta.

[offtopic]
  Tulee näköjään aina guruilta (mgronber, janne jne.) vastaus mun kysymyksiini. Kiitokset teidän vaivannäöstänne.  :D
[/offtopic]