发票 LaTeX 模板
免费的发票 LaTeX 模板,一页 A4 即可。每行只需写明细、数量和单价,小计、税额和合计自动计算。

LaTeX 源码
% !TEX program = xelatex
% 发票模板:开票方和客户信息、发票号码和日期、项目明细与自动累加的合计、税额、付款信息和备注,一页 A4 纸。
% 请修改下面的数据,并为每项产品或服务添加一行 \lineitem(需用 XeLaTeX 编译,第一行的魔法注释已设置)。
\documentclass[a4paper,10pt]{ctexart}
% ctexart 已提供中文支持,无需另外加载语言宏包
\usepackage[top=2cm,bottom=2cm,left=2.2cm,right=2.2cm]{geometry}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx}
\usepackage{xfp}
\usepackage[hidelinks]{hyperref}
\pagestyle{empty}
\setlength{\parindent}{0pt}
\renewcommand{\arraystretch}{1.35}
\sisetup{detect-weight=true}
% 强调色:在这里修改
\definecolor{accent}{HTML}{1F4E79}
\definecolor{tint}{HTML}{E8EEF4}
% ---- 发票数据:请修改 ----
\newcommand{\invoicenumber}{2026-0042}
\newcommand{\invoicedate}{2026-11-14}
\newcommand{\duedate}{2026-12-14}
\newcommand{\taxrate}{6} % 百分比;如果不收税请填 0
\newcommand{\currency}{¥}
\newcommand{\sendername}{示例设计工作室有限公司}
\newcommand{\senderaddress}{上海市浦东新区示例路 12 号\\ 邮编 200120\\ 中国}
\newcommand{\senderdetails}{billing@example.com\\ +86 21 0000 0000\\ 统一社会信用代码:000000000000000000}
\newcommand{\clientname}{客户示例股份有限公司}
\newcommand{\clientaddress}{北京市朝阳区客户大街 45 号\\ 邮编 100020\\ 中国}
\newcommand{\paymentdetails}{开户银行:示例银行上海分行\\ 户名:示例设计工作室有限公司\\ 银行账号:0000 0000 0000 0000 000}
% 带货币符号的金额,始终保留两位小数
\newcommand{\money}[1]{\currency\num[round-mode=places,round-precision=2]{#1}}
% \lineitem{说明}{数量}{单价}:添加一行,并把该行金额计入小计
\newcommand{\subtotal}{0}
\newcommand{\lineitem}[3]{%
\xdef\subtotal{\fpeval{\subtotal+round(#2*#3,2)}}%
#1 & \num{#2} & \money{#3} & \money{\fpeval{round(#2*#3,2)}} \\}
\begin{document}
% ---- 页眉 ----
\begin{minipage}[t]{0.55\textwidth}
{\LARGE\bfseries\color{accent}\sendername}\\[4pt]
\senderaddress
\end{minipage}%
\hfill
\begin{minipage}[t]{0.4\textwidth}
\raggedleft
{\Huge\bfseries\color{accent}发票}\\[4pt]
\senderdetails
\end{minipage}
\vspace{1.2cm}
% ---- 客户与发票信息 ----
\begin{minipage}[t]{0.55\textwidth}
{\small\bfseries\color{accent}购买方}\\[2pt]
\textbf{\clientname}\\
\clientaddress
\end{minipage}%
\hfill
\begin{minipage}[t]{0.4\textwidth}
\raggedleft
\begin{tabular}[t]{@{}l@{\hspace{1em}}r@{}}
\textbf{发票号码} & \invoicenumber \\
\textbf{开票日期} & \invoicedate \\
\textbf{付款截止日期} & \duedate \\
\end{tabular}
\end{minipage}
\vspace{1cm}
% ---- 项目明细 ----
\begin{tabular}{@{}>{\raggedright\arraybackslash}p{0.41\textwidth}*{3}{>{\raggedleft\arraybackslash}p{0.17\textwidth}}@{}}
\rowcolor{accent}
\textcolor{white}{\textbf{项目说明}} & \textcolor{white}{\textbf{数量}} & \textcolor{white}{\textbf{单价}} & \textcolor{white}{\textbf{金额}} \\
\lineitem{网站设计(小时)}{24}{65}
\lineitem{标志与品牌规范}{1}{480}
\lineitem{虚拟主机,年度套餐}{1}{119.90}
\lineitem{内容更新(小时)}{6.5}{45}
\bottomrule
\end{tabular}
\vspace{0.4cm}
% ---- 合计 ----
\hfill
\begin{tabular}{@{}lr@{}}
小计 & \money{\subtotal} \\
增值税(\taxrate\%) & \money{\fpeval{round(\subtotal*\taxrate/100,2)}} \\
\midrule
\rowcolor{tint}
\textbf{应付总额} & \textbf{\money{\fpeval{\subtotal+round(\subtotal*\taxrate/100,2)}}} \\
\end{tabular}
\vspace{1.4cm}
% ---- 付款信息与备注 ----
{\small\bfseries\color{accent}付款信息}\\[2pt]
\paymentdetails
\vspace{0.6cm}
{\small\bfseries\color{accent}备注}\\[2pt]
请在开票日期起 30 天内付款,转账时请注明发票号码。逾期付款可能需要支付滞纳金。感谢您的惠顾。
\end{document}