使用Python创建可重复的pdf文档

2024-09-29 23:21:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望使用python创建可重复的PDF(婚礼邀请)。我目前正在使用LaTeX创建PDF,因为我认为可以很容易地从python编译具有不同名称的邀请。这就是我需要帮助的地方。我已经编写了一个非常简单的python脚本(下面),用于遍历.csv文件并创建我想要的邀请名称。现在我想得到一些代码,将名称粘贴到latex代码中,并使用包进行编译。我看到有一种叫做PyLaTeX的东西,但我似乎不知道它是如何工作的。有什么帮助吗

Python代码:

import csv

name1 = []
name2 = []
name3 = []
name4 = []
name5 = []
name6 = []

with open('Guest List - Clean.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    for row in readCSV:

        name1 = []
        name2 = []
        name3 = []
        name4 = []
        name5 = []
        name6 = []

        name1 = row[1]
        name2 = row[2]
        name3 = row[3]
        name4 = row[4]
        name5 = row[5]
        name6 = row[6]
    
        email = row[7]

        if name2 == "":
            names = name1
        elif name3 == "":
            names = name1 + " & " + name2
        elif name4 == "":
            names = name1 + ", " + name2 + " & " + name3
        elif name5 == "":
            names = name1 + ", " + name2 + ", " + name3 + " & " + name4
        elif name6 == "":
            names = name1 + ", " + name2 + ", " + name3 + ", " + name4 + " & " + name5
        else:
            names = name1 + ", " + name2 + ", " + name3 + ", " + name4 + ", " + name5 + " & " + name6 
        
        print(names)
        print(email)

乳胶代码:

\documentclass[a4paper]{article}
\usepackage{eso-pic,graphicx}
\usepackage[top=2cm, bottom=2cm, outer=0cm, inner=0cm]{geometry}
\usepackage{fontspec}
\usepackage[absolute,overlay]{textpos}
\usepackage{xcolor}

\definecolor{orangeish}{HTML}{de762c}
\definecolor{greyish}{HTML}{595959}

\pagestyle{empty}

\title{My Title}
\begin{document}

\begin{textblock*}{210mm}(0mm,70mm)
\setmainfont{QuicksandBook-Regular}
\color{orangeish}
\fontsize{54}{60}\selectfont
\centering
SAVE THE DATE
\end{textblock*}

\begin{textblock*}{210mm}(0mm,110mm)
\setmainfont{QuicksandLight-Regular}
\color{greyish}
\fontsize{18}{20}\selectfont
\centering
TO CELEBRATE THE WEDDING OF
\end{textblock*}

\begin{textblock*}{210mm}(0mm,145mm)
\setmainfont{QuicksandLight-Regular}
\color{greyish}
\fontsize{48}{50}\selectfont
\centering
X \& Y
\end{textblock*}

\begin{textblock*}{210mm}(0mm,200mm)
\setmainfont{QuicksandLight-Regular}
\color{greyish}
\fontsize{18}{20}\selectfont
\centering
01.01.2000\par
EARTH\par
\end{textblock*}

\begin{textblock*}{200mm}(0mm,280mm)
\setmainfont{Quicksand}
\color{greyish}
\fontsize{12}{15}\selectfont
\flushright
"names" FROM PYTHON HERE\par
INVITATIONS TO FOLLOW
\end{textblock*}

%Adds the background image to the ivite
\AddToShipoutPictureBG*{\includegraphics[width=\paperwidth, height=\paperheight]{save_the_date_2_compressed.jpeg}}

\end{document}

Tags: namescolorendrowbegintextblockname1name2

热门问题