动态将 CSV 文件转换为 PDF

动态将 CSV 文件转换为 PDF

我有一个简单的 CSV 文件,类似于:

pens, 23
bottles, 5
spoons, 6
chairs, 5
books, 12

我想将其转换为 PDF 文档。我不知道该怎么做。我已经安装了麦克泰克斯。如果您能帮助我开始这项工作,那将会很有帮助。

我试图解决的问题是pdf generation。因此输入将是一个包含大约一百万个条目的 CSV 文件,我想生成一个 PDF 文档。

答案1

以下是使用csvsimple

您可以使用\csvautotabular它来csvsimple为您构建一个表格:

\csvautotabular[
  table head={%
  \hline
    \bfseries Thing & \bfseries Amount \\
  \hline}]%
  {pens_and_bottles.csv}

在此处输入图片描述

或者,如果您加载booktabs包,那么您可以使用它\csvautobooktabular来获得更漂亮的表格:

\csvautobooktabular[
  table head={%
  \toprule
    \bfseries Thing & \bfseries Amount \\
  \midrule}]%
  {pens_and_bottles.csv}

在此处输入图片描述

csvsimple或者你可以使用 的CSV 处理器构建自己的:

\begin{tabular}{lc}
  \toprule
    \bfseries Thing & \bfseries Amount \\
  \midrule
    \csvreader[late after line=\\]{pens_and_bottles.csv}{}%
      {\csvcoli & \csvcolii}
  \bottomrule
\end{tabular}

在此处输入图片描述

如果您使用的是相当大的 CSV 文件,这将占用多个页面,那么您可以加载包longtable然后使用\csvautobooklongtable(或者构建您自己的longtable,如前面的示例):

\csvautobooklongtable[
  table head={%
  \toprule
    \bfseries Thing & \bfseries Amount \\
  \midrule},
  table foot={\\\bottomrule}]%
  {pens_and_bottles.csv}

在此处输入图片描述

包含四个选项的示例:

\RequirePackage{filecontents}
\begin{filecontents*}{pens_and_bottles.csv}
pens, 23
bottles, 5
spoons, 6
chairs, 5
books, 12
\end{filecontents*}

\documentclass{article}
\usepackage{booktabs}
\usepackage{csvsimple}
\usepackage{longtable}
\begin{document}

\csvautotabular[
  table head={%
  \hline
    \bfseries Thing & \bfseries Amount \\
  \hline}]%
  {pens_and_bottles.csv}

\bigskip

\csvautobooktabular[
  table head={%
  \toprule
    \bfseries Thing & \bfseries Amount \\
  \midrule}]%
  {pens_and_bottles.csv}

\bigskip

\begin{tabular}{lc}
  \toprule
    \bfseries Thing & \bfseries Amount \\
  \midrule
    \csvreader[late after line=\\]{pens_and_bottles.csv}{}%
      {\csvcoli & \csvcolii}
  \bottomrule
\end{tabular}

\bigskip

\csvautobooklongtable[
  table head={%
  \toprule
    \bfseries Thing & \bfseries Amount \\
  \midrule},
  table foot={\\\bottomrule}]%
  {pens_and_bottles.csv}

\end{document}

答案2

下面是一个例子:

\documentclass{article}
\usepackage{booktabs}
\usepackage{csvsimple}
\usepackage{caption}

% this code is only to create myfile.csv, you don't need it:
\usepackage{filecontents}
\begin{filecontents*}{myfile.csv}
pens, 23
bottles, 5
spoons, 6
chairs, 5
books, 12
\end{filecontents*}

\begin{document}
\begin{table}[htb]\centering
    \caption{A caption}
    \csvreader[
    tabular=lr,
    table head={\toprule
    My objects & My number\\
    \midrule},
    table foot=\bottomrule,
    no head,
    ]{myfile.csv}{}{\csvcoli & \csvcolii}
\end{table}
\end{document}

在此处输入图片描述

相关内容