Anspruchsschecksatz aus einer Liste von Kunden

Anspruchsschecksatz aus einer Liste von Kunden

Ich weiß nicht, ob das hierher passt, aber hier ist meine Frage:

Ich möchte aus einer Kundenliste einen Satz Anspruchsschecks erstellen, sodass sie alle zusammen im selben PDF ausgedruckt werden können.

Ich suche nach einem Wiederholungsalgorithmus, der Namen und Adressen usw. einspeist und in eine Scheckvorlage einträgt, dies beispielsweise drei- oder viermal pro Seite wiederholt und dann mit den verbleibenden Kunden auf der nächsten Seite fortfährt. Am Ende möchte ich eine einzelne PDF-Datei haben, um den gesamten Schecksatz mit perforierten Schnittlinien zwischen den einzelnen Schecks auszudrucken.


Nebensächlich: Dies hat nichts mit der vorliegenden Frage zu tun, aber bietet LaTeX Maßnahmen gegen Fälschungen, die ich in meine Vorlage zur Anspruchsprüfung aufnehmen kann?


Nr.- Ich habe eigentlich keine Vorlage für den Anspruchsscheck, den ich implementieren möchte, aber vielleicht können Sie mir einige typografische Ratschläge geben, wie ich den Scheck gestalten könnte. Ich weiß, dass ich meine Informationen irgendwo brauche, die des Anspruchstellers, meine Geschäftsgrafiken, einen Scheck-ID-Code und einige Maßnahmen zur Fälschung.

Antwort1

Hier ist ein Ausgangspunkt mit datatool. Ich werde das Design des Schecks (Layout) nicht diskutieren, da dies ein Kandidat für eine separate Frage ist.

\documentclass{article}
\usepackage[a4paper,textheight=5in,left=1in,right=1in]{geometry}   %% 5in only for demo
\usepackage{xcolor}%
\usepackage{adjustbox}
%
\usepackage{filecontents}
\begin{filecontents*}{names.csv}
    number,Name,money
    1,Mr.\,Sreeram P.,12
    2,Mr.\,Rajaram K.,20
    3,Mr.\,Dhanraj Julien,35
    4,Ms.\,Lalitha S.,50
    5,Mr.\,Sreeram P.,2
    6,Mr.\,Rama Anvesh Reddy,400
    7,Ms.\,Shobana R.,65
    8,Ms.\,Archana D.,45
    9,Mr.\,Selvakumar R.,54
    10,Ms.\,Harthi M. G.,14
\end{filecontents*}
\usepackage{datatool}

\begin{document}
%\sloppy
\DTLloaddb{names}{names.csv}
\pagestyle{empty}
\DTLforeach{names}{%
\name=Name,\money=money}{%
\par\noindent
\begin{minipage}{\textwidth}
\vskip\baselineskip
This is to remember that\, {\bfseries\name}\,  has to give a sum of {\bfseries\$\money}\, to me which he is reluctant to give.

\vskip0.5\baselineskip
\hspace*{-1in}\makebox[\paperwidth][c]{\Huge\color{gray!40}\dotfill}
%% 1in is the left margin
\end{minipage}
}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Mein Beispiel zeigt, wie diese Aufgabe ohne LaTeX-Pakete erledigt werden kann. Angenommen, wir haben die Datei names.csvim in Kumars Antwort gezeigten Format.

% in preamble:
\newread\infile
\def\printletters #1 {\bgroup \endlinechar=-1
   \openin\infile=#1 \read\infile to\tmp \printlettersA
}
\def\printlettersA{\ifeof\infile \egroup \else
   \read\infile to\tmp
   \ifx\tmp\empty \else  \expandafter\printlettersB\tmp\par \fi
   \expandafter \printlettersA\fi
}
\def\printlettersB #1,#2#3#4,#5\par{\def\sex{#3}\def\name{#2#3#4}\def\money{#3}\printpage}

\def\printpage{%
   \bigskip
   This is to remember that {\bf\name}  has to give a sum of
   {\bf\$\money} to me which
   \if s\sex s\fi he
   is reluctant to give.
   \bigskip\hrule\bigskip % or \vfill\eject or...
}

% in document:
\printletters names.csv

Beachten Sie, dass das Geschlecht der Person aus dem zweiten Buchstaben (Herr oder Frau) herausgelesen und diese Angabe für das Wort „er“ oder „sie“ verwendet wird.

Antwort3

Diese Lösung missbraucht schamlos die Daten von Harish Kumar und verwendet textmergfür die Zusammenführung:

\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{textmerg}%
\usepackage{filecontents}
\begin{filecontents*}{names.dat}
    Mr
    Sreeram
    P.
    12
    Mr
    Rajaram
    K.
    20
    Mr
    Dhanraj
    Julien
    35
    Ms
    Lalitha
    S.
    50
    Mr
    Sreeram
    P.
    2
    Mr
    Rama Anvesh
    Reddy
    400
    Ms
    Shobana
    R.
    65
    Ms
    Archana
    D.
    45
    Mr
    Selvakumar
    R.
    54
    Ms
    Harthi
    M. G.
    14
\end{filecontents*}

\begin{document}

\pagestyle{empty}

\Fields{\honorific\surname\firstname\amount}
\Merge{names.dat}{%
  \hrule
  \bigskip\par
  \noindent This is a reminder that {\bfseries\honorific{} \firstname{} \surname{}} owes me the sum of {\bfseries\pounds\amount}.\bigskip\par
  \hrule}
\end{document}

Anspruchsprüfungen

verwandte Informationen