Hi All, ich stehe hier vor einem Problem das ich offenbar unterschätzt habe. Gegeben ist ein pdf file das ab Seite X eine Anzahl A4 Seiten enthält, die neben- und übereinandergelegt einen großformatigen Ausdruck ergeben. Das Ziel ist dieses Puzzle wieder zusammenzusetzen und im Ergebnis ein pdf oder ps file zu bekommen was das Puzzle zusammengepuzzelt enthält. Da das immer mal wieder vorkommt und ich keine Lust habe jedesmal mit gimp Bildchen zusammenzusetzen suche ich eine scriptlösung. Das Zerlegen des Ausgangsfiles in einzelne Seiten ist kein Thema. für diesen Fall reicht pdftk beispiel.pdf burst output ./seiten/seite%03d.pdf aus der pdftk faq, Aber für das Zusammensetzen fehlt mir irgendwie der ultimative Ansatz. Bei pdftk habe ich nichts gefunden was das unterstützt, pdflatex würde vermutlich irgendwie gehen aber ich wollte eigentlich nicht selber rechnen - oder geht das auch ohne selber rechnen? - dann fällt mir noch pdf[to,2]ps ein aber dazu müsste man wahrscheinlich alle ghostscript Optionen wirklich im Detail kennen und mir fällt da derzeit keine passende ein. Hat irgendwer noch einen weiteren Ansatz dazu? Oder hat vielleicht sogar jemand einen script Schnipsel der sowas Ähnliches macht? Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Falk, Falk Sauer wrote:
Das Zerlegen des Ausgangsfiles in einzelne Seiten ist kein Thema. für diesen Fall reicht pdftk beispiel.pdf burst output ./seiten/seite%03d.pdf aus der pdftk faq,
Aber für das Zusammensetzen fehlt mir irgendwie der ultimative Ansatz.
Du hast also viele pdf-Seiten, die Du gerne zu einer (großen) Seite zusammensetzen möchtest. Ohne es ausprobiert zu haben: Ich würde die pdf-Dateien nach ps wandeln (pdf2ps) und dann mit psnup (im Paket psutils) zusammenfügen. Gegebenenfalls kann man das hinterher wieder nach pdf wandeln. Gruß Jan -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Jan, Am Mittwoch 09 Januar 2008 09:01:11 schrieb Jan Handwerker:
Falk Sauer wrote:
Das Zerlegen des Ausgangsfiles in einzelne Seiten ist kein Thema. für diesen Fall reicht pdftk beispiel.pdf burst output ./seiten/seite%03d.pdf aus der pdftk faq,
Aber für das Zusammensetzen fehlt mir irgendwie der ultimative Ansatz.
Du hast also viele pdf-Seiten, die Du gerne zu einer (großen) Seite zusammensetzen möchtest. Ohne es ausprobiert zu haben: Ich würde die pdf-Dateien nach ps wandeln (pdf2ps) und dann mit psnup (im Paket psutils) zusammenfügen. Gegebenenfalls kann man das hinterher wieder nach pdf wandeln.
Ein Versuch mit for i in seite*.ps ; do cat $i | psnup -Pa4 -w147cm -h118.9cm >>ausgabe.ps done führt zu folgender Ausgabe [1] Wrote 1 pages, 107024 bytes [1] Wrote 1 pages, 69673 bytes [1] Wrote 1 pages, 76307 bytes [1] Wrote 1 pages, 118896 bytes [1] Wrote 1 pages, 65423 bytes [1] Wrote 1 pages, 58276 bytes [1] Wrote 1 pages, 67119 bytes [1] Wrote 1 pages, 151168 bytes [1] Wrote 1 pages, 64280 bytes [1] Wrote 1 pages, 102555 bytes [1] Wrote 1 pages, 106786 bytes [1] Wrote 1 pages, 29955 bytes [1] Wrote 1 pages, 115093 bytes [1] Wrote 1 pages, 117149 bytes [1] Wrote 1 pages, 94606 bytes [1] Wrote 1 pages, 64489 bytes [1] Wrote 1 pages, 90482 bytes [1] Wrote 1 pages, 53876 bytes [1] Wrote 1 pages, 77826 bytes [1] Wrote 1 pages, 125987 bytes [1] Wrote 1 pages, 154643 bytes [1] Wrote 1 pages, 60476 bytes [1] Wrote 1 pages, 116210 bytes [1] Wrote 1 pages, 58628 bytes [1] Wrote 1 pages, 127445 bytes [1] Wrote 1 pages, 97353 bytes [1] Wrote 1 pages, 58528 bytes [1] Wrote 1 pages, 94039 bytes und wie nach dieser ausgabe zu erwarten sind es weiterhin 28 Einzelseiten in A4, das mit der Montage hat er mir so nicht abgenommen. ein aufruf mit zusätzlich -n 28 bringt 28 leere A4 Seiten. Wo ist hier der hund begraben? Lt. Manpage sollte psnup mein Problem eigentlich lösen. Muss das dokument erst wieder zu einem zusammen gebunden werden? Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Falk, Falk Sauer wrote:
Hi Jan,
Ein Versuch mit
for i in seite*.ps ; do cat $i | psnup -Pa4 -w147cm -h118.9cm >>ausgabe.ps done
oh, ja. Ich vergaß. (Wie gesagt, nicht vorher ausprobiert.) Du brauchst nicht die 28 Seiten in 28 Files, sondern 28 Seiten in einer ps-Datei. Also entweder direkt die pdf-Datei in eine ps-Datei wandeln, oder zuerst mit psmerge die ps-Dateien wieder zusammenfügen. Und dann kannst Du noch mit -nup (hier also -28) die Zahl der Seiten pro Seite ;-) angeben: (man psnup) The -nup option selects the number of logical pages to put on each sheet of paper. Gruß Jan -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Wednesday 09 January 2008 10:34, Falk Sauer wrote:
Ein Versuch mit
for i in seite*.ps ; do cat $i | psnup -Pa4 -w147cm -h118.9cm >>ausgabe.ps done
Geht # psmerge seite*.ps | psnup -Pa4 -w147cm -h118.9cm >ausgabe.ps besser? Gruß vom Tux -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi, Am Mittwoch 09 Januar 2008 11:14:26 schrieben Sie:
On Wednesday 09 January 2008 10:34, Falk Sauer wrote:
Ein Versuch mit
for i in seite*.ps ; do cat $i | psnup -Pa4 -w147cm -h118.9cm >>ausgabe.ps done
Geht # psmerge seite*.ps | psnup -Pa4 -w147cm -h118.9cm >ausgabe.ps
psnup -Pa4 -w147cm -h118.9cm seiten.ps ausgabe.ps
nein leider nicht: psnup: can't find acceptable layout for 1-up ich fürchte psnup kann formate > a0 nicht mehr. erschwerend kommt hinzu das offenbar Ränder hinzugefügt werden die ich erst noch irgendwie abschneiden muss. Im Acrobat sind die Ränder im seiten.pdf noch nicht dran, auch im kghostview von seiten.ps geht die Grafik bis an den Seitenrand. Die Seitenanordnung wäre aber ok, ohne Änderungen. Wenn ich nur einen Teil der Seiten zusammensetzen lasse (zb. 2 auf a3) sind auch immer diese Ränder drin, der Schalter -s hilft da auch nicht, denn wenn ich den scaling faktor auf 1.15 setze reicht die Grafik an den kurzen Seiten bis an den Papierrand aber auf den langen Seiten nicht. Ich fürchte ich muss ein anderes Werkzeug versuchen wo man mit Offsets montieren kann ... bisher sieht das script davor so aus: #!/bin/bash # zusammensetzen von pdf puzzeln # (c) Falk Sauer Jan 2008 # if (! [ -d ./seiten ]) then mkdir ./seiten fi pdftk A="$1" cat A2-28 output ./seiten/seiten.pdf cd seiten for i in *.pdf ; do pdf2ps $i `basename $i .pdf`.ps done Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 09.01.08 schrieb Falk Sauer <falk@hb-fein.de>:
pdftk habe ich nichts gefunden was das unterstützt, pdflatex würde vermutlich irgendwie gehen aber ich wollte eigentlich nicht selber rechnen - oder geht
Stichtwort für pdflatex: pdfpages. Versuchmal, wieweit Du mit n-up kommst. Gruß Martin -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi Martin, Am Mittwoch 09 Januar 2008 11:33:49 schrieb Martin Schröder:
Stichtwort für pdflatex: pdfpages. Versuchmal, wieweit Du mit n-up kommst.
du meinst sowas hier? Falls das geht ist es an Eleganz kaum noch zu toppen. \documentclass{article} \usepackage{pdfpages} \usepackage[utf8]{inputenc} \usepackage[totalheight=1189mm,totalwidth=1470mm]{geometry} \begin{document} \includepdf[pages=2-29,nup=7x4,frame=true]{testerchen.pdf} \end{document} es liefert schon fast das Gewünschte, ohne störende Ränder dazwischen aber die Anordnung der Reihen stimmt noch nicht, ich bräuchte wahrscheinlich zuerst Seite 22-29,15-21 usw. und das Ausgabeformat müsste ich noch passend machen, wie geht das? So wie in Zeile 4 jedenfalls nicht. Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mit, 09 Jan 2008, Falk Sauer schrieb:
Am Mittwoch 09 Januar 2008 11:33:49 schrieb Martin Schröder:
Stichtwort für pdflatex: pdfpages. Versuchmal, wieweit Du mit n-up kommst.
du meinst sowas hier? Falls das geht ist es an Eleganz kaum noch zu toppen.
\documentclass{article} \usepackage{pdfpages} \usepackage[utf8]{inputenc} \usepackage[totalheight=1189mm,totalwidth=1470mm]{geometry}
\begin{document} \includepdf[pages=2-29,nup=7x4,frame=true]{testerchen.pdf} \end{document}
es liefert schon fast das Gewünschte, ohne störende Ränder dazwischen aber die Anordnung der Reihen stimmt noch nicht, ich bräuchte wahrscheinlich zuerst Seite 22-29,15-21 usw. und das Ausgabeformat müsste ich noch passend machen, wie geht das? So wie in Zeile 4 jedenfalls nicht.
Guck dir mal pdfjam an, das wurde neulich erwähnt und basiert auf pdflatex. Ansonsten mußt du wohl einfach mehrere \includepdf Befehle draus machen. Geraten: \includepdf[pages=22-29,nup=7x4,frame=true]{testerchen.pdf} \includepdf[pages=15-21,nup=7x4,frame=true]{testerchen.pdf} [..] Oder vorher die Seiten im PDF umsortieren (ginge z.B. wohl mit pdftk). -dnh -- This is exactly how the World Wide Web works: the HTML files are the pithy descriptions on paper tape, and your Web browser is Ronald Reagan. -- Neal Stephenson, "In the Beginning was the Command Line" -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi David, Am Mittwoch 09 Januar 2008 17:33:18 schrieb David Haller:
Guck dir mal pdfjam an, das wurde neulich erwähnt und basiert auf pdflatex.
hm
Ansonsten mußt du wohl einfach mehrere \includepdf Befehle draus machen.
Geraten: \includepdf[pages=22-29,nup=7x4,frame=true]{testerchen.pdf} \includepdf[pages=15-21,nup=7x4,frame=true]{testerchen.pdf} [..]
hab ich als Erstes probiert, ging gar nicht, weil er dann dazwischen nen seitenumbruch macht.
Oder vorher die Seiten im PDF umsortieren (ginge z.B. wohl mit pdftk).
so hab ich das dann auch gelöst siehe auch das andere Problem mit der Seitengröße. Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi, der Vollständigkeit halber die Lösung: Am Mittwoch 09 Januar 2008 12:49:42 schrieb Falk Sauer:
es liefert schon fast das Gewünschte, ohne störende Ränder dazwischen aber die Anordnung der Reihen stimmt noch nicht, ich bräuchte wahrscheinlich zuerst Seite 22-29,15-21 usw. und das Ausgabeformat müsste ich noch passend machen, wie geht das? So wie in Zeile 4 jedenfalls nicht.
es waren doch Ränder vorhanden aber pdfpages hat im Gegensatz zu psnup die option mit Offset zu arbeiten ... außerdem habe ich es auch nicht geschafft ein größeres Blatt als A0 auszugeben. Dabei ist dann das Folgende herausgekommen: pz2.tex \documentclass{article} \usepackage{pdfpages} \usepackage[utf8]{inputenc} \begin{document} %%% Sortierung für Ausgabeseite 1 %%% das ist nötig damit die Seiten in der richtigen %%% Reihenfolge in der Datei stehen. \includepdf[pages=23-26]{pz.pdf} \includepdf[pages=16-19]{pz.pdf} \includepdf[pages=9-12]{pz.pdf} \includepdf[pages=2-5]{pz.pdf} %%% Ausgabeseite 2 \includepdf[pages=27-29]{pz.pdf} %%% diese newpage sind nötig %%% um eine 2. vollständige 4x4 Matrix %%% bereitzstellen \newpage . \includepdf[pages=20-22]{pz.pdf} \newpage . \includepdf[pages=13-15]{pz.pdf} \newpage . \includepdf[pages=6-8]{pz.pdf} \newpage . \end{document} puzzle2.tex \documentclass{article} \usepackage{pdfpages} \usepackage[utf8]{inputenc} \usepackage[a0paper]{geometry} \usepackage{hyperref} \begin{document} \includepdf[pages=1-16,nup=4x4,frame=false,deltax=-33.5mm,deltay=-1]{pz2.pdf} \includepdf[pages=17-32,nup=4x4,frame=false,deltax=-33.5mm,deltay=-1]{pz2.pdf} \end{document} und noch die 5 zeilen für das shellscript: cp "$1" pz.pdf pdflatex pz2.tex pdflatex puzzle2.tex cp puzzle2.pdf `basename "$1" .pdf`-combined.pdf pdftops puzzle2.pdf `basename "$1" .pdf`.ps Es ist sicherlich nicht besonders schön aber ich sehe mich auch nicht als TeXperte, vielleicht kann man das Ganze ja doch noch dahin bringen das es auf eine Seite mit 1189x1470mm ausgegeben werden kann, da es zwingend 1:1 gedruckt werden muß. Gruss Falk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mit, 09 Jan 2008, Falk Sauer schrieb:
es waren doch Ränder vorhanden aber pdfpages hat im Gegensatz zu psnup die option mit Offset zu arbeiten ... außerdem habe ich es auch nicht geschafft ein größeres Blatt als A0 auszugeben. Dabei ist dann das Folgende herausgekommen:
Dafür mußt du die Papiergröße selber definieren. Schau dazu z.B. in a0poster.cls... Melde dich ggfs. per PM wg. Details.
%%% Reihenfolge in der Datei stehen. \includepdf[pages=23-26]{pz.pdf} \includepdf[pages=16-19]{pz.pdf}
Hier evtl. die Zeilenenden noch mit % maskieren, das könnte ungewollten Whitespace verursachen. Hatte ich auch nicht dran gedacht. HTH, -dnh -- VBScript is designed to be a secure programming environment. It lacks various commands that can be potentially damaging if used in a malicious manner. This added security is critical in enterprise solutions. -- support.microsoft.com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (5)
-
David Haller
-
Falk Sauer
-
Jan Handwerker
-
Martin Schröder
-
Tuxfan