如何使用 *.xls 作为数据库制作直邮?

如何使用 *.xls 作为数据库制作直邮?

我正在与一个大会的组织人员合作,我们必须打印大量参与证书。所有这些证书都有相同的文字,除了参与者的姓名。我已经完成了一个证书,但为了避免手工制作一个一个,我想知道是否有任何方法可以在 Tex 中动态地完成这项工作,使用 *.xls 文件(其中有所有参与者的姓名)作为数据库。

有人做过类似的事情吗?可以给我一些关于从哪里开始的线索吗?

感谢全体成员!

答案1

获取或制作空白或部分填写的证书,例如 https://images.template.net/wp-content/uploads/2015/03/Free-Blank-Certificate-Template.jpg

创建一个名称文件(可以从 xls 文件导出为 csv),读取它并使用它来循环遍历名称。

请注意,{c}{}{c}{}中的参数\stackinset定义了名称叠加层的精确位置——这里,字面意思是页面的中心。这可以调整。例如,{l}{50pt}{b}{100pt}表示距离图像左侧 50 pt 和距离图像底部 100 pt。

\documentclass{article}
\usepackage[letterpaper,landscape,margin=0pt]{geometry}
\usepackage{filecontents,stackengine,graphicx,readarray}
\begin{filecontents*}{names.txt}
Joe Smith
Jane Doe
\end{filecontents*}
\ignoreemptyitems
\readarraysepchar{,}
\parindent 0pt
\begin{document}
\readdef{names.txt}\namelistdef
\readlist\thenamelist{\namelistdef}
\foreachitem\x\in\thenamelist{%
  \stackinset{c}{}{c}{}{\sffamily\Large\x}{%
    \includegraphics[width=\textwidth]{Free-Blank-Certificate-Template.jpg}}%
  \clearpage%
}
\end{document}

在此处输入图片描述

人们可以变得更加复杂并输入多个字段,使用 csv 输入格式来输入数据。

可怜的简……等她妈妈发现吧!

\documentclass{article}
\usepackage[letterpaper,landscape,margin=0pt]{geometry}
\usepackage{filecontents,stackengine,graphicx,readarray}
\begin{filecontents*}{names.txt}
Joe Smith, 3-legged race
Jane Doe, chug-a-lug
\end{filecontents*}
\ignoreemptyitems
\readarraysepchar{\\}
\setsepchar{\\/,}
\parindent 0pt
\begin{document}
\readdef{names.txt}\namelistdef
\readlist\thenamelist{\namelistdef}
\foreachitem\x\in\thenamelist{%
  \stackinset{c}{-75pt}{c}{-30pt}{\sffamily\Large\thenamelist[\xcnt,2]}{%
  \stackinset{c}{}{c}{}{\sffamily\Large\thenamelist[\xcnt,1]}{%
    \includegraphics[width=\textwidth]{Free-Blank-Certificate-Template.jpg}%
  }}%
  \clearpage%
}
\end{document}

在此处输入图片描述

相关内容