%% This example is adapted from the "Business Cards for Programmers/Developers" example at 
% https://www.overleaf.com/latex/templates/business-cards-for-programmers-slash-developers/wrwgsnnmxwyg.
% Instructions are at the end of the file.
\documentclass[11pt,a4paper]{memoir}
\setstocksize{55mm}{85mm} % UK Stock size
\setpagecc{55mm}{85mm}{*}
\settypeblocksize{45mm}{75mm}{*}
\setulmargins{5mm}{*}{*}
\setlrmargins{5mm}{*}{*}
\usepackage{xcolor}
\usepackage{datatool}
%% The "database" is a comma-separated values (CSV) file.
%% The first line should contain the column headers, without space characters, e.g.
%% Name,JobTitle,Department
%%
%% If a field value contains a comma, then the field value needs to be surrounded with double quotes, e.g. 
%% John Smith,Lecturer,"School of Science, Mathematics and Engineering"
%%
%% Spreadsheet applications can usually export such a .csv file.
%%
%% If field values are expected to contain LaTeX special characters like $, &, then use \DTLloadrawdb{data}.csv instead.
\DTLloaddb{namelist}{data.csv}
\setheadfoot{0.1pt}{0.1pt}
\setheaderspaces{1pt}{*}{*}
\usepackage{fontspec}
\setmainfont{EB Garamond} 
\checkandfixthelayout[fixed]
\pagestyle{empty}
\usepackage{pstricks}
\usepackage{auto-pst-pdf,pst-barcode}
%% These packages only for typesetting the instructions
\usepackage{listings}
\usepackage{enumitem}
\begin{document}
%% For each line in namelist (which was loaded from data.csv), 
%% output the following text (with mailmerged field values)
\DTLforeach{namelist}{%
    %% Map each column header in your .csv file to a command
	\Name=Name,%
    \Subtitle=Subtitle,%
    \Division=Division,%
    \Employer=Employer,%
    \JobTitle=JobTitle,%
    \SpecialityOne=Speciality1,%
    \SpecialityTwo=Speciality2,%
    \SpecialityThree=Speciality3,%
    \Web=Web,%
    \EmailOne=Email1,%
    \EmailTwo=Email2,%
    \Mobile=Mobile,%
    \GPG=GPG%
}{%%%  Start designing your output text! 
  %%%  Mailmerged field values can be inserted using the commands
  %%%  you've just mapped above.
    \begin{Spacing}{0.75}%
    \noindent
    \textbf{\Name}\\[3pt]
    \tiny\mbox{}\Subtitle \hfill {\color{gray}\Division{} / \Employer}\\ 
    \rule{\textwidth}{.3mm}\\
    \begin{minipage}[t]{30mm}
        \vspace{-0mm}%
        \begin{pspicture}(25mm,25mm)
            % The MECARD format is used to exchange contact information. More information at:
            % https://www.nttdocomo.co.jp/english/service/developer/make/content/barcode/function/application/addressbook/index.html
\psbarcode{MECARD:N:\Name;URL:\Web;EMAIL:\EmailOne;TEL:\Mobile;NOTE:GPG key fingerprint: \GPG;}{eclevel=L width=1 height=1}{qrcode}
        \end{pspicture}
    \end{minipage}
    \hspace{1mm}
    \begin{minipage}[t]{42mm}
        \vspace{-0mm}%
        \begin{flushleft}
        {\scriptsize
            \begin{Spacing}{1}%
            \textbf{\JobTitle}\\
            \hspace{5mm}\mbox{}\SpecialityOne\\
            \hspace{5mm}\mbox{}\SpecialityTwo\\
            \hspace{5mm}\mbox{}\SpecialityThree \vspace{2mm}\\
            \end{Spacing}
        }
        {\tiny
        	\begin{tabular}{@{}r@{\hspace{2mm}}l}
            	{\color{gray}web} & \Web\\
            	{\color{gray}email} & \EmailOne\\
            	{\color{gray}email} & \EmailTwo\\
            	{\color{gray}mobile} & \Mobile\\
            \end{tabular}
            \vspace*{2mm}
        }
        \end{flushleft}
    \end{minipage}
    \rule{74mm}{0mm}\\
    \texttt{\fontsize{2.84mm}{3.55mm}\selectfont \GPG} % GPG KEY ID
    \end{Spacing}
    \clearpage
}
%% Comment out this line when typesetting for final output
\input{instructions}
\end{document}