🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.dtp.tex
Article #17081

Re: Strona pdf na pół

#17081
From: Tomasz Sowa
Date: Sun, 23 Oct 2011 12:16
82 lines
3112 bytes
Dnia Sat, 22 Oct 2011 20:48:17 +0000 (UTC), AMX napisał(a):

> To rzeczywiście jest rozwiązanie (no pół). Nie muszę pracować w
> pdf-ie, mogę w eps-ie, to bez znaczenia. Tylko jak wyciąć pół
> strony z całej? Takiej sztuczki to nigdy nie robiłem.

Ogólnie w pdf-ie to się nie da, natomiast robi się to 'przycinając' --
poprostu nie widać tego co wystaje na zewnątrz papieru.
Naprzykład aby uzyskać prawą cześć strony to możesz ustawić hbox na długość
dwa razy szerokości strony, do niego zasiorbać pdf-a i poźniej ustawić
hoffset na wartość ujemną szerokości. To spowoduje że tylko prawa strona
oryginału będzie widoczna.

Ogólnie do pracy z pdfami polecam xetexa, wygenerujmy dla przykładu
prostego pdfa ze świnkami na każdej stronie:

\newcount\licznik
\licznik=1
\output{\ifodd\licznik\global\setbox200\box255\else{%
\hsize 42cm\shipout\hbox to 42cm{\hbox to 21cm{\box200}\hbox to
21cm{\box255}}}\fi}
\def\drukujswinke{swinka \the\licznik\par\vfill\eject}
\loop\ifnum\licznik<9\drukujswinke\advance\licznik by 1\repeat
\bye

$ xetex -papersize="420mm,297mm" swinka.tex
wygląda on tak:
http://tmp.slimaczek.pl/tmp/swinka.pdf

teraz chcemy zrobić z niego pdfa o szerokości stron 21cm, czyli to o co
pytasz:

\newdimen\szerokosc
\newdimen\wysokosc
\newcount\ilestron

% wynikowy pdf
\szerokosc=210mm
\wysokosc=297mm
\ilestron=8

% wejsciowy pdf zakladamy ze jest dwa razy szerszy
\newdimen\szerokoscdouble
\szerokoscdouble=\szerokosc
\multiply\szerokoscdouble by 2

\newcount\strona
\newcount\pdfstrona

\strona=0
\pdfstrona=1

\output{\shipout\box255}
\voffset=-1in

\loop\ifnum\strona<\ilestron
\hsize=\szerokosc
\hoffset=-1in
\vbox to \wysokosc{\hbox to \szerokosc{%
\XeTeXpdffile swinka.pdf page \pdfstrona \relax}}
\supereject
\hsize=\szerokoscdouble
\hoffset=-\szerokosc
\advance\hoffset by -1in
\vbox to \wysokosc{\hbox to \szerokoscdouble{%
\XeTeXpdffile swinka.pdf page \pdfstrona \relax}}
\supereject
\advance\strona by 2
\advance\pdfstrona by 1
\repeat

\bye

i uzywamy tego tak:
xetex -papersize "210mm,297mm" podziel.tex

i pdf gotowy:
http://tmp.slimaczek.pl/tmp/podziel.pdf

-- 
Tomek
http://www.ttmath.org
Technical Details
Message-ID: <1k1h8l10rtx3$.dlg@torpi.slimaczek.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <slrnja61th.e80.r-znk@amber.within.nat> <slrnja64sb.ih7.jaros@falcon.lasek.waw.pl> <slrnja6avn.hob.r-znk@amber.within.nat>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
From: Tomasz Sowa <ts@ttmath.NOSMAP.org>
Newsgroups: pl.comp.dtp.tex
Subject: Re: Strona pdf na pół
Date: Sun, 23 Oct 2011 14:16:24 +0200
Organization: Dialog Net
Lines: 82
Message-ID: <1k1h8l10rtx3$.dlg@torpi.slimaczek.pl>
References: <slrnja61th.e80.r-znk@amber.within.nat> <slrnja64sb.ih7.jaros@falcon.lasek.waw.pl> <slrnja6avn.hob.r-znk@amber.within.nat>
NNTP-Posting-Host: dynamic-78-8-11-59.ssp.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1319372187 5745 78.8.11.59 (23 Oct 2011 12:16:27 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Sun, 23 Oct 2011 12:16:27 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.1pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit