Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Etiketten gesammelt drucken mit pdfpages (pdfjam)

24 views
Skip to first unread message

Tim Landscheidt

unread,
Sep 2, 2021, 6:24:37 AM9/2/21
to
Hi,

ich möchte Avery-3657-Etiketten (4,85 cm * 2,54 cm, 40 Stück
pro Seite, 0,8 cm Rand links und rechts, 2,15 cm Rand oben
und unten) über einen längeren Zeitraum sammeln und dann
drucken. Dazu erstelle ich PDFs in der Größe 4,85 cm *
2,54 cm mit groff und CUPS-PDF.

Diese PDFs möchte ich nun zu A4-Seiten montieren und probie-
re dazu pdfpages bzw. den Wrapper pdfjam aus. Letzterer er-
zeugt den LaTeX-Code:

| \batchmode
| \documentclass[a4paper,]{article}
| \usepackage[utf8]{inputenc}
| \usepackage{pdfpages}

| \begin{document}
| \includepdfmerge[frame=true,nup=4x10]{source-1.pdf,-,source-2.pdf,-,source-3.pdf,-,source-4.pdf,-,source-5.pdf,-,source-6.pdf,-,source-7.pdf,-,source-8.pdf,-,source-9.pdf,-,source-10.pdf,-,source-11.pdf,-,source-12.pdf,-}
| \end{document}

und sendet ihn an pdflatex.

Das erzeugt jedoch ein A4-PDF, bei dem die Etiketten etwa
die Größe 5,23 cm * 2,76 cm haben, das heißt, vier Etiketten
füllen die Seitenbreite vollständig aus und oben gibt es ei-
nen Rand von 1 cm.

Nutze ich die Option „offset“:

| \includepdfmerge[frame=true,offset=0.8cm -2.15cm,nup=4x10]{[…]

wird das gesamte Druckbild um 0,8 cm nach rechts und 2,15 cm
nach unten verschoben, das heißt, die Etiketten werden immer
noch „zu groß“ gedruckt und bei der rechten Spalte wird 2 *
0,8 cm = 1,6 cm gar nicht gedruckt.

Wie kann ich mit pdfpages ein A4-PDF erzeugen mit dem Lay-
out:

| YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
| X 0 | 1 | 2 | 3 X
| X--------+--------+--------+--------X
| X 4 | 5 | 6 | 7 X
| X--------+--------+--------+--------X
| X 8 | 9 | 10 | 11 X
| X--------+--------+--------+--------X
| X 12 | 13 | 14 | 15 X
| X--------+--------+--------+--------X
| X 16 | 17 | 18 | 19 X
| X--------+--------+--------+--------X
| X 20 | 21 | 22 | 23 X
| X--------+--------+--------+--------X
| X 24 | 25 | 26 | 27 X
| X--------+--------+--------+--------X
| X 28 | 29 | 30 | 31 X
| X--------+--------+--------+--------X
| X 32 | 33 | 34 | 35 X
| X--------+--------+--------+--------X
| X 36 | 37 | 38 | 39 X
| YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

wobei „X“ 0,8 cm breit und „Y“ 2,15 cm hoch ist? Gibt es an-
dere Werkzeuge für Linux, die diese Aufgabe eventuell intui-
tiver meistern können?

TIA,
Tim

Detlef Sax

unread,
Sep 2, 2021, 2:41:44 PM9/2/21
to
On Thu, 02 Sep 2021 10:24:03 +0000, Tim Landscheidt wrote:
[...]
> wobei „X“ 0,8 cm breit und „Y“ 2,15 cm hoch ist? Gibt es an-
> dere Werkzeuge für Linux, die diese Aufgabe eventuell intui-
> tiver meistern können?

\usepackage{labels}

http://tug.ctan.org/macros/latex/contrib/labels/labels.pdf

Damit habe ich mal Visitenkarten und Logininformationen zum aufkleben :)
hergestellt.

Detlef
--
https://www.12schrittefrei.de/
http://www.noart.de/

Tim Landscheidt

unread,
Sep 3, 2021, 6:45:18 AM9/3/21
to
Detlef Sax <s...@noart.de> wrote:

> […]

>> wobei „X“ 0,8 cm breit und „Y“ 2,15 cm hoch ist? Gibt es an-
>> dere Werkzeuge für Linux, die diese Aufgabe eventuell intui-
>> tiver meistern können?

> \usepackage{labels}

> http://tug.ctan.org/macros/latex/contrib/labels/labels.pdf

> Damit habe ich mal Visitenkarten und Logininformationen zum aufkleben :)
> hergestellt.

Das hilft mir leider nicht, da ich Etiketten aus verschie-
densten Quellen und mit unterschiedlichen „Themen“ sammeln
und dann ausdrucken will. Das heißt, meine Eingaben werden
immer PDFs sein.

Tim

Ulrike Fischer

unread,
Sep 3, 2021, 12:49:14 PM9/3/21
to
Am Thu, 02 Sep 2021 10:24:03 +0000 schrieb Tim Landscheidt:

> Hi,
>

> Wie kann ich mit pdfpages ein A4-PDF erzeugen mit dem Lay-
> out:

Ich würde ja nicht pdfpages nehmen, sondern einfach
\includegraphics.

\documentclass{article}
\usepackage[a4paper, hmargin = 0.8cm, vmargin=2.15cm]{geometry}
\pagestyle{empty}
\begin{document}\raggedright
\includegraphics{bild1}\hspace{0pt}%
\includegraphics{bild2}\hspace{0pt}%
.
.
.
\end{document

ggfs. noch mit \lineskip=0pt oder \nointerlineskip (das hängt von
den Etiketten ab.

--
Ulrike Fischer
http://www.troubleshooting-tex.de/

Ulrich Diez

unread,
Sep 3, 2021, 5:33:08 PM9/3/21
to
Tim Landscheidt schrieb:

> ich möchte Avery-3657-Etiketten (4,85 cm * 2,54 cm, 40 Stück
> pro Seite, 0,8 cm Rand links und rechts, 2,15 cm Rand oben
> und unten) über einen längeren Zeitraum sammeln und dann
> drucken. Dazu erstelle ich PDFs in der Größe 4,85 cm *
> 2,54 cm mit groff und CUPS-PDF.
>
> Diese PDFs möchte ich nun zu A4-Seiten montieren und probie-
> re dazu pdfpages bzw. den Wrapper pdfjam aus. Letzterer er-
> zeugt den LaTeX-Code:
>
> | \batchmode
> | \documentclass[a4paper,]{article}
> | \usepackage[utf8]{inputenc}
> | \usepackage{pdfpages}
>
> | \begin{document}
> | \includepdfmerge[frame=true,nup=4x10]{source-1.pdf,-,source-2.pdf,-,source-3.pdf,-,source-4.pdf,-,source-5.pdf,-,source-6.pdf,-,source-7.pdf,-,source-8.pdf,-,source-9.pdf,-,source-10.pdf,-,source-11.pdf,-,source-12.pdf,-}
> | \end{document}
>
> und sendet ihn an pdflatex.
>
> Das erzeugt jedoch ein A4-PDF, bei dem die Etiketten etwa
> die Größe 5,23 cm * 2,76 cm haben, das heißt, vier Etiketten
> füllen die Seitenbreite vollständig aus und oben gibt es ei-
> nen Rand von 1 cm.
[...]
> Wie kann ich mit pdfpages ein A4-PDF erzeugen mit dem Lay-
> out:

Ich weiss zwar nicht, was pdfjam ist, aber im
LaTeX-Code brauchst Du vom pdfpages-Paket die Option
"noautoscale=true":


\batchmode
\documentclass[a4paper,]{article}
\usepackage[utf8]{inputenc}
\usepackage{pdfpages}
\begin{document}
\includepdfmerge[frame=true,nup=4x10,noautoscale=true]{source-1.pdf,-,source-2.pdf,-,source-3.pdf,-,source-4.pdf,-,source-5.pdf,-,source-6.pdf,-,source-7.pdf,-,source-8.pdf,-,source-9.pdf,-,source-10.pdf,-,source-11.pdf,-,source-12.pdf,-}
\end{document}



-----------------------------------------------------------------

Du kannst übrigens Etiketten auch in .tex-Dateien sammeln.

Ich mache das hin und wieder mit einem Loop-Makro
\Etikettenloop
, welches eine Reihe von unbegrenzten Argumenten verarbeitet,
von denen ein jedes den Text für ein Etikett enthält.

\Etikettenloop setzt jedes diesr Argumente in eine Box,
die die Maße eines Etiketts hat, und gibt diese Box dann per
\shipout als einzelne kleine Seite der .pdf-Datei aus.

So entsteht dann eine .pdf-Datei, bei der jede Seite
ein Etikett enthält und die Maße eines Etiketts hat.

Das kann dann zB mittels pdf-pages zu einem ausdruckbaren
Bogen mit vielen neben- und untereinander stehenden
Etiketten weiterverarbeitet werden.

Ich habe da auch noch Hilfsmakros, um den Text auf einem
Etikett auszurichten.



\documentclass{article}
\usepackage{varwidth}

\newbox\Etikettenbox
\newcommand\KeineEtikettenMehr{\KeineEtikettenMehr}
\newcommand\Etikettenhoehe{2.54cm}
\newcommand\Etikettenbreite{4.85cm}

\newcommand\Etikettloop[1]{%
% Bitte keine Fiesheiten!
% ZB in #1 keine unbalancierten \else..\fi verwenden.
\ifx\KeineEtikettenMehr#1\else
\setbox\Etikettenbox\vbox to \Etikettenhoehe{%
\hsize=\Etikettenbreite\relax
\sloppy\vskip-\parskip\leavevmode#1%
\par
\hrule height 0pt
% Das \hrule stellt sicher, dass die Box keine Tiefe bekommt.
% Denn die Tiefe könnte sonst über den unteren Rand des
% Etiketts hinausragen.
}%
\csname @ifundefined\endcsname{pdfpagewidth}{%
\csname @ifundefined\endcsname{pagewidth}{%
% Jössas! Ein altes dvi-Zeug, wo das "Papier"
% vom weiterverarbeitenden Programm,zB dem dvi-viewer,
% festgelegt wird.
}{%
\pagewidth=\wd\Etikettenbox
\pageheight=\ht\Etikettenbox
\advance\pageheight\dp\Etikettenbox
}%
}{%
\pdfpagewidth=\wd\Etikettenbox
\pdfpageheight=\ht\Etikettenbox
\advance\pdfpageheight\dp\Etikettenbox
}%
\shipout\vbox{\kern-1truein\hbox{\kern-1truein\box\Etikettenbox}}%
\expandafter\Etikettloop
\fi
}%

% Ein Makro, das ausgehend vom horizontalen Modus eine Box auf dem
% Etikett so platziert, dass das Etikett oben einen Rand von #1,
% unten mindestens einen Rand von #2, links einen Rand von #3, rechts einen
% Rand von mindestens #4 bekommt:
\newcommand\EtikettRandOULR[5]{%
\par\kern#1\relax
\vskip-\parskip\noindent\kern#3\relax
\vbox to \dimexpr\Etikettenhoehe-#1-#2\relax{\hsize=\dimexpr\Etikettenbreite-#3-#4\relax
\vskip-\parskip\leavevmode#5\par\hrule height 0pt
}%
\hfill\null\vfill
}%
% Ein Makro, das ausgehend vom horizontalen Modus eine Box auf dem
% Etikett zentriert platziert, die um #1 weniger hoch und um #2 weniger
% breit ist als das Etikett. Die minimalen Ränder sind dann #1/2 bzw #2/2.
\newcommand\EtikettKleinerVH[3]{%
\par\vfill
\vskip-\parskip\noindent\hfill
\vbox to \dimexpr\Etikettenhoehe-#1\relax{\hsize=\dimexpr\Etikettenbreite-#2\relax
\vskip-\parskip\leavevmode#3\par\hrule height 0pt
}%
\hfill\null\vfill
}%
% Ein Makro, das eine Box so schmal wie möglich setzt und im Etikett
% zentriert
\newcommand\EtikettBoxZentriert[1]{%
\par\vfill
\vskip-\parskip\noindent\hfill
\begin{varwidth}{\Etikettenbreite}\vskip-\parskip\leavevmode#1\end{varwidth}%
\hfill\null
\par\hrule height 0pt
\vfill
}%

\begin{document}

\parindent=0ex

\Etikettloop{%
\raggedright
Das Argument von Etiketttenloop kommt im horizontalen Modus
in eine Box der Breite \Etikettenbreite\space und der Hoehe \Etikettenhoehe.
Hier hat das Etikett keine Ränder. \vfill
}%
{%
\EtikettRandOULR{4mm}{2mm}{5mm}{5mm}{%
Frau\\
Maxime Mustermaennin\\
Musterstrasse 7\\\null\\
ABCD Musterstadt\vfill
}%
}%
{%
\EtikettKleinerVH{10mm}{6mm}{%
links oben \hfill rechts oben
\vfill
\hfill 5mm bzw 3mm Raender\hfill\null
\vfill
links unten \hfill gp \hfill rechts unten
}%
}%
{%
\EtikettBoxZentriert{%
\fbox{\vbox{\hbox{Text Bla}\hbox{Text}}}
}%
}%
{%
\EtikettBoxZentriert{%
Text Bla\\Text\hfill
}%
}%
{%
\EtikettBoxZentriert{%
Frau\\
Maxime Mustermaennin\\
Musterstrasse 7\\\null\\
ABCD Musterstadt\hfill
}%
}%
{\KeineEtikettenMehr}%

\end{document}



Mit freundlichem Gruß

Ulrich

Ulrich Diez

unread,
Sep 3, 2021, 5:39:18 PM9/3/21
to
Weiss jemand, wie man google-groups davon abhalten kann,
Quelltext durch Entfernen von Leerzeichen an Zeilenanfängen
zu verstümmeln/unleserlich/unbrauchbar zu machen?

(Den Ratschlag, mir einen nntp-Provider zu suchen und einen
Newsreader zu benutzen, kenne ich seit Jahren.
Aber es gibt manchmal zeitweilig Lebensumstände, in
denen man beides nicht zur Verfügung hat.)

Ulrich

Tim Landscheidt

unread,
Sep 3, 2021, 5:40:38 PM9/3/21
to
Ulrike Fischer <ne...@nililand.de> wrote:

>> Wie kann ich mit pdfpages ein A4-PDF erzeugen mit dem Lay-
>> out:

> Ich würde ja nicht pdfpages nehmen, sondern einfach
> \includegraphics.

> \documentclass{article}
> \usepackage[a4paper, hmargin = 0.8cm, vmargin=2.15cm]{geometry}
> \pagestyle{empty}
> \begin{document}\raggedright
> \includegraphics{bild1}\hspace{0pt}%
> \includegraphics{bild2}\hspace{0pt}%
> .
> .
> .
> \end{document

> ggfs. noch mit \lineskip=0pt oder \nointerlineskip (das hängt von
> den Etiketten ab.

Das ist mir leider zu viel LaTeX für den Anwendungsfall.

Aber ich habe jetzt eine Lösung gefunden, die einfacher war,
als ich das Problem halbiert habe: Erst mit:

| pdfjam -o /tmp/intermediate.pdf --papersize '{19.4cm,25.4cm}' --no-landscape --nup 4x10 […]

ein Zwischen-PDF erzeugen, das nur die eigentlichen Etiket-
tenbögen ohne Rand umfasst, dann dieses mit:

| pdfjam --paper a4paper --trim '-0.8cm -2.15cm -0.8cm -2.15cm' /tmp/intermediate.pdf -o /tmp/final.pdf

in das ausdruckbare A4-Blatt (mit Rand) umwandeln.

Danke,
Tim

Tim Landscheidt

unread,
Sep 3, 2021, 5:49:53 PM9/3/21
to
> […]

Sorry, hatte Deine Antwort erst jetzt gesehen. „noautoscale“
ist genau die Option, die ich gesucht habe. Herzlichen Dank!

(pdfjam ist nur ein simpler Wrapper; um beispielsweise
„noautoscale=true“ als Option zu setzen, muss man lediglich
„--noautoscale true“ angeben.)

Tim

Dr Eberhard W Lisse

unread,
Sep 4, 2021, 12:24:08 PM9/4/21
to

In einer TeX Gruppe ist das auch schon mal eine Ansage :-)-O

el

On 2021-09-03 23:40 , Tim Landscheidt wrote:
[...]
> Das ist mir leider zu viel LaTeX für den Anwendungsfall.
[...]

Tim Landscheidt

unread,
Sep 4, 2021, 12:57:50 PM9/4/21
to
Dr Eberhard W Lisse <nos...@lisse.NA> wrote:

> In einer TeX Gruppe ist das auch schon mal eine Ansage :-)-O

> […]

Ausführlicher formuliert: Wenn ich Ulrikes Vorschlag folgen
würde, wäre ich die nächsten Monate damit beschäftigt, in
jede der möglichen Stolperfallen einmal hineinzutreten und
dann hier um Hilfe zu bitten, um dann in ein paar Jahren,
wenn das Script aus welchen Gründen auch immer nicht mehr
funktioniert, den Prozess zu wiederholen :-). Da ist es für
alle Beteiligten IMHO nervenschonender, wenn man die Parame-
ter verdeutlicht, die eine Lösung haben muss.

(Ich verstehe auch nicht, warum ein AFAICT sehr beliebtes
Werkzeug wie pdfjam/pdfpages auf einer kompletten TeX-In-
stallation aufsetzen muss, aber auf Wissen bezüglich
pdfpages hoffe ich natürlich zunächst in einer TeX-Gruppe.)

Tim

Christian Gollwitzer

unread,
Sep 4, 2021, 2:05:04 PM9/4/21
to
Am 04.09.21 um 18:57 schrieb Tim Landscheidt:
> Dr Eberhard W Lisse <nos...@lisse.NA> wrote:
>
>> In einer TeX Gruppe ist das auch schon mal eine Ansage :-)-O
>
>> […]
>
> Ausführlicher formuliert: Wenn ich Ulrikes Vorschlag folgen
> würde, wäre ich die nächsten Monate damit beschäftigt, in
> jede der möglichen Stolperfallen einmal hineinzutreten und
> dann hier um Hilfe zu bitten, [...]

Verständlich. Ich benutze auch gerne pdfjam, bin aber beim Verbinden von
unterschiedlich großen PDFs auch mal daran gescheitert, dass es "zu
intelligent" war.

Eine gute ALternative ist "pdftk", da steckt kein LaTeX dahinter,
sondern es ist ein eigenständiges Java-Programm, das PDF lesen und
schreiben kann. Evtl, kannst Du ja auch damit Dein Ziel erreichen?

Christian

Tim Landscheidt

unread,
Sep 6, 2021, 7:36:53 AM9/6/21
to
Christian Gollwitzer <auri...@gmx.de> wrote:

>>> In einer TeX Gruppe ist das auch schon mal eine Ansage :-)-O

>>> […]
>> Ausführlicher formuliert: Wenn ich Ulrikes Vorschlag
>> folgen
>> würde, wäre ich die nächsten Monate damit beschäftigt, in
>> jede der möglichen Stolperfallen einmal hineinzutreten und
>> dann hier um Hilfe zu bitten, [...]

> Verständlich. Ich benutze auch gerne pdfjam, bin aber beim
> Verbinden von unterschiedlich großen PDFs auch mal daran
> gescheitert, dass es "zu intelligent" war.

> Eine gute ALternative ist "pdftk", da steckt kein LaTeX
> dahinter, sondern es ist ein eigenständiges Java-Programm,
> das PDF lesen und schreiben kann. Evtl, kannst Du ja auch
> damit Dein Ziel erreichen?

pdftk taucht häufig bei den Suchanfragen mit viel Lob auf,
aber ist unter Fedora leider seit einigen Jahren nicht mehr
gepackt (und Software neben der Distribution zu installieren
versuche ich gerade bei selten benutzten Werkzeugen zu ver-
meiden).

Aber das „zu intelligent“ hat man in dem Druckbereich leider
häufiger. Da muss man dann gelegentlich damit kämpfen, dass
das PDF-Anzeigeprogramm vor dem Drucken etwas tut, und CUPS
auch noch, und vielleicht möchte der Drucker selbst auch
noch mitreden.

Tim
0 new messages