Conjunto de verificação de reivindicação de uma lista de clientes

Conjunto de verificação de reivindicação de uma lista de clientes

Não sei se isso se encaixa aqui, mas aqui está minha pergunta:

Gostaria de fazer um conjunto de verificações de sinistros a partir de uma lista de clientes para que todos possam ser impressos juntos no mesmo PDF.

Estou procurando um algoritmo de repetição que insira nomes e endereços, etc. e os preencha em um modelo de verificação de reivindicação e repita, digamos, 3 ou 4 vezes por página e depois continue para a próxima página com os clientes restantes. No final, procuro ter um único PDF para imprimir todo o conjunto de cheques de sinistro com linhas de corte perfuradas entre cada cheque.


Estranho: Isso não tem nada a ver com a questão em questão, mas há alguma medida de falsificação que o LaTeX oferece que eu possa incluir no meu modelo de verificação de reivindicação?


obs.- Na verdade, não tenho um modelo para o cheque de reivindicação que gostaria de implementar, mas talvez você possa oferecer alguns conselhos tipográficos sobre como posso projetar o cheque. Eu sei que preciso das minhas informações em algum lugar, do reclamante, dos meus gráficos comerciais, de um código de identificação de cheque e de algumas medidas falsificadas.

Responder1

Aqui está um ponto de partida usando datatool. Não discutirei o design do cheque (layout), pois ele é candidato a uma pergunta separada.

\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}

insira a descrição da imagem aqui

Responder2

Meu exemplo mostra como realizar esta tarefa sem nenhum pacote LaTeX. Suponha que temos o arquivo names.csvno formato mostrado na resposta de Kumar.

% 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

Observe que o sexo da pessoa é escaneado a partir da segunda letra (Sr. ou Sra.) e esta informação é usada para a palavra “ele” ou “ela”.

Responder3

Parasita descaradamente dos dados de Harish Kumar, esta solução usa textmergpara a fusão:

\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}

verificações de reclamação

informação relacionada